fchs

Change Sign

FCHS

Reverses the sign of ST(0).

Details

Reverses the sign bit of the value in ST(0), converting positive to negative and vice versa. This is a single-bit operation on the sign bit of the extended-precision floating-point format. No flags are affected; the instruction operates entirely within the x87 FPU stack.

Pseudocode Operation

ST(0) ← -ST(0)

Example

FCHS

Encoding

Binary Layout
D9
+0
E0
+1
 
Format Legacy
Opcode D9 E0
Extension x87 FPU

Operands

Reference (Intel® SDM)

Instruction Forms

Opcode Instruction Op/En 64/32-bit Mode CPUID Description
D9 E0 FCHS 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. Table 3-22. FCHS Results ST(0) SRC ST(0) DEST − ∞ + ∞ − F + F − 0 + 0 + 0 − 0 + F − F + ∞ − ∞ NaN NaN

Operation

SignBit(ST(0)) := NOT (SignBit(ST(0)));

Exceptions

Protected Mode Exceptions

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

Real-Address Mode Exceptions

Same exceptions as in protected mode.

Virtual-8086 Mode Exceptions

Same exceptions as in protected mode.

Compatibility Mode Exceptions

Same exceptions as in protected mode. FCHS—Change Sign Vol. 2A 3-318

64-Bit Mode Exceptions

Same exceptions as in protected mode. FCHS—Change Sign Vol. 2A 3-319