2012-03-25 80 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