确定目的地(寄存器名称或地址)和值

时间:2019-01-27 15:52:20

标签: assembly x86

mov eax 0x8000 

mov ebx 0x10000

lea esp, [ebx+eax*2]

在这里,我知道目的地是esp。我也知道LEA(加载有效地址)在这种情况下的行为就像移动。但是我不确定该寄存器中存储的值。我这样看:

  

0x8000 * 2 = 0x80000

     

0x20000 + 0x10000 = 0x200000

因此该值为:

  

[0x200000]

我是对的吗?

1 个答案:

答案 0 :(得分:1)

检查您的算术,但通常来说您是对的。您正确理解了x86 LEA指令。

x86 LEA指令未取消引用其计算的地址。也就是说,LEA不会前往该地址。相反,LEA只是计算地址供其他指令以后使用。

相关问题