FSUB/FSUBP/FISUB—Subtract (Continued)
Table 2-9.
DEST
Notes:
Fmeans finite-real number.
Imeans integer.
*indicates floating-point invalid-arithmetic-operand (#IA) exception.
Operation
IF instruction is FISUB
THEN
DEST DEST ConvertExtendedReal(SRC);
ELSE (* source operand is real number *)
DEST DEST SRC;
FI;
IF instruction = FSUBP
THEN
PopRegisterStack
FI;
FPU Flags Affected
C1
C0, C2, C3
Floating-point Exceptions
#IS
#IA
#D
#U
#O
#P
Volume 4: Base IA-32 Instruction Reference
FSUB Zeros and NaNs
F or I
*
F
F or 0
+
0
SRC
+
SRC
+ 0
+
+ F
+
+ F
+
+
+
NaN
NaN
NaN
Set to 0 if stack underflow occurred.
Indicates rounding direction if the inexact-result exception (#P) fault
is generated: 0 = not roundup; 1 = roundup.
Undefined.
Stack underflow occurred.
Operand is an SNaN value or unsupported format.
Operands are infinities of like sign.
Source operand is a denormal value.
Result is too small for destination format.
Result is too large for destination format.
Value cannot be represented exactly in destination format.
SRC
0
+ 0
+ F or +I
F
DEST
DEST
0
0
SRC
0
SRC
+0
F or 0
DEST
DEST
+
+
+
NaN
NaN
NaN
+
NaN
NaN
NaN
NaN
NaN
NaN
*
NaN
NaN
NaN
4:183