x87 FPU Instructions
45 x86 instructions in this extension - click any row for encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Summary |
|---|---|---|---|
| f2xm1 | F2XM1 | Legacy | Computes (2^ST(0)) - 1. |
| fabs | FABS | Legacy | Replaces ST(0) with its absolute value. |
| fadd | FADD m32fp/m64fp | Legacy | Adds src to dest (ST(0) += src). |
| fchs | FCHS | Legacy | Reverses the sign of ST(0). |
| fclex | FCLEX | Legacy | Clears floating-point exception flags. |
| fcom | FCOM m32fp/m64fp | Legacy | Compares ST(0) with source. |
| fcos | FCOS | Legacy | Computes cosine of ST(0) (in radians). |
| fdecstp | FDECSTP | Legacy | Decrements the TOP field in the FPU status word. |
| fdiv | FDIV m32fp/m64fp | Legacy | Divides dest by src. |
| ffree | FFREE ST(i) | Legacy | Sets the tag for ST(i) to empty. |
| fild | FILD m16int/m32int/m64int | Legacy | Converts integer in memory to double-extended-precision float and pushes to ST(0). |
| fincstp | FINCSTP | Legacy | Increments the TOP field in the FPU status word. |
| finit | FINIT | Legacy | Resets FPU to default state. |
| fist | FIST m16int/m32int | Legacy | Converts ST(0) to integer and stores in memory. |
| fistp | FISTP m16int/m32int/m64int | Legacy | Converts ST(0) to integer, stores in memory, and pops stack. |
| fld | FLD m32fp/m64fp/m80fp | Legacy | Pushes a floating-point value onto the FPU register stack (ST0). |
| fld1 | FLD1 | Legacy | Pushes +1.0 onto the FPU register stack. |
| fldcw | FLDCW m2byte | Legacy | Loads FPU control word from memory. |
| fldl2e | FLDL2E | Legacy | Pushes log2(e) onto the FPU register stack. |
| fldl2t | FLDL2T | Legacy | Pushes log2(10) onto the FPU register stack. |
| fldlg2 | FLDLG2 | Legacy | Pushes log10(2) onto the FPU register stack. |
| fldln2 | FLDLN2 | Legacy | Pushes ln(2) onto the FPU register stack. |
| fldpi | FLDPI | Legacy | Pushes Pi onto the FPU register stack. |
| fldz | FLDZ | Legacy | Pushes +0.0 onto the FPU register stack. |
| fmul | FMUL m32fp/m64fp | Legacy | Multiplies dest by src. |
| fpatan | FPATAN | Legacy | Computes arctan(ST(1)/ST(0)). |
| fprem | FPREM | Legacy | Computes remainder of ST(0) / ST(1). |
| fptan | FPTAN | Legacy | Computes tangent of ST(0) and pushes 1.0. |
| frndint | FRNDINT | Legacy | Rounds ST(0) to integer according to RC field. |
| frstor | FRSTOR m108byte | Legacy | Loads FPU state from memory. |
| fsave | FSAVE m108byte | Legacy | Stores FPU state to memory and re-initializes FPU. |
| fscale | FSCALE | Legacy | Scales ST(0) by ST(1) (ST(0) * 2^ST(1)). |
| fsin | FSIN | Legacy | Computes sine of ST(0) (in radians). |
| fsincos | FSINCOS | Legacy | Computes sine and cosine of ST(0), pushing both to stack. |
| fsqrt | FSQRT | Legacy | Computes square root of ST(0). |
| fst | FST m32fp/m64fp | Legacy | Copies the value in ST(0) to memory or another register. |
| fstcw | FSTCW m2byte | Legacy | Stores FPU control word to memory. |
| fstp | FSTP m32fp/m64fp/m80fp | Legacy | Copies ST(0) to destination and pops the register stack. |
| fstsw | FSTSW AX | Legacy | Stores FPU status word to AX or memory. |
| fsub | FSUB m32fp/m64fp | Legacy | Subtracts src from dest. |
| fucom | FUCOM ST(i) | Legacy | Compares ST(0) with source (supports NaNs). |
| fxch | FXCH ST(i) | Legacy | Exchanges contents of ST(0) and ST(i). |
| fxtract | FXTRACT | Legacy | Separates exponent and significand of ST(0). |
| fyl2x | FYL2X | Legacy | Computes ST(1) * log2(ST(0)). |
| fyl2xp1 | FYL2XP1 | Legacy | Computes ST(1) * log2(ST(0) + 1). |