我有以下汇编代码:

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/

10-11 15:34
查看更多