2012-03-25 61 views
3

我在网上搜索过,无处不在:FILD将 整数的二进制补码转换为80位的扩展精度浮点数,并将其放在浮点堆栈顶部。 所以,我有一个程序做到这一点,但我得到的结果是意想不到的。FILD和FSTP如何工作?

例子: 我在内存中的数字0xFF20A810(让我们在0x40000000之后说) FILD [0x40000000之后] FSTP [0x40010000]

结果我得到的是0x41EFE41502000000。数字如何转换? 我正在使用这个crackme,我只是找不到解决方案。

谢谢

+0

你期待它做什么? – 2012-03-25 21:55:27

回答

3

0x41EFE41502000000是双精度4280330256.0。 0xFF20A810是4280330256作为无符号整数。

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

+0

非常感谢(: – user1291797 2012-03-30 15:00:35