分配值进行注册

时间:2013-11-15 23:10:47

标签: assembly

我在重写某些ASM代码时遇到了一些问题。 Atm以下代码

FLD DWORD PTR SS:[ESP+20]
FDIV DWORD PTR SS:[ESP+28]
FSTP QWORD PTR SS:[ESP]

其中[ESP + 20]包含1到10之间的值,[ESP + 28]为30。

现在,我正在尝试重写这段代码,跳过除法并只分配一个静态值,但它似乎不能用于某种原因,它只输出“0”。我正在做以下事情:

MOV DWORD PTR SS:[ESP+28], 0A
FSTP QWORD PTR SS:[ESP]

我对这个组装工作还很陌生,所以我可能做错了什么。 这里的任何人都能指出我正确的方向吗?我真的很感激!

提前致谢

1 个答案:

答案 0 :(得分:2)

让我们看看

FSTP QWORD PTR SS:[ESP]

将FP堆栈顶部的浮点值存储到指定的地址中,然后将其弹出。

为此,您必须首先将常量加载到FP堆栈上。

所以你需要先做这样的事情:

MOV DWORD PTR SS:[ESP+28], 0A
FLD DWORD PTR SS:[ESP+28]