如何解释这个集会?

时间:2011-03-28 10:33:14

标签: assembly

lea    (%edx,%eax,1),%eax

有人知道(%edx,%eax,1)的用法吗?

3 个答案:

答案 0 :(得分:1)

(%edx,%eax,1)是对应于edx + eax * 1

的操作数地址

换句话说,指令为lea,这只是一个等同于eax += edx的加法语句

答案 1 :(得分:0)

看看GAS address operand syntax,它似乎就是你要找的东西。

答案 2 :(得分:0)

lea指令(Load Effective Address)用于以与间接寻址相同的方式计算地址,并保存结果地址而不是读取地址中的内容。在AT& T语法的情况下,(%edx,%eax,1)表示(%edx +%eax * 1)。在这种情况下,正如Laurent G所述,它相当于add%edx,%eax。但是,通过使用其他因素(括号前的位移和1以外的数字),您可以进行稍微复杂的数学运算。

这种类型的寻址通常用于处理数组,但是lea指令不会验证结果地址是否有效,因此您可以将其用作短路方式来执行需要多个指令的计算。