Как переместить значение из стека в ST (0)? - PullRequest
0 голосов
/ 14 июня 2010

Мне трудно поверить, что следующий код является наиболее эффективным способом перемещения значения из стека в 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 Ответ

2 голосов
/ 14 июня 2010
fld dword ptr [esp]    ; assembles to D9 04 24
...