关于lea指令的问题,IA32

时间:2011-06-02 02:51:50

标签: c assembly

如果我有如下的IA32指令:

lea 0x4(x1, x2, x3), %eax

x1,x2和x3代表什么? 感谢。

2 个答案:

答案 0 :(得分:4)

如果你的意思是“什么是lea for”,请点击Greg评论中的链接。

如果您的问题是关于语法并且熟悉英特尔语法(但不是AT& T语法),则x1是基础,x2是索引,x3是比例(0x4是位移)。因此,

lea 0x4(x1,x2,x3),%eax

相当于

lea eax,[x1+x3*x2+4]

有关详情,请参阅SourceForge上的this article

答案 1 :(得分:0)

它们是 base 寄存器,索引寄存器和 scale 值。因此,它对于在位置 index 处计算大小 scale 的元素 base 的元素的地址非常有用,即在C:中< / p>

base[index]

其中 scale 对于 char 数组为1,对于 short 数组为2,对于x86的典型C编译器为...