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.