【发布时间】:2014-12-03 04:39:49
【问题描述】:
说明 1:
LEA DX, MESSAGE ; Move the address of MESSAGE in register DX
说明 2:
MOV DX, OFFSET MESSAGE ; Move the address of MESSAGE in register DX
问题:
- 上述指令是否相同?它们的工作原理似乎相似,但我刚刚开始编写汇编程序,所以我不能说。
- 如果两者相似,那么以上哪一种是完成上述任务的更好方法?
注意: 我已经读过这个question
【问题讨论】:
-
只有当 MESSAGE 是一个全局变量时它们才等效。当变量存储在堆栈中或者是数组的元素时,LEA 开始发挥作用。您可以免费获得乘法和加法。 C 编译器真的很喜欢 LEA。汇编程序员不是那么多。