将寄存器值加载到 FPU 堆栈

Loading register value to FPU stack

我目前正在开发一个同时使用 CPU 和 FPU 寄存器的汇编程序。我的问题是关于如何将寄存器值加载到 FPU 堆栈(即 ecx)。

mov    ecx, 10d    ; Load 10 into ECX
fldpi              ; Load Pi
fild   ecx         ; This does not work, it does however for .data variables
fmul               ; Multiply

如有任何帮助,我们将不胜感激。我正在使用 Visual Studio 2015/MASM 进行开发,.386 和 .model flat,STDCALL。

此致, Z

你可以这样做:

mov [temp_mem],ecx
fild dword ptr [temp_mem]

push ecx
fild dword ptr [esp]
pop ecx

或者您可以在数据部分只使用常量 10:

.data
ten dd 10
.code
fild dword ptr [ten]