AT&T x86 大会 "lea 0x0(%esi,1),%esi"

AT&T x86 Assembly "lea 0x0(%esi,1),%esi"

我没有找到任何关于 objdump 输出的文档。 在 objdump -D 输出中,我看到下面的 asm,但我不明白: lea 0x0(%esi,1),%esi

https://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax我可以看到"pointer"中有4个参数: segment:displacement(基址寄存器,偏移寄存器,标量乘法器)

但是这个 0x0(%esi,1) 是什么意思?标量被省略为 0? 有没有人能帮我找到 AT&T asm 手册的位置?

谢谢, 史蒂文

0x0是一个位移,当它为零时,表示可以省略。 1是一个标度,等于1时表示也可以省略。所以这条指令 lea 0x0(%esi,1),%esi 等同于:

lea esi,[esi*1+0x00]
lea esi,[esi]