【问题标题】:Loading register value to FPU stack将寄存器值加载到 FPU 堆栈
【发布时间】:2015-07-31 12:29:29
【问题描述】:

我目前正在开发一个同时使用 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

【问题讨论】:

  • 你只能从内存中加载,手册是这么说的,所以你真的可以知道..
  • 很遗憾我没有。

标签: assembly x86 cpu fpu


【解决方案1】:

你可以这样做:

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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 2014-07-28
    • 2021-06-10
    • 1970-01-01
    • 2021-03-07
    • 2015-09-25
    • 2017-10-13
    • 1970-01-01
    相关资源
    最近更新 更多