汇编语言中LEA指令和MOV指令的区别是什么?

2024-12-01 13:48:07
推荐回答(2个)
回答1:

MOV指令的功能是传送数据,例如MOV AX,[1000H],作用是将1000H作为偏移地址,寻址找到内存单元,将该内存单元中的数据送至AX;

LEA指令的功能是取偏移地址,例如LEA AX,[1000H],作用是将源操作数[1000H]的偏移地址1000H送至AX。理解时,可直接将[ ]去掉,等同于MOV AX,1000H。

再如:LEA BX,[AX],等同于MOV BX,AX;LEA BX,TABLE 等同于 MOV BX,OFFSET TABLE。
但有时不能直接使用MOV代替:
比如:LEA AX,[SI+6] 不能直接替换成:MOV AX,SI+6;但可替换为:
MOV AX,SI
ADD AX,6
两步完成。

回答2:

LEA指令的功能是取偏移地址,例如LEA
AX,[1000H],作用是将源操作数[1000H]的偏移地址1000H送至AX;
MOV指令的功能是传送数据,例如MOV
AX,[1000H],作用是将1000H作为偏移地址,寻址找到内存单元,将该内存单元中的数据送至AX。