Compares the value in ST(0) with an integer source operand and sets the condition code flags C0, C2, and C3 in the FPU status word according to the results (see table below). The integer value is converted to double extended-precision floating-point format before the comparison is made.
FICOM/FICOMP Results
Condition | C3 | C2 | C0 |
ST(0) > Source | 0 | 0 | 0 |
ST(0) < Source | 0 | 0 | 1 |
ST(0) = Source | 1 | 0 | 0 |
Unordered | 1 | 1 | 1 |
These instructions perform an "unordered comparison." An unordered comparison also checks the class of the numbers being compared (see "FXAM-Examine" in this chapter). If either operand is a NaN or is in an undefined format, the condition flags are set to "unordered." The sign of zero is ignored, so that -0.0 = +0.0.
The FICOMP instructions pop the register stack following the comparison. To pop the register stack, the processor marks the ST(0) register empty and increments the stack pointer (TOP) by 1.
|