【发布时间】:2019-01-28 00:21:01
【问题描述】:
mov eax 0x8000
mov ebx 0x10000
lea esp, [ebx+eax*2]
这里我知道目的地是 esp。我也知道 LEA(加载有效地址)在这种情况下表现得像移动。但我不确定存储在这个寄存器中的值。我是这样看的:
0x8000 * 2 = 0x80000
0x20000 + 0x10000 = 0x200000
所以值是:
[0x200000]
我说的对吗?
【问题讨论】:
-
0x8000*2 是 0x10000,而不是 0x80000。无论如何,我个人会说该值为
0x20000(不带括号)。说[0x20000]可以解释为地址0x20000处的值。 -
@Michael 如果我使用过 mov [ebx] ,在 mov ebx 0x10000 之后的 eax 会改变什么吗?我是这么看的 - 将 0x8000 存储在地址 0x10000 中,该地址既不是 eax 也不是 ebx 的地址,所以它不会。