mov 和 lea 的区别有哪些?
From:https://www.zhihu.com/question/40720890?sort=created
汇编中 mov 和 lea 的区别是什么 ?:https://bbs.csdn.net/topics/320046644
lea 是“load effective address”的缩写,
简单的说,
lea指令可以用来将一个内存地址直接赋给目的操作数,
例如:lea eax, [ebx+8] 就是将 ebx+8 这个值直接赋给 eax,而不是把 ebx+8 处的内存地址里的数据赋给 eax。
mov 指令则恰恰相反,
例如:mov eax, [ebx+8] 则是把内存地址为 ebx+8 处的数据赋给 eax。
用你能听懂的话来说:
- lea eax, [eax+2*eax] 的效果是 eax = eax + eax * 2
- mov edx, [ebp+16] 的效果是 edx=*(dword*)(ebp+16)
lea 传的是地址。mov 传的是值
举个例子:
- mov eax, [00400000] 。传的是地址 400000 这个地址里的值,假设 400000 这个地址中的值是 100,那么 eax 寄存器中的值就为 100
- lea eax, [00400000] 。那么 eax 寄存器中的值就是 400000
mov 和 lea 的区别有哪些?相关推荐
- ATT格式汇编—— mov与lea的区别
ATT格式汇编-- mov与lea的区别 1. mov 数据传送指令,目的操作数不能是立即数,数据不能从内存直接传送到内存(若需要,转化成2条指令,从内存取数据到寄存器,从寄存器到内存) 2. lea ...
- mov和lea指令的区别
0x00 指令概念 lea 指令(Load Effective Address)只能用于 memory addressing calculations, 不能用于 address memory 的计算 ...
- 计算机汇编指令mov和mova,汇编语言中mov和lea指令的区别详解
指令(instruction)是一种语句,它在程序汇编编译时变得可执行.汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行. 一条指令有四个组成部分: 标号(可选) 指令助记符(必需) ...
- mov 与 lea 区别
mov默认对寄存器值或变量值进行操作,可以从寄存器到寄存器,从立即数到寄存器,从存储单元到寄存器,从立即数到存储单元,从寄存器到存储单元,[从寄存器或存储单元到段寄存器(除CS寄存器),立即数不能值接 ...
- 微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、PUSH、POP、PUSHF、POPF)
博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问. [没事儿可以到我主页看看 ...
- 数据移动指令-----mov,lea,xchg
mov指令 数据传送指令 格式:MOV OPRD1,OPRD2 功能:将一个源操作数送到目的操作数中,即OPRD2->OPRD1 OPRD1为目的操作数,可以是寄存器,存储器,累加器 OPRD2 ...
- Git 和 Github 秘籍
GitHub秘籍 Git 和 Github 秘籍,灵感来自于 Zach Holman 在 2012 年 Aloha Ruby Conference 和 2013 年 WDCNZ 上所做的演讲:Git ...
- 【二进制基础篇-1】汇编基础
掌握汇编语言的目的是能够深入理解计算机系统的底层原理,在提高程序设计能力的同时也为二进制安全打下坚实的基础. 目录 1.CPU指令集 1.1 CPU的作用 1.2 CPU指令集 2.数据表示 2.1 ...
- 汇编语言常用指令汇总(持续更新)
汇编语言常用指令汇总(持续更新) 通用数据传送指令 累加器专用指令 有效地址送寄存器指令 标志寄存器传送指令 加法指令 减法指令 乘法指令 除法指令 逻辑指令 移位指令 通用数据传送指令 MOV(Mo ...
最新文章
- [微信小程序]上传单张和多张图片
- HDU_1087-Super Jumping! Jumping! Jumping!
- Mingw-W64编译Windows程序提示:undefined reference to `__imp_GetStockObject' 的解决方法
- Cortana小娜:城市信息提醒
- Asigra无代理备份:“云”数据保护的先行者
- Jenkins CLI命令行工具,助你轻松管理 Jenkins
- c++STL容器的List
- 关于vc6 在mfc ClassWizard中无法添加成员变量
- Python之令人心烦意乱的字符编码与转码
- 机器学习 ML.NET 发布 1.0 RC
- 计算机动画 应用,计算机动画与应用.PDF
- 在c语言中定义共用型数据类型的关键字是,C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键...
- x86和amd64指令参考
- OPENNLP——java的NLP工具
- 虽然保持了连续代码生产量但是仔细想想也没什么必要
- android View的层级结构
- python贪吃蛇_python实现贪吃蛇
- Spring Cloud Gateway⑤令牌桶算法
- 7年弹指一挥间:iOS演进史
- MPB:南京​湖泊所王建军组-​湖泊沉积物的野外采集方法