汇编指令lea 和 mov 区别
刚开始学汇编都会接触到指令lea 和mov,但是这两个指令用法看起来很像,会经常误以为两者其实没有很大区别,甚至会误认为两者就是相等的,笔者本人也是很迷,而且书上对lea的讲解又十分有限,但是通过不懈的知识搜素,终于搞明白了这其中的差别,两者还是又很大不同的,所以mark一下防止忘了。
让我们一起看看下面的例子:
大家可以看到,第三行和第四行,看到右边的注释大家是不是有点明白了呢,lea代表的就是加载有效地址(load effective address),而(%rsi , %rdi , 4)代表的是以数值 %rsi + %rdi * 4 为内存地址,在内存里找到相对应的值,然而leaq 是取地址,所以取出来的地址正好是%rsi + %rdi * 4
即X(A) + 4(n*i) ,然后把其送给%rax。
接下来进入第四条语句,movl (%rax , %rcx ,4) %eax,代表的只是把 数值 %rax +%rcx +4作为内存地址,将内存里面的值取出来,mov给寄存器 %eax,其中内存里的值与地址%rax +%rcx +4没有直接关系。
总结一下
1. lea:加载有效地址
一般都是从内存里面取出 地址 传 递给寄存器,相当于C语言里面的取地址符号&
2…mov:
mov就是将一个值(这个值可能在内存,也可能在寄存器里面)传递给另外一个容器( 可以是寄存器,可以是内存),当然传递还有许多限制,在这就不一一赘述。
最后祝大家学习快乐,学习过程都可以收获到知识,yeah
汇编指令lea 和 mov 区别相关推荐
- windows debug下验证汇编指令中的mov指令传送数据
一.知识储备 1.8086CPU是16位结构,有16根数据线,20根地址线.16根数据线可以一次性传送16位数据,也就是两个字节(也就是一个字)的数据. 什么是字? 在这个特定计算机中,字是其用来一次 ...
- 汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)
一.MOV指令 1.将十六进制0x1234数值,赋值给eax寄存器 mov eax,0x1234 2.将十六进制0x123数值,赋值给内存地址为ebx mov dword [ebx],0x123 3. ...
- linux汇编 lea,汇编指令LEA
LEA是微机8086/8088系列的一条指令,取自英语Load effect address--取有效地址,也就是取偏移地址.在微机8086/8088中有20位物理地址,由16位段基址向左偏移4位再与 ...
- S5PV210体系结构与接口02:ARM编程模型 汇编指令
目录 1. ARM的基本设定 1.1 ARM数据类型 1.1.1 基本数据类型 1.1.2 浮点数据类型 1.1.3 存储器大小端 1.2 支持的指令集 2. Cortex-A8编程模型 2.1 处理 ...
- 【Android 逆向】x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )
文章目录 一.call 子函数调用指令 二.jmp 跳转指令 三.lea 加载指令 四.mov 数据传送指令 总结 一.call 子函数调用指令 call 指令是 子函数调用指令 , 调用的指令的下一 ...
- 汇编指令push,mov,call,pop,leave,ret建立与释放栈的过程
栈内的数据 栈在汇编层面是辅助实现函数调用的,每个函数调用过程在栈中被抽象成一帧 ,在老式的32位CPU架构IA32中还有固定寄存器指向当前帧底部(下图中的0x100000f4,0x100000d8) ...
- linux命令mov,汇编指令_Y-linuz-linux-w_新浪博客
ARM处理器有37个寄存器,其中31个通用寄存器,6个程序状态寄存器. R0~R7为不分组的通用寄存器,R8~R14为分组寄存器---不同工作模式下寄存器不同 R13:指向堆栈栈顶指针SP R14:用 ...
- 32位汇编寄存器及汇编指令
32位CPU所含有的寄存器有: 4个数据寄存器(EAX.EBX.ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES.CS.SS.DS.FS和 ...
- 寄存器和常用的汇编指令
为了学习需要,最近查看了一下汇编,因为是个初学者很多东东基本不动,所以记录一下基本指令和寄存器,那样就会对汇编慢慢的适应,看得懂那些华丽花哨的反汇编代码了.学习这个东东基本是为了破解和逆向工程使用,因 ...
最新文章
- 解读|智能技术“核聚变”催生智能经济,将拉动十万亿市场
- HDU 6156 Palindrome Function 数位DP
- hive导出数据到本地文件报错解决方法
- 平面最接近点对问题(分治)
- 《JAVA与模式》之模板方法模式
- 上云的先行军,QQ 率先完成了20万台服务器全量上云,是怎么做到的?
- Java:处理 Exception 的几种实践,很优雅,值得推荐!
- 协程-greenlet版(python 版)
- cookie封装做免输入登录
- 小tip: 使用CSS将图片转换成黑白(灰色、置灰)[转]
- I/O多路复用技术详解之poll模型
- 移动WEB开发之Safari、QQ、UC、360浏览器的私有Meta属性
- Cookie的简单理解和使用
- LDA模型,主题聚类模型
- HDU6184 Counting Stars
- 自己DIY word2010脚注和尾注没有的格式
- [Mysql] 3.Mysql 数据类型
- 利用计算机解决问题的一般过程是怎样的,计算机解决问题的一般过程1
- [SinGuLaRiTy] 动态规划题目复习
- 前沿重器[13] | 知乎query改写思路启示