我有以下汇编代码:
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:
Opcode Instruction Op/En 64-bit Mode Compat/Leg Mode Description
00 /r ADD r/m8, r8 MR Valid Valid Add r8 to r/m8.
OBJDUMP默认情况下将打印重复零的块...
。要更改此行为,请尝试使用-z
选项中描述的manual:
-z --反汇编零
通常反汇编输出将跳过零块。此选项指示反汇编器反汇编这些块,就像任何其他数据一样。
您的命令可能如下所示:
objdump -z -d eax.o
输出应该类似于:
Disassembly of section .text:
00000000 <_start>:
0: 00 00 add %al,(%eax)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)