FILD和FSTP如何运作?

时间:2012-03-25 21:07:47

标签: assembly floating-point x86 stack fpu

我在网上搜索,到处说:FILD转换了两个补码 整数到80位扩展精度浮点数,并将其置于浮点堆栈的顶部。 所以,我有一个程序这样做,但我得到的结果是意外的。

实施例: 我在内存中有数字0xFF20A810(假设在0x40000000中) fild [0x40000000] fstp [0x40010000]

我得到的结果是0x41EFE41502000000。数字是如何转换的? 我正处于使用它的裂缝中间,我找不到解决方案。

谢谢

1 个答案:

答案 0 :(得分:3)

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

所以你不小心加载了它,我认为是qword,并且很幸运(其他字节为零)。