Floating-Point Instructions
The floating point instructions operate on floating-point, integer, and binary coded decimal (BCD)
operands.
Data Transfer Instructions (Floating Point)
The data transfer instructions move floating-point, integer, and BCD values between memory and
the floating point registers.
Table 3-13 Data Transfer Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | FBLD | load BCD |  |  
|  | FBSTP | store BCD and pop |  |  
|  | FCMOVB | floating-point conditional move if
below |  |  
|  | FCMOVBE | floating-point conditional move if below or equal |  |  
|  | FCMOVE | floating-point conditional move if equal |  |  
|  | FCMOVNB | floating-point conditional
move if not below |  |  
|  | FCMOVNBE | floating-point conditional move if not below or equal |  |  
|  | FCMOVNE | floating-point conditional
move if not equal |  |  
|  | FCMOVNU | floating-point conditional move if unordered |  |  
|  | FCMOVU | floating-point conditional move if unordered |  |  
|  | FILD | load
integer |  |  
|  | FIST | store integer |  |  
|  | FISTP | store integer and pop |  |  
|  | FLD | load floating-point value |  |  
|  | FST | store floating-point value |  |  
|  | FSTP | store floating-point value and
pop |  |  
|  | FXCH | exchange registers |  | 
 | 
Basic Arithmetic Instructions (Floating-Point)
The basic arithmetic instructions perform basic arithmetic operations on floating-point and integer operands.
Table 3-14 Basic Arithmetic Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | FABS | absolute value |  |  
|  | FADD | add floating-point |  |  
|  | FADDP | add floating-point and pop |  |  
|  | FCHS | change sign |  |  
|  | FDIV | divide floating-point |  |  
|  | FDIVP | divide floating-point and pop |  |  
|  | FDIVR | divide
floating-point reverse |  |  
|  | FDIVRP | divide floating-point reverse and pop |  |  
|  | FIADD | add integer |  |  
|  | FIDIV | divide integer |  |  
|  | FIDIVR | divide integer reverse |  |  
|  | FIMUL | multiply integer |  |  
|  | FISUB | subtract integer |  |  
|  | FISUBR | subtract
integer reverse |  |  
|  | FMUL | multiply floating-point |  |  
|  | FMULP | multiply floating-point and pop |  |  
|  | FPREM | partial remainder |  |  
|  | FPREM1 | IEEE partial remainder |  |  
|  | FRNDINT | round to integer |  |  
|  | FSCALE | scale by
power of two |  |  
|  | FSQRT | square root |  |  
|  | FSUB | subtract floating-point |  |  
|  | FSUBP | subtract floating-point and pop |  |  
|  | FSUBR | subtract floating-point reverse |  |  
|  | FSUBRP | subtract floating-point reverse
and pop |  |  
|  | FXTRACT | extract exponent and significand |  | 
 | 
Comparison Instructions (Floating-Point)
The floating-point comparison instructions operate on floating-point or integer operands.
Table 3-15 Comparison Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | FCOM | compare floating-point |  |  
|  | FCOMI | compare
floating-point and set %eflags |  |  
|  | FCOMIP | compare floating-point, set %eflags, and pop |  |  
|  | FCOMP | compare floating-point and pop |  |  
|  | FCOMPP | compare
floating-point and pop twice |  |  
|  | FICOM | compare integer |  |  
|  | FICOMP | compare integer and pop |  |  
|  | FTST | test floating-point (compare with 0.0) |  |  
|  | FUCOM | unordered
compare floating-point |  |  
|  | FUCOMI | unordered compare floating-point and set %eflags |  |  
|  | FUCOMIP | unordered compare floating-point, set %eflags, and
pop |  |  
|  | FUCOMP | unordered compare floating-point and pop |  |  
|  | FUCOMPP | compare floating-point and pop twice |  |  
|  | FXAM | examine floating-point |  | 
 | 
Transcendental Instructions (Floating-Point)
The transcendental instructions perform trigonometric and logarithmic operations on floating-point operands.
Table 3-16 Transcendental Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | F2XM1 | computes
2x-1 |  |  
|  | FCOS | cosine |  |  
|  | FPATAN | partial arctangent |  |  
|  | FPTAN | partial tangent |  |  
|  | FSIN | sine |  |  
|  | FSINCOS | sine and cosine |  |  
|  | FYL2X | computes y * log2x |  |  
|  | FYL2XP1 | computes y * log2(x+1) |  | 
 | 
Load Constants (Floating-Point) Instructions
The load constants instructions load common constants, such as π, into the floating-point
registers.
Table 3-17 Load Constants Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | FLD1 | load +1.0 |  |  
|  | FLDL2E | load log2e |  |  
|  | FLDL2T | load log210 |  |  
|  | FLDLG2 | load log102 |  |  
|  | FLDLN2 | load loge2 |  |  
|  | FLDPI | load π |  |  
|  | FLDZ | load +0.0 |  | 
 | 
Control Instructions (Floating-Point)
The floating-point control instructions operate on the floating-point register stack and save and
restore the floating-point state.
Table 3-18 Control Instructions (Floating-Point)
| |  |  |  |  | 
|---|
 
|  | FCLEX | clear floating-point exception flags after checking for
error conditions |  |  
|  | FDECSTP | decrement floating-point register stack pointer |  |  
|  | FFREE | free floating-point register |  |  
|  | FINCSTP | increment floating-point register stack pointer |  |  
|  | FINIT | initialize
floating-point unit after checking error conditions |  |  
|  | FLDCW | load floating-point unit control word |  |  
|  | FLDENV | load floating-point unit
environment |  |  
|  | FNCLEX | clear floating-point exception flags without checking for error conditions |  |  
|  | FNINIT | initialize floating-point unit without
checking error conditions |  |  
|  | FNOP | floating-point no operation |  |  
|  | FNSAVE | save floating-point unit state without checking error conditions |  |  
|  | FNSTCW | store
floating-point unit control word without checking error conditions |  |  
|  | FNSTENV | store floating-point unit environment without
checking error conditions |  |  
|  | FNSTSW | store floating-point unit status word without checking error conditions |  |  
|  | FRSTOR | restore floating-point
unit state |  |  
|  | FSAVE | save floating-point unit state after checking error conditions |  |  
|  | FSTCW | store floating-point unit control
word after checking error conditions |  |  
|  | FSTENV | store floating-point unit environment after checking error conditions |  |  
|  | FSTSW | store
floating-point unit status word after checking error conditions |  |  
|  | FWAIT | wait for floating-point unit |  |  
|  | WAIT | wait for
floating-point unit |  | 
 |