linux - 十六进制数,括号中的寄存器在汇编中是什么意思?

标签 linux assembly disassembly

lea 0x1c(%ebp),%eax

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

最佳答案

它是众多 x86 addressing modes 之一.具体来说,这称为“位移​​”寻址。

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

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

关于linux - 十六进制数,括号中的寄存器在汇编中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735903/

相关文章:

linux - 使用端口 iptables 将域重定向到 IP

sql - 如何在 shell 脚本中验证更新或选择查询?

assembly - 从 DOS 启动 MBR

c++ - Eclipse反汇编 View ,可以在不调试程序的情况下查看反汇编吗?

x86 - objdump 输出中的直接和间接调用/跳转

c# - .NET 反射器的最佳反汇编工具?

linux - 脚本在 crontab 中不起作用,但在终端中起作用

linux - OS X 中的 fallocate() 命令等效?

assembly - x86-64 上可以使用 64 位直接内存操作数吗?

c++ - 为什么内存屏障不只阻塞每个特定内存地址的指令?