FloatingPoint Instructions
The floating point instructions operate on floatingpoint, integer, and binary coded decimal (BCD)
operands.
Data Transfer Instructions (Floating Point)
The data transfer instructions move floatingpoint, integer, and BCD values between memory and
the floating point registers.
Table 313 Data Transfer Instructions (FloatingPoint)





FBLD 
load BCD 


FBSTP 
store BCD and pop 


FCMOVB 
floatingpoint conditional move if
below 


FCMOVBE 
floatingpoint conditional move if below or equal 


FCMOVE 
floatingpoint conditional move if equal 


FCMOVNB 
floatingpoint conditional
move if not below 


FCMOVNBE 
floatingpoint conditional move if not below or equal 


FCMOVNE 
floatingpoint conditional
move if not equal 


FCMOVNU 
floatingpoint conditional move if unordered 


FCMOVU 
floatingpoint conditional move if unordered 


FILD 
load
integer 


FIST 
store integer 


FISTP 
store integer and pop 


FLD 
load floatingpoint value 


FST 
store floatingpoint value 


FSTP 
store floatingpoint value and
pop 


FXCH 
exchange registers 


Basic Arithmetic Instructions (FloatingPoint)
The basic arithmetic instructions perform basic arithmetic operations on floatingpoint and integer operands.
Table 314 Basic Arithmetic Instructions (FloatingPoint)





FABS 
absolute value 


FADD 
add floatingpoint 


FADDP 
add floatingpoint and pop 


FCHS 
change sign 


FDIV 
divide floatingpoint 


FDIVP 
divide floatingpoint and pop 


FDIVR 
divide
floatingpoint reverse 


FDIVRP 
divide floatingpoint 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 floatingpoint 


FMULP 
multiply floatingpoint and pop 


FPREM 
partial remainder 


FPREM1 
IEEE partial remainder 


FRNDINT 
round to integer 


FSCALE 
scale by
power of two 


FSQRT 
square root 


FSUB 
subtract floatingpoint 


FSUBP 
subtract floatingpoint and pop 


FSUBR 
subtract floatingpoint reverse 


FSUBRP 
subtract floatingpoint reverse
and pop 


FXTRACT 
extract exponent and significand 


Comparison Instructions (FloatingPoint)
The floatingpoint comparison instructions operate on floatingpoint or integer operands.
Table 315 Comparison Instructions (FloatingPoint)





FCOM 
compare floatingpoint 


FCOMI 
compare
floatingpoint and set %eflags 


FCOMIP 
compare floatingpoint, set %eflags, and pop 


FCOMP 
compare floatingpoint and pop 


FCOMPP 
compare
floatingpoint and pop twice 


FICOM 
compare integer 


FICOMP 
compare integer and pop 


FTST 
test floatingpoint (compare with 0.0) 


FUCOM 
unordered
compare floatingpoint 


FUCOMI 
unordered compare floatingpoint and set %eflags 


FUCOMIP 
unordered compare floatingpoint, set %eflags, and
pop 


FUCOMP 
unordered compare floatingpoint and pop 


FUCOMPP 
compare floatingpoint and pop twice 


FXAM 
examine floatingpoint 


Transcendental Instructions (FloatingPoint)
The transcendental instructions perform trigonometric and logarithmic operations on floatingpoint operands.
Table 316 Transcendental Instructions (FloatingPoint)





F2XM1 
computes
2^{x}1 


FCOS 
cosine 


FPATAN 
partial arctangent 


FPTAN 
partial tangent 


FSIN 
sine 


FSINCOS 
sine and cosine 


FYL2X 
computes y * log_{2}x 


FYL2XP1 
computes y * log_{2}(x+1) 


Load Constants (FloatingPoint) Instructions
The load constants instructions load common constants, such as π, into the floatingpoint
registers.
Table 317 Load Constants Instructions (FloatingPoint)





FLD1 
load +1.0 


FLDL2E 
load log_{2}e 


FLDL2T 
load log_{2}10 


FLDLG2 
load log_{10}2 


FLDLN2 
load log_{e}2 


FLDPI 
load π 


FLDZ 
load +0.0 


Control Instructions (FloatingPoint)
The floatingpoint control instructions operate on the floatingpoint register stack and save and
restore the floatingpoint state.
Table 318 Control Instructions (FloatingPoint)





FCLEX 
clear floatingpoint exception flags after checking for
error conditions 


FDECSTP 
decrement floatingpoint register stack pointer 


FFREE 
free floatingpoint register 


FINCSTP 
increment floatingpoint register stack pointer 


FINIT 
initialize
floatingpoint unit after checking error conditions 


FLDCW 
load floatingpoint unit control word 


FLDENV 
load floatingpoint unit
environment 


FNCLEX 
clear floatingpoint exception flags without checking for error conditions 


FNINIT 
initialize floatingpoint unit without
checking error conditions 


FNOP 
floatingpoint no operation 


FNSAVE 
save floatingpoint unit state without checking error conditions 


FNSTCW 
store
floatingpoint unit control word without checking error conditions 


FNSTENV 
store floatingpoint unit environment without
checking error conditions 


FNSTSW 
store floatingpoint unit status word without checking error conditions 


FRSTOR 
restore floatingpoint
unit state 


FSAVE 
save floatingpoint unit state after checking error conditions 


FSTCW 
store floatingpoint unit control
word after checking error conditions 


FSTENV 
store floatingpoint unit environment after checking error conditions 


FSTSW 
store
floatingpoint unit status word after checking error conditions 


FWAIT 
wait for floatingpoint unit 


WAIT 
wait for
floatingpoint unit 

