本文主要介绍汇编语言lea指令使用方法的分析,本文通过示例代码非常详细地介绍,对大家的学习和工作有一定的参考学习价值,有需要的朋友可以参考
lea指令变种(按尺寸) :
leaw #2字节
leal #4字节
leaq #8字节
lea的使用方法:
LEAQa(b、c、d )、%rax
首先,lea命令是mov命令的变种。 据说lea指令是x86架构中最古老但在某种意义上最不可思议的指令。
表面上,这是一件非常简单的事情:根据括号中的源操作数计算地址,然后将地址加载到目标寄存器中。
例如,leaqa(b、c、d )、%rax先计算地址a b c * d,然后将最终地址加载到寄存器rax中。
最有趣的是,leaq不参照源操作数的寄存器,而是进行简单的计算。 那个完全可以把它作为乘法命令使用。
例如:
rbx * 2
movq $8,%rbx
leaq (、%rbx、2 )、%rax
rbx * 3
movq $8,%rbx
leaq(%rbx、%rbx、2 )、%rax
rbx * 3 - 1
movq $8,%rbx
LEAQ-1(%rbx、%rbx、2 )、%rax
什么时候使用lea命令:
在完成五、六条命令——乘法之前,看看能否用二、三条lea命令代替它。
注意事项:
的值范围为1、2、4和8(64位cpu )
希望以上是正文的全部内容,对大家的学习有帮助。 另外,希望大家多多支持云海天教程。