FXTRACT         Extract exponent and significand     Exceptions: I
C3 C2 C1 C0: ? ? * ?
FXTRACT

Logic temp ← ST
ST ← exponent(ST)
push significand(temp) into ST

FXTRACT separates out the exponent and significand of the value in
ST. It puts the exponent into ST and then pushes the significand
onto the stack. (Both are represented as real numbers.)
It leaves the exponent in ST(1) and the significand in ST.


Note
FXTRACT performs a superset of the IEEE-recommended logb(x)
function.
If the original operand is zero, FXTRACT leaves negative infinity as
the exponent in ST(1) and sets ST to zero with the same sign as the
original operand. The zero-divide exception is raised in this case.
ST(7) must be empty to avoid an invalid-operation exception.

Note also that the exponent generated by FXTRACT is the true
exponent, not the biased exponent used internally by the FPU.


Opcode Format
D9 F4 FXTRACT


Timing
Operand 8087 287 387 486 Pentium
- 27-55 27-55 70-76 16-20 13 NP