我写了一小段代码并编译它gcc -S
以查看 ASM 输出:
...
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $16, %esp
movl $0, -4(%ebp)
...
现在我希望在 Linux 上调用objdump -D
(disassemble) 会导致一个等效的结构,但它看起来像:
80483b5: 89 e5 mov %esp,%ebp
80483b7: 83 ec 10 sub $0x10,%esp
80483ba: c7 45 fc 00 00 00 00 movl $0x0,-0x4(%ebp)
为什么我得到mov
/sub
而不是movl
/ subl
?