ฉันเขียนโปรแกรมง่ายๆ ต่อไปนี้ แต่ nasm ปฏิเสธที่จะคอมไพล์มัน
section .text
global _start
_start:
mov rax, 0x01
mov rdi, 0x01
mov rsi, str
mov rdx, 0x03
syscall
mov rax, 60
syscall
segment .data
str db 'Some string'
nasm -f elf64 main.asm
main.asm:15: error: comma, colon, decorator or end of line expected after operand
ดังที่ฉันอ่านใน answer นี่เป็นเพราะว่า str
เป็น ช่วยในการจำคำสั่ง ดังนั้นฉันจึงเพิ่มโคลอนใน str
และตอนนี้มันก็คอมไพล์ได้ดี แต่เรื่องเส้นล่ะ.
mov rsi, str
str
เป็นตัวช่วยจำคำสั่งที่นี่ แต่ก็ยังคอมไพล์ได้ดี เพราะเหตุใด?
mov rsi, mov
และmov: db 'something'
ได้และ nasm จะไม่บ่น - person Tommylee2k   schedule 07.12.2017