FCHS

Change Sign

Opcodes

Hex Mnemonic Encoding Long Mode Legacy Mode Description
D9 E0 FCHS None Valid Valid Complements sign of ST(0).

Description

Complements the sign bit of ST(0). This operation changes a positive value into a negative value of equal magnitude or vice versa. The following table shows the results obtained when changing the sign of various classes of numbers.

FCHS Results
ST(0) SRC ST(0) DEST
- ∞ + ∞
- F + F
- 0 + 0
+ 0 - 0
+ F - F
+ ∞ - ∞
NaN NaN

Pseudo Code

SignBit(ST(0)) = NOT (SignBit(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.