如果我有如下的IA32指令:
lea 0x4(x1, x2, x3), %eax
x1,x2和x3代表什么? 感谢。
答案 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编译器为...