MOV与LEA

Posted libbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MOV与LEA相关的知识,希望对你有一定的参考价值。

MOV

  • 格式:MOV dest, src
  • 作用:赋值,且不改变标记位的值
  • 特点:可以从寄存器到寄存器、从立即数到寄存器、从存储单元到寄存器、从立即数到储存单元、从寄存器到存储单元、从寄存器或存储单元到段寄存器(除CS寄存器);立即数不能值接送段寄存器
  • [ ]作用:
    • 对于变量:有无[ ]都表示取值
    • 对于寄存器:有[ ]表示取地址,无[ ]表示取值

LEA

(Load Effective Address)

  • 格式:LEA dest, src
  • 作用:将源操作数的偏移地址给目的操作数,即返回的是src的地址;另外,LEA指令具有单时钟周期,执行效率很高。
  • [ ]作用:
    • 对于变量:有无[ ]都表示取地址
    • 对于寄存器:有[ ]表示取值,无[ ]表示取地址(正好与MOV相反)

举例

  • 对于计算EAX*4+EBX+3,结果放入EDX
    • MOV
    MOV EDX, EAX
    SHL EDX, 4
    ADD EDX, EBX
    ADD EDX, 3
    • LEA
    LEA EDX, [EBX + EAX * 4 + 3]

参考:https://blog.csdn.net/fengyuanye/article/details/85715565

以上是关于MOV与LEA的主要内容,如果未能解决你的问题,请参考以下文章

请教各位高手,MOV SP,OFFSET TOP与LEA SP,TOP这两条指令都是一个意思,其中MOV指令为啥要加OFFSET?

LEA & MOV 指令比较

汇编中中括号[]作用以及lea和mov指令的区别

总结一下汇编中mov,lea指令的区别

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

Android 逆向x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )