汇编语言lea指令使用方法解析

 更新时间:2020年01月15日 15:26:38   作者:guonaihong   我要评论
这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

lea指令变种(按大小分类):

  • leaw #2个字节
  • leal #4个字节
  • leaq #8个字节

lea的用法:

leaq a(b, c, d), %rax

首先lea指令是mov指令的变种,据说,lea指令是x86体系结构中,是一条最古老但是从某个方面来讲又是最神奇的指令。

表面上看,它做的事情非常简单,根据括号里的源操作数来计算地址,然后把地址加载到目标寄存器中。

例如:leaq a(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指令来代替它。

注意事项:

d的取值范围是1,2,4,8(64位cpu)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 汇编语言之寄存器(详细介绍)

    汇编语言之寄存器(详细介绍)

    这篇文章主要介绍了汇编语言之寄存器(详细介绍),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-01-01
  • 汇编实现冒泡排序的方法示例

    汇编实现冒泡排序的方法示例

    这篇文章主要介绍了汇编实现冒泡排序的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 详解汇编语言中中括号[]作用及lea和mov指令的区别

    详解汇编语言中中括号[]作用及lea和mov指令的区别

    这篇文章主要介绍了汇编语言中中括号[]作用及lea和mov指令的区别,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 汇编程序输出“Hello world”的实现

    汇编程序输出“Hello world”的实现

    这篇文章主要介绍了汇编程序输出“Hello world”的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言乘指令 MUL、IMUL的具体使用

    汇编语言乘指令 MUL、IMUL的具体使用

    这篇文章主要介绍了汇编语言乘指令 MUL、IMUL的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言实现打印杨辉三角

    汇编语言实现打印杨辉三角

    这篇文章主要介绍了汇编语言实现打印杨辉三角,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言中的函数调用参数传递及全局与局部变量与“基址”

    汇编语言中的函数调用参数传递及全局与局部变量与“基址”

    这篇文章主要介绍了汇编眼中的函数调用参数传递以及全局与局部变量与“基址”,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 汇编语言AND指令实现对两个操作数进行逻辑(按位)与操作

    汇编语言AND指令实现对两个操作数进行逻辑(按位)与操作

    这篇文章主要介绍了汇编语言AND指令实现对两个操作数进行逻辑(按位)与操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 使用汇编语言编写一条简单的贪吃蛇的实现

    使用汇编语言编写一条简单的贪吃蛇的实现

    这篇文章主要介绍了使用汇编语言编写一条简单的贪吃蛇的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • C语言ASM汇编内嵌语法详解

    C语言ASM汇编内嵌语法详解

    这篇文章主要介绍了C语言ASM汇编内嵌语法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01

最新评论