gpt4 book ai didi

assembly - FILD 和 FSTP 指令

转载 作者:行者123 更新时间:2023-12-01 12:51:35 25 4
gpt4 key购买 nike

正在做一个 crackme,试图编写一个注册机,我对一些 FPU 指令感到困惑。

fild    qword ptr ss:[esp] ; loads 4275451536.0000000000 into ST0. ESP has FED63690
lea esp, dword ptr ss:[esp+8]
fstp qword ptr ss:[ebp-410] ; loads D2000000 into ebp - 410
fld qword ptr ss:[ebp-410] ; loads 4275451536.0000000000 into ST0
fstp qword ptr ss:[esp+8] ; loads D2000000 into esp+8

我想知道它在弹出时如何将 4275451536.0000000000 转换为 D2000000?

最佳答案

代码将值 4275451536.0 作为 double 浮点写入地址 [ebp-410]。 4275451536.0 作为 IEEE-754 double float 的表示是 41EFDAC6D2000000(您可以进行转换 here )。由于您只查看了较低的 4 个字节,因此您看到了 D2000000,但您应该查看整个 8 个字节以查看整个值。

如果您想知道值 41EFDAC6D2000000 是如何达到的,请阅读 double precision floating point format .我上面链接的工具将为您提供尾数和指数的值。

关于assembly - FILD 和 FSTP 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com