OVERVIEW OF NUMERIC PROCESSING

Table 1-17. Exception Conditions and Masked Responses

Condition

Masked Response

Invalid Operation

Source register is tagged empty (usually due to stack underflow).

Destination register is not tagged empty (usually due to stack overflow).

One or both operands is a NaN.

(Compare and test operations only): one or both operands is a NaN.

(Addition operations only): closure is affine and operands are opposite-signed infinities; or closure is projective and both operands are 00 (signs immaterial).

(Subtraction operations only): closure is affine and operands are like-signed infinities; or closure is projective and both operands are 00 (signs immaterial).

(Multiplication operations only): 00 • 0; or 0 •

00.

(Division operations only): 00 -;- 00; or 0 -;- 0; or 0 -;-pseudo zero; or divisor is denormal or unnormal.

(FPREM instruction only): modulus (divisor) is unnormal or denormal; or dividend is 00.

(FSQRT instruction only): operand is nonzero and negative; or operand is denormal or unnormal; or closure is affine and operand is

- 00; or closure is projective and operand is

00.

(Compare operations only): closure is projec- tive and 00 is being compared with 0, a normal,

or 00.

(FTST instruction only): closure is projective and operand is 00.

(FIST, FISTP instructions only): source regis- ter is empty, a NaN, denormal, unnormal, 00, or exceeds representable range of destina- tion.

(FBSTP instruction only): source register is empty, a NaN, denormal, unnormal, 00, or exceeds 18 decimal digits.

(FST, FSTP instructions only): destination is short or long. real and source register is an unnormal with exponent in range.

(FXCH Instruction only): one or both registers is tagged empty.

Return real indefinite.

Return real indefinite (overwrite destination value).

Return NaN with larger absolute value (ignore signs).

Set condition codes "not comparable."

Return real indefinite.

Return real indefinite.

Return real indefinite.

Return real indefinite.

Return real indefinite, set condition code = "complete remainder."

Return real indefinite.

Set condition code = "not comparable."

Set condition code = "not comparable."

Store integer indefinite.

Stored packed decimal indefinite.

Store real indefinite.

Change empty register(s) to real indefinite and then'performexchange.

1-35

Page 387
Image 387
Intel 80286, 80287 manual Exception Conditions and Masked Responses