Intel 80287, 80286 manual Frndint, Fsqrt, FIST, FISTP, Fbstp, Fld, Fxch

Models: 80287 80286

1 515
Download 515 pages 45.04 Kb
Page 376
Image 376

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

Result

Addition/subtraction

Normalization of operand with larger abosolute

 

value determines normalization of result.

Multiplication

If either operand is unnormal, result is unnormal.

Division (unnormal dividend only)

Result is unnormal.

FPREM (unnormal dividend only)

Result if normalized.

Division/FPREM (unnormal

Signal invalid operation.

divisor)

 

Compare/FTST

Normalize as much as possible before making

 

comparison.

FRNDINT

Normalize as much as possible before rounding.

FSQRT

Signal invalid operation.

FST, FSTP (short/long real

If value is above destination'sunderflow bound-

destination)

ary, then signal invalid operation; else signal

 

underiiow.

FSTP (temporary real destination)

Store as usual.

FIST, FISTP, FBSTP

Signal invalid operation.

FLD

Load as usual.

FXCH

Exchange as usual.

Transcendental instructions

Undefined; operands must be normal and are not

 

checked.

1-24

Page 376
Image 376
Intel 80287, 80286 manual Frndint, Fsqrt, FIST, FISTP, Fbstp, Fld, Fxch