Assembly FILD和FSTP是如何工作的?

Assembly FILD和FSTP是如何工作的?,assembly,floating-point,x86,stack,fpu,Assembly,Floating Point,X86,Stack,Fpu,我在网上搜索过,它说的每一个地方都是:FILD将二者的补数转换为A 整数到80位扩展精度浮点,并将其放在浮点堆栈的顶部。 所以,我有一个程序可以做到这一点,但我得到的结果是出乎意料的 例如: 我的内存中有数字0xFF20A810(比如0x40000000) fild[0x40000000] fstp[0x40010000] 我得到的结果是0x41EFE4150200000。这个数字是如何换算的? 我正处于一个使用这种方法的裂缝中,我只是找不到解决办法。 谢谢您0x41EFE4150200000是

我在网上搜索过,它说的每一个地方都是:FILD将二者的补数转换为A 整数到80位扩展精度浮点,并将其放在浮点堆栈的顶部。 所以,我有一个程序可以做到这一点,但我得到的结果是出乎意料的

例如: 我的内存中有数字0xFF20A810(比如0x40000000) fild[0x40000000] fstp[0x40010000]

我得到的结果是0x41EFE4150200000。这个数字是如何换算的? 我正处于一个使用这种方法的裂缝中,我只是找不到解决办法。
谢谢您

0x41EFE4150200000是4280330256.0的双精度。0xFF20A810是4280330256,为无符号整数


因此,我认为您意外地将其加载为qword,并获得了幸运(其他字节为零)。

您希望它做什么?