逃跑后应该是什么结果



我需要计算此代码后x的值。

Section data
db 0,0,0,0,0,0,0,0x80,0,0x40
Section text
Fld tword [x]

答案应该是 8,但我得到了 3。

Sign: 0

Mantisa: calcukated from the part of 0x40 0 which is 1000000000000000 give us after calculate : 2

然后我们从分数代码中得到 1.5

结果是 1.5 * 2 = 3

首先,你混淆了命名,你所说的尾数是指数。它的编码偏差为 16383。所以你的指数是16384 - 16383 = 1.有效位数与显式整数位一起存储,因此这也很简单1

因此,该数字1 * 2^1 = 2。这不是你声称的 8。您可以在调试器中检查它:

(gdb) info float
=>R7: Valid   0x40008000000000000000 +2

最新更新