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
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