3

私はネット上で検索しましたが、それが言うところならどこでも:FILDは整数の2の補数を80ビットの拡張精度浮動小数点数に変換し、浮動小数点数スタックの一番上に置きます。そのため、プログラムにそれを実行させましたが、得られる結果は予期しないものです。

例: メモリに 0xFF20A810 という数字があります (0x40000000 としましょう) fild [0x40000000] fstp [0x40010000]

結果は 0x41EFE41502000000 です。数値はどのように変換されますか? 私はこれを使用するクラックミーの真っ只中にいますが、解決策が見つかりません。

ありがとうございました

4

1 に答える 1

3

0x41EFE41502000000 は倍精度で 4280330256.0 です。0xFF20A810 は、符号なし整数として 4280330256 です。

それで、あなたは誤ってそれを qword としてロードしたと思いますが、幸運でした (他のバイトはゼロでした)。

于 2012-03-25T21:27:27.447 に答える