How do FILD and FSTP work?

I searched the net and everywhere it says: FILD converts a two's complement integer to 80 bit extended precision float and puts it on top of the floating point stack. So, I had a program, but I get the result unexpectedly.

Example: I have number 0xFF20A810 in memory (say at 0x40000000) fild [0x40000000] fstp [0x40010000]

The result is 0x41EFE41502000000. How is a number converted? I'm in the middle of a crack using this and I just can't seem to find a solution.



source to share

1 answer

0x41EFE41502000000 - 4280330256.0 double precision. 0xFF20A810 is 4280330256 as an unsigned integer.

So, you accidentally loaded it up as a qword, it seems to me, and in luck (the rest of the bytes were zero).



All Articles