assembly - 我可以从 EAX/RAX 获取 int 到 FPU 的寄存器(如 st0)吗?

标签 assembly x86 nasm fpu

我目前正在大学从事一个小型汇编程序项目。现在我的问题是,是否有可能从我的 EAX/RAX 寄存器到我的 FPU 寄存器之一(如 st0)获得用户给出的乘法(int)的标量?我正在使用 NASM 语法。

谢谢

最佳答案

没有办法直接将整数寄存器的内容传输到x87浮点寄存器,必须通过内存。典型的代码如下所示:

PUSH RAX         ; push RAX on the stack
FILD QWORD [RSP] ; load eight byte integer onto FP stack
ADD RSP,8        ; release storage from stack

您通常可以通过在函数开头的堆栈帧中为此类传输分配一些存储空间来避免摆弄堆栈指针。

关于assembly - 我可以从 EAX/RAX 获取 int 到 FPU 的寄存器(如 st0)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50240985/

相关文章:

c - 中断处理程序在真实计算机上不起作用

c - 为什么要在函数序言/结语中使用 ebp?

linux nasm程序集隔离字符串中的字符

assembly - 在手动编码的远调用后定义出现在调试中的字节

linux x64加法程序

assembly - "times 510-($-$$) db 0"不起作用

assembly - ARM 汇编和 x86 汇编之间的差异

c - 确定汇编中函数的返回类型

debugging - GDB中调试过程中的asm代码从何而来?

assembly - 当我在 x86 程序集中 printf 时,ANSI 转义码不起作用?