FABS

Absolute Value

Opcodes

Hex Mnemonic Encoding Long Mode Legacy Mode Description
D9 E1 FABS None Valid Valid Replace ST with its absolute value.

Description

Clears the sign bit of ST(0) to create the absolute value of the operand. The following table shows the results obtained when creating the absolute value of various classes of numbers.

Results Obtained from FABS
ST(0) SRC ST(0) DEST
- = + =
- F + F
- 0 + 0
+ 0 + 0
+ F + F
+ = + =
NaN NaN

Pseudo Code

ST(0) = |ST(0)|;

FPU Flags Affected

C1: Set to 0 if stack underflow occurred; otherwise, set to 0. C0, C2, C3 are undefined.

Exceptions

Floating-Point Exceptions

Exception Description
#IS Stack underflow occurred.

64-Bit Mode Exceptions

Same exceptions as in protected mode.

Compatibility Mode Exceptions

Same exceptions as in protected mode.

Virtual-8086 Mode Exceptions

Same exceptions as in protected mode.

Real-Address Mode Exceptions

Same exceptions as in protected mode.

Protected Mode Exceptions

Exception Description
#UD If the LOCK prefix is used.
#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.