User's Manual

OVERVIEW OF NUMERIC PROCESSING
Table
1-9
shows
how
the instruction set deals with unnormal operands. Note
that
the unnormal may
be the original operand or a temporary created by the
80287 from a denormal.
ZEROS
AND
PSEUDO
ZEROS
The value zero in the real and decimal integer formats may be signed either positive or negative,
although the sign of a binary integer zero
is
always positive. For computational purposes, the value of
zero always behaves identically, regardless of sign, and typically the fact that a zero may be signed
is
transparent to the programmer.
If
necessary, the FXAM instruction may be used to determine a zero's
sign.
The zeros discussed above are called true zeros; if one of them
is
loaded or generated in a register, the
register
is
tagged zero. Table
1-10
lists the results
of
instructions executed with zero operands and also
shows
how
a true zero may be created from nonzero operands.
Only the temporary real format may contain a special class of values called pseudo zeros. A pseudo
zero
is
an unnormal whose significand
is
all zeros, but whose (biased) exponent
is
nonzero (true zeros
have a zero exponent). Neither
is
a pseudo zero's exponent all ones, since this encoding
is
reserved for
infinities and NANs. A pseudo zero result will be produced if
two
unnormals, containing a total of
more than 64 leading zero bits in their significands, are multiplied together. This
is
a remote possibility
in most applications, but it can happen.
Table 1-9.
Un
normal
Operands and Results
Operation
Addition/subtraction
Multiplication
Division (unnormal dividend only)
FPREM (unnormal dividend only)
Division/FPREM (unnormal
divisor)
Compare/FTST
FRNDINT
FSQRT
FST, FSTP
(short/long real
destination)
FSTP (temporary real destination)
FIST, FISTP, FBSTP
FLD
FXCH
Transcendental instructions
Result
Normalization of operand with larger abosolute
value determines normalization of result.
If either operand
is
unnormal, result
is
unnormal.
Result is unnormal.
Result if normalized.
Signal invalid operation.
Normalize
as
much as possible before making
comparison.
Normalize as much
as
possible before rounding.
Signal invalid operation.
If value
is
above destination's underflow bound-
ary, then signal invalid operation; else signal
underiiow.
Store
as
usual.
Signal invalid operation.
Load
as
usual.
Exchange
as
usual.
Undefined; operands must be normal and are not
checked.
1-24