我未能找到有关 objdump 输出的任何文档。在 objdump -D 输出中,我看到下面的 asm 但我不理解它: lea 0x0(%esi,1),%esi
从https://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax我可以看到“指针”中有4个参数:段:位移(基址寄存器,偏移寄存器,标量乘数)
但是这个0x0(%esi,1)是什么意思呢?标量被省略为 0?任何人都可以帮助指导我 AT&T asm 手册的位置吗?
谢谢,史蒂文
0x0是位移,当它等于0时,表示可以省略。1是一个尺度,当等于1时,表示也可以省略。所以这条指令lea 0x0(%esi,1),%esi与:
lea esi,[esi*1+0x00]
lea esi,[esi]
Run Code Online (Sandbox Code Playgroud)