2012-03-25 1 views
3

Я искал в сети, и везде он говорит: FILD преобразует дополнение двух целого числа к 80-битовому расширенному прецизионному поплавку и помещает его поверх стека с поплавками. Итак, у меня была программа, но результат я получаю неожиданно.Как работают FILD и FSTP?

Пример: У меня число 0xFF20A810 в памяти (скажем, в 0x40000000) Филд [0x40000000] FSTP [0x40010000]

В результате я получаю 0x41EFE41502000000. Как преобразуется число? Я нахожусь в середине трещины, которая использует это, и я просто не могу найти решение.

Спасибо

+0

Что вы ожидали от этого? –

ответ

3

0x41EFE41502000000 в двойной точности +4280330256,0. 0xFF20A810 - это 4280330256 как целое число без знака.

Итак, вы случайно загрузили его, я думаю, как qword и повезло (остальные байты были равны нулю).

+0

Большое спасибо (: – user1291797