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