括号中带有寄存器的十六进制数在汇编中意味着什么?

Jav*_*het 1 linux assembly disassembly

lea 0x1c(%ebp),%eax

所以,我模糊地理解 lea 指令的作用,并且我知道那些是寄存器,但是这个结构是什么:0x1c(%ebp)?我从 objdump 中得到了这段代码。

skr*_*sme 5

它是众多 x86寻址模式之一。具体来说,这被称为“位移​​”寻址。

既然您说您使用了 objdump 并且没有指定您使用了该标志,我将在GAS 语法-M中假设这一点(而不是Intel 语法)。这意味着第一个操作数是源,第二个操作数是目标。

lea 0x1C(%ebp),%eax指令的意思是,“获取%ebp中的值,添加0x1C(十进制28),然后将该值存储在%eax中”。

  • _“与 Intel 或 AT&T 语法相反”_ 您的意思是 _“与 Intel 语法相反_”?显示的代码采用 AT&T 语法。 (2认同)