INSTR 0x0(REG),REG,0x0位移是什么意思?

时间:2012-09-23 10:22:48

标签: assembly gdb x86-64

我正在查看一些编译器生成的汇编代码(x86_64),并发现几条指令零位移如下:

     movzbl 0x0(%rbp),%eax

这种0x0位移背后的原因是什么? (我是汇编的新手,如果已经讨论过问题,请指出链接。)根据我的理解,上面的指令将零扩展rbp +(0x0)复制到eax


编辑:我找到了一个解释 leal 的链接 what-does-0x0-indicate-in-the-instruction

谢谢..!

1 个答案:

答案 0 :(得分:4)

这意味着movzx eax, byte [rbp + 0]

(e|r)bp中包含的地址的内存操作数没有编码,但有(e|r)bp + constant。因此,对于该常量,您有0从rbp中的地址中提取一个字节。