这篇文章主要介绍了汇编语言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)

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

leaq c 汇编语言,汇编语言lea指令使用方法解析相关推荐

  1. linux汇编 lea,汇编语言lea指令使用方法解析

    这篇文章主要介绍了汇编语言lea指令使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 lea指令变种(按大小分类): leaw #2个字节 ...

  2. leaq c 汇编语言,汇编 LEA 指令

    Opencl 并行求和 上周尝试用opencl求极大值,在网上查到大多是求和,所谓的reduction算法.不过思路是一样的. CPP: ; unsigned ; ; ; int nGroup = n ...

  3. 汇编语言 LEA指令 ZZ

    http://blog.chinaunix.net/uid-7390305-id-2057250.html LEA: Load Effectiv Address 该指令有两个操作数.左边是目的操作数, ...

  4. 汇编语言-中括号-mov指令-cmp指令-lea指令

    文章目录 1.汇编语言中"[]"的用法 2.mov指令中用到"[]" 3.cmp指令中用到"[]" 4.lea指令 5.test指令 其实& ...

  5. 8086汇编语言中的lea指令

    举例说明: lea 0x4(%esp),%ecx lea指令的作用是,取出esp寄存器中的值,加上4,不再继续寻址,而是将得到的值直接传递给ecx; 如果是其他指令,则还需要进行间接寻址,再将值传递给 ...

  6. std在汇编语言是什么指令_汇编语言指令

    汇编指令英文全称 1.通用数据传送指令 MOV----> move MOV dest,src ;dest←src MOV指令把一个字节或字的操作数从源地址src传送至目的地址dest. MOVS ...

  7. std在汇编语言是什么指令_汇编语言的所有指令

    汇编语言的所有指令 数据传送指令集 MOV 功能 : 把源操作数送给目的操作数 语法 : MOV 目的操作数 , 源操作数 格式 : MOV r1,r2 MOV r,m MOV m,r MOV r,d ...

  8. 汇编语言---字符串操作指令

    汇编语言---字符串操作指令 字符串操作指令的实质是对一片连续的存储单元进行处理,这片连续的存储单元由隐含指针DS:SI或ES:DI来指定;字符串操作指令可对内存单元按照字节.字.双字进行处理,并能根 ...

  9. #有关汇编语言的org指令(许多不为人知的故事):

    有关汇编语言的org指令(许多不为人知的故事): 也许不知道是从什么时候开始,java这种高级语言已经占领市场,连我毕业的大学,现在都不再教C语言的内容了,为了就业率,但是其实作为一个程序员,我表示深 ...

最新文章

  1. 语言在msin函数验证_R语言时间序列分析(七):模型准确度估计
  2. bool类型头文件_[C++基础入门] 2、数据类型
  3. 最新Kernel 2.6.29正式版发布啦
  4. 6.FreeRTOS学习笔记-信号量
  5. 让nginx 支持 pathinfo ,支持thinkphp
  6. 如何使用SQL Server链接服务器查询Excel数据
  7. javascript是一门多线程的语言_如何理解JavaScript是一种单线程非阻塞脚本语言?...
  8. 二项分布期望与方差的证明
  9. 域用户创建和计算机加入域
  10. origin做主成分分析图_Origin如何进行主成分分析
  11. C++ async future deferred
  12. WOL网络唤醒远程开机的关键步骤,魔术唤醒一步都不能少!
  13. 对多项式求积分和微分
  14. 二进制拆弹(炸弹炸掉了我的头发 T.T)
  15. 面试题一(计算机基础、逻辑)
  16. 怎么让照片变年轻_如何用ps把人变年轻水嫩
  17. QT中关闭应用程序和窗口的函数(quit(),exit()以及close()的区别)
  18. mysql和eclipse用户管理系统_房产备案管理系统的设计与实现(Eclipse,SpringBoot,MySQL)...
  19. I5 4590 台式机安装黑苹果再次入坑记(2019.12.23)
  20. Adobe Photoshop CS6 安装失败 解决方法

热门文章

  1. web 平台搭建-LAMP-源码包(CentOS-6)
  2. Linux+mysql重置_linux环境mysql重置密码
  3. oracle跨库 导库,Oracle 用dblink 跨库导数据
  4. php获取搜索框的函数,php获取搜索引擎入站关键词的函数
  5. 大连海事大学计算机系王兴元,王兴元,
  6. python绘图和可视化_Python 绘图和可视化详细介绍
  7. 网络拓扑图一般用什么软件画_视频后期一般用什么软件
  8. C#中导出Excel报表的方法
  9. 机器学习之挖掘melb_data.csv数据
  10. bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束