如何将值从堆栈移到ST(0)?

时间:2010-06-14 03:35:04

标签: assembly floating-point x86

我无法相信以下代码是将值从堆栈移动到ST(0)的最有效方法:

.data
var dd 4.2
tmp dd ?

.code
mov EAX, var
push EAX
; top of stack now contains a value

; move it to ST(0)
pop EAX
mov tmp, EAX
fld tmp

临时变量真的有必要吗?此外,是否有更简单的方法从堆栈中获取值到ST(0)?

更新:在上面的例子中,我正在移动浮点值 - 而不是整数。

1 个答案:

答案 0 :(得分:2)

fld dword ptr [esp]    ; assembles to D9 04 24