-
-
[讨论]OD里面FPU寄存器计算的BUG?
-
发表于:
2014-10-16 14:16
6460
-
近期在写调试器, 因为我的调试起是防 OD的视图结构写的,所以很多地方参考了OD的界面
在FPU转换的时候发现个问题:
0x3F800000 是float 1.0
0 x3FF0 0000 0000 0000 是double 1.0
以上计算,使用的是VC printf 方法的原理转换得到, 关于转换的话题很多,可以自行参考
在处理 80位的时候 (1 + 15 + 64)
0x 3FFF 8000 0000 0000 0000
由于VC没有80为的处理,所以我将它转换为 64位:
0 x 3FF8 0000 0000 0000
故得到
1.50000000000
不过,我在 OD 上发现, 80位相同的数据 0x 3FFF 8000 0000 0000 0000
它显示的 1.0000000000
难道是它错了? 还是我错了? 错在哪呢?
在OD中,可以直接在winxp sp3 下装载 Notepad.exe
默认看到FPU 寄存器的内容 1.00000000000 双击可以看到hex
附一张偶写的调试器, 看看像不像OD
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课