我有以下汇编代码:
global _start
section .text
_start:
add byte [eax], al
编译和链接后,我尝试查看操作码:
$ objdump -d eax.o
eax.o: file format elf32-i386
Disassembly of section .text:
00000000 <_start>:
...
$
为什么我得到一个空操作码?
最佳答案
本指令:
add byte [eax], al
被编码为两字节的 ADD 指令 0x00 0x00:
默认情况下 OBJDUMP 会将重复零块打印为
...
。要更改此行为,请尝试使用 manual 中所述的 -z
选项:您的命令可能如下所示:
objdump -z -d eax.o
输出应该类似于:
Disassembly of section .text:
00000000 <_start>:
0: 00 00 add %al,(%eax)
关于assembly - 为什么 objdump 显示此汇编语言指令的空操作码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38299332/