gpt4 book ai didi

assembly - 为什么 objdump 显示此汇编语言指令的空操作码?

转载 作者:行者123 更新时间:2023-12-04 16:06:13 26 4
gpt4 key购买 nike

我有以下汇编代码:

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 默认情况下会将重复零的 block 打印为 ...。要更改此行为,请尝试使用 -z 选项,如 manual 中所述。 :

-z --disassemble-zeroes

Normally the disassembly output will skip blocks of zeroes. This option directs the disassembler to disassemble those blocks, just like any other data.

您的命令可能如下所示:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com