【发布时间】:2015-03-31 02:26:12
【问题描述】:
message: 中的以下指令是否正确?具体来说,因为“Hello, World”一共是12字节,但是右边的操作数有“10”。
我想知道这是否是一个错误。如果不是,为什么将 10 指定为正确的操作数?我从这里得到这个代码:(http://cs.lmu.edu/~ray/notes/x86assembly/)
另外,mov rdx,13 为什么指定 13 个字节而不是message 的实际大小?
global _start
section .text
_start:
; write(1, message, 13)
mov rax, 1 ; system call write is 1
mov rdi, 1 ; 1 is stdout
mov rsi, message ; address of string
mov rdx, 13 ; number of bytes
syscall ; invoke operating system call
; exit(0)
mov eax, 60 ; system call 60 is exit
xor rdi, rdi ; exit code 0
syscall ; invoke exit
message:
db "Hello, World", 10
【问题讨论】: