我有一个存储在
中的和值fstp qword [ebx] ; Copy contents of st0 to space currently on top of the system stack
如何将其除以寄存器edi?
中存储的整数值 我认为这只是fdiv edi
但它表示无效组合......等等等等
洞察?
答案 0 :(得分:1)
你做不到。 FPU无法访问整数寄存器。
答案 1 :(得分:0)
正如Jens在答案中所说,FPU没有直接访问整数寄存器。您将需要使用暂存内存进行传输。这是x87 FPU的主要缺点之一。示例代码可能类似于:
section .bss
fpscratch: resd 1
...
section .text
;other code goes here
MOV fpscratch, edi
FILD fpscratch
FDIV
(注意上面的代码:显然,它没有经过测试,我的装配上有点生锈所以可能有些问题,即使它很好而且很短。)