鉴于此代码只是退出
section .data
zero: db 0
section .text
global _start
_start:
mov rax, 60
mov rdi, 0
syscall
使用以下方法编译和链接:
nasm -f elf64 -F dwarf tmp.asm && ld tmp.o
当我使用gdb
调试它时,我得到以下内容:
(gdb) break _start
Breakpoint 1 at 0x4000b0: file tmp.asm, line 7.
(gdb) run
Starting program: /tmp/a.out
Breakpoint 1, _start () at tmp.asm:7
(gdb) display zero
1: zero = 11264
我不明白为什么零的值为11264
而不是0
。我搞砸了什么?