【问题标题】:How FILD and FSTP work?FILD 和 FSTP 是如何工作的?
【发布时间】:2012-03-25 21:07:47
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 你期待它做什么?

标签: assembly floating-point x86 stack fpu


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-12-08
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2018-11-10
    • 2018-02-12
    • 2018-06-21
    相关资源
    最近更新 更多