我无法相信以下代码是将值从堆栈移动到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)?
更新:在上面的例子中,我正在移动浮点值 - 而不是整数。
答案 0 :(得分:2)
fld dword ptr [esp] ; assembles to D9 04 24