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。

用你能听懂的话来说:

  1. lea eax, [eax+2*eax]  的效果是 eax = eax + eax * 2
  2. mov edx, [ebp+16]     的效果是  edx=*(dword*)(ebp+16)

lea 传的是地址。mov 传的是值

举个例子:

  1. mov eax, [00400000] 。传的是地址 400000 这个地址里的值,假设 400000 这个地址中的值是 100,那么 eax 寄存器中的值就为 100
  2. lea eax, [00400000] 。那么 eax 寄存器中的值就是 400000

mov 和 lea 的区别有哪些?相关推荐

  1. ATT格式汇编—— mov与lea的区别

    ATT格式汇编-- mov与lea的区别 1. mov 数据传送指令,目的操作数不能是立即数,数据不能从内存直接传送到内存(若需要,转化成2条指令,从内存取数据到寄存器,从寄存器到内存) 2. lea ...

  2. mov和lea指令的区别

    0x00 指令概念 lea 指令(Load Effective Address)只能用于 memory addressing calculations, 不能用于 address memory 的计算 ...

  3. 计算机汇编指令mov和mova,汇编语言中mov和lea指令的区别详解

    指令(instruction)是一种语句,它在程序汇编编译时变得可执行.汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行. 一条指令有四个组成部分: 标号(可选) 指令助记符(必需) ...

  4. mov 与 lea 区别

    mov默认对寄存器值或变量值进行操作,可以从寄存器到寄存器,从立即数到寄存器,从存储单元到寄存器,从立即数到存储单元,从寄存器到存储单元,[从寄存器或存储单元到段寄存器(除CS寄存器),立即数不能值接 ...

  5. 微机原理——指令系统——传送类指令(MOV、LEA、LDS、LES、LAHF、SAHF、XCHG、XLAT、PUSH、POP、PUSHF、POPF)

    博主联系方式: QQ:1540984562 QQ交流群:892023501 群里会有往届的smarters和电赛选手,群里也会不时分享一些有用的资料,有问题可以在群里多问问. [没事儿可以到我主页看看 ...

  6. 数据移动指令-----mov,lea,xchg

    mov指令 数据传送指令 格式:MOV OPRD1,OPRD2 功能:将一个源操作数送到目的操作数中,即OPRD2->OPRD1 OPRD1为目的操作数,可以是寄存器,存储器,累加器 OPRD2 ...

  7. Git 和 Github 秘籍

    GitHub秘籍 Git 和 Github 秘籍,灵感来自于 Zach Holman 在 2012 年 Aloha Ruby Conference 和 2013 年 WDCNZ 上所做的演讲:Git ...

  8. 【二进制基础篇-1】汇编基础

    掌握汇编语言的目的是能够深入理解计算机系统的底层原理,在提高程序设计能力的同时也为二进制安全打下坚实的基础. 目录 1.CPU指令集 1.1 CPU的作用 1.2 CPU指令集 2.数据表示 2.1 ...

  9. 汇编语言常用指令汇总(持续更新)

    汇编语言常用指令汇总(持续更新) 通用数据传送指令 累加器专用指令 有效地址送寄存器指令 标志寄存器传送指令 加法指令 减法指令 乘法指令 除法指令 逻辑指令 移位指令 通用数据传送指令 MOV(Mo ...

最新文章

  1. [微信小程序]上传单张和多张图片
  2. HDU_1087-Super Jumping! Jumping! Jumping!
  3. Mingw-W64编译Windows程序提示:undefined reference to `__imp_GetStockObject' 的解决方法
  4. Cortana小娜:城市信息提醒
  5. Asigra无代理备份:“云”数据保护的先行者
  6. Jenkins CLI命令行工具,助你轻松管理 Jenkins
  7. c++STL容器的List
  8. 关于vc6 在mfc ClassWizard中无法添加成员变量
  9. Python之令人心烦意乱的字符编码与转码
  10. 机器学习 ML.NET 发布 1.0 RC
  11. 计算机动画 应用,计算机动画与应用.PDF
  12. 在c语言中定义共用型数据类型的关键字是,C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键...
  13. x86和amd64指令参考
  14. OPENNLP——java的NLP工具
  15. 虽然保持了连续代码生产量但是仔细想想也没什么必要
  16. android View的层级结构
  17. python贪吃蛇_python实现贪吃蛇
  18. Spring Cloud Gateway⑤令牌桶算法
  19. 7年弹指一挥间:iOS演进史
  20. MPB:南京​湖泊所王建军组-​湖泊沉积物的野外采集方法

热门文章

  1. 最新阿里聚划算Java 5轮面试题,涵盖GC收集器、多线程锁等
  2. Android官方开发文档Training系列课程中文版:与其它APP交互之允许其它APP启动你的Activity
  3. 数字化转型知识方法系列之三:以价值效益为导向推进数字化转型的五大重点任务
  4. Linux安装MariaDB(Mysql)和简单配置
  5. Spring详解(八)------事务管理
  6. 判断jQuery选择器结果为空 - CSDN博客
  7. c# ref和out参数
  8. 《信息安全系统设计基础》 实验五
  9. HttpClient Get/Post方式调用Http接口
  10. 超出内容用省略号替代