fld1 is supposed to push 1 on to the stack of x87, but when I looked at the value of stack, the st0 value is 0x3fff800000000000, I tried to decode the double precision float manually, the value i got is 1.96875E0, which is not 1 that I intend to load into the register, is it a bug or what?
Asked
Active
Viewed 33 times
0
-
x87 native registers are 80-bit extended precision https://en.wikipedia.org/wiki/IEEE_754#Extended_and_extendable_precision_formats, not IEEE binary64. Count the hex digits; there are too many to decode it as double precision. – Peter Cordes Feb 15 '22 at 18:09