# FSTCW/FNSTCW
# Store x87 FPU Control Word
Opcode | Mnemonic | Description |
---|---|---|
9B D9 /7 | FSTCW m2byte | Store FPU control word to m2byte after checking for pending unmasked floating-point exceptions. |
D9 /7 | FNSTCW m2byte | Store FPU control word to m2byte without checking for pending unmasked floating-point exceptions. See IA-32 Architecture Compatibility section below. |
# Description
Stores the current value of the FPU control word at the specified destination in memory. The FSTCW instruction checks for and handles pending unmasked floating-point exceptions before storing the control word; the FNSTCW instruction does not.
The assembler issues two instructions for the FSTCW instruction (an FWAIT instruction followed by an FNSTCW instruction), and the processor executes each of these instructions in separately. If an exception is generated for either of these instructions, the save EIP points to the instruction that caused the exception.
# Operation
Destination = FPUControlWord;
2
# FPU flags affected
The C0, C1, C2, and C3 flags are undefined.
# IA-32 Architecture Compatibility
When operating a Pentium or Intel486 processor in MS-DOS compatibility mode, it is possible (under unusual circumstances) for an FNSTCW instruction to be interrupted prior to being executed to handle a pending FPU exception. See the section titled "No-Wait FPU Instructions Can Get FPU Interrupt in Window" in Appendix D of the IA-32 Intel Architecture Software Developer's Manual, Volume 1, for a description of these circumstances. An FNSTCW instruction cannot be interrupted in this way on a Pentium 4, Intel Xeon, or P6 family processor.
# Floating-Point Exceptions
None.
# Protected Mode Exceptions
# Real-Address Mode Exceptions
# Virtual-8086 Mode Exceptions
← FSQRT FSTENV/FNSTENV →