x86 architecture
FPU opcodes




D8...DFh  
 
 
ESC 0
D8h xxh
ESC 1
D9h xxh
ESC 2
DAh xxh
ESC 3
DBh xxh
ESC 4
DCh xxh
ESC 5
DDh xxh
ESC 6
DEh xxh
ESC 7
DFh xxh



D8h
00...3Fh
 
 
 
FADD
single real
FMUL
single real
FCOM
single real
FCOMP
single real
FSUB
single real
FSUBR
single real
FDIV
single real
FDIVR
single real
D8h
40...7Fh
 
 
 
FADD
single real
FMUL
single real
FCOM
single real
FCOMP
single real
FSUB
single real
FSUBR
single real
FDIV
single real
FDIVR
single real
D8h
80...BFh
 
 
 
FADD
single real
FMUL
single real
FCOM
single real
FCOMP
single real
FSUB
single real
FSUBR
single real
FDIV
single real
FDIVR
single real
D8h
C0...FFh
 
 
 
FADD
ST,ST(i)
FMUL
ST,ST(i)
FCOM
ST(i)
FCOMP
ST(i)
FSUB
ST,ST(i)
FSUBR
ST,ST(i)
FDIV
ST,ST(i)
FDIVR
ST,ST(i)

D9h
00...3Fh
 
 
 
FLD
single real
FST
single real
FSTP
single real
FLDENV
M14/M28
FLDCW
Mw
FNSTENV
M14/M28
FNSTCW
Mw
D9h
40...7Fh
 
 
 
FLD
single real
FST
single real
FSTP
single real
FLDENV
M14/M28
FLDCW
Mw
FNSTENV
M14/M28
FNSTCW
Mw
D9h
80...BFh
 
 
 
FLD
single real
FST
single real
FSTP
single real
FLDENV
M14/M28
FLDCW
Mw
FNSTENV
M14/M28
FNSTCW
Mw
D9h
C0...C7h
 
 
 
FLD
ST(0)
FLD
ST(1)
FLD
ST(2)
FLD
ST(3)
FLD
ST(4)
FLD
ST(5)
FLD
ST(6)
FLD
ST(7)
D9h
C8...CFh
 
 
 
FXCH
ST(0)
FXCH
ST(1)
FXCH
ST(2)
FXCH
ST(3)
FXCH
ST(4)
FXCH
ST(5)
FXCH
ST(6)
FXCH
ST(7)
D9h
D0...D7h
 
 
 
FNOP  
?
(Cyrix)
D9h
D8...DFh
 
 
 
FSTPNSUE1*
ST(0)
FSTPNSUE1*
ST(1)
FSTPNSUE1*
ST(2)
FSTPNSUE1*
ST(3)
FSTPNSUE1*
ST(4)
FSTPNSUE1*
ST(5)
FSTPNSUE1*
ST(6)
FSTPNSUE1*
ST(7)
D9h
E0...E7h
 
 
 
FCHS FABS  
?
(Cyrix)
FTST FXAM  
FTSTP
(Cyrix)
 
?
(Cyrix)
D9h
E8...EFh
 
 
 
FLD1 FLDL2T FLDL2E FLDPI FLDLG2 FLDLN2 FLDZ
D9h
F0...F7h
 
 
 
F2XM1 FYL2X FPTAN FPATAN FXTRACT  
FPREM1
(80387+)
FDECSTP FINCSTP
D9h
F8...FFh
 
 
 
FPREM FYL2XP1 FSQRT  
FSINCOS
(80387+)
FRNDINT FSCALE  
FSIN
(80387+)
 
FCOS
(80387+)

DAh
00...3Fh
 
 
 
FIADD
short integer
FIMUL
short integer
FICOM
short integer
FICOMP
short integer
FISUB
short integer
FISUBR
short integer
FIDIV
short integer
FIDIVR
short integer
DAh
40...7Fh
 
 
 
FIADD
short integer
FIMUL
short integer
FICOM
short integer
FICOMP
short integer
FISUB
short integer
FISUBR
short integer
FIDIV
short integer
FIDIVR
short integer
DAh
80...BFh
 
 
 
FIADD
short integer
FIMUL
short integer
FICOM
short integer
FICOMP
short integer
FISUB
short integer
FISUBR
short integer
FIDIV
short integer
FIDIVR
short integer
DAh
C0...C7h
 
 
 
 
FCMOVB
ST,ST(0)
(see CPUID)
 
FCMOVB
ST,ST(1)
(see CPUID)
 
FCMOVB
ST,ST(2)
(see CPUID)
 
FCMOVB
ST,ST(3)
(see CPUID)
 
FCMOVB
ST,ST(4)
(see CPUID)
 
FCMOVB
ST,ST(5)
(see CPUID)
 
FCMOVB
ST,ST(6)
(see CPUID)
 
FCMOVB
ST,ST(7)
(see CPUID)
DAh
C8...CFh
 
 
 
 
FCMOVE
ST,ST(0)
(see CPUID)
 
FCMOVE
ST,ST(1)
(see CPUID)
 
FCMOVE
ST,ST(2)
(see CPUID)
 
FCMOVE
ST,ST(3)
(see CPUID)
 
FCMOVE
ST,ST(4)
(see CPUID)
 
FCMOVE
ST,ST(5)
(see CPUID)
 
FCMOVE
ST,ST(6)
(see CPUID)
 
FCMOVE
ST,ST(7)
(see CPUID)
DAh
D0...D7h
 
 
 
 
FCMOVBE
ST,ST(0)
(see CPUID)
 
FCMOVBE
ST,ST(1)
(see CPUID)
 
FCMOVBE
ST,ST(2)
(see CPUID)
 
FCMOVBE
ST,ST(3)
(see CPUID)
 
FCMOVBE
ST,ST(4)
(see CPUID)
 
FCMOVBE
ST,ST(5)
(see CPUID)
 
FCMOVBE
ST,ST(6)
(see CPUID)
 
FCMOVBE
ST,ST(7)
(see CPUID)
DAh
D8...DFh
 
 
 
 
FCMOVU
ST,ST(0)
(see CPUID)
 
FCMOVU
ST,ST(1)
(see CPUID)
 
FCMOVU
ST,ST(2)
(see CPUID)
 
FCMOVU
ST,ST(3)
(see CPUID)
 
FCMOVU
ST,ST(4)
(see CPUID)
 
FCMOVU
ST,ST(5)
(see CPUID)
 
FCMOVU
ST,ST(6)
(see CPUID)
 
FCMOVU
ST,ST(7)
(see CPUID)
DAh
E0...E7h
 
 
 
DAh
E8...EFh
 
 
 
 
FUCOMPP
(80387+)
DAh
F0...F7h
 
 
 
DAh
F8...FFh
 
 
 

DBh
00...3Fh
 
 
 
FILD
short integer
 
FISTTP
short integer
(see CPUID)
FIST
short integer
FISTP
short integer
FLD
extended real
FSTP
extended real
DBh
40...7Fh
 
 
 
FILD
short integer
 
FISTTP
short integer
(see CPUID)
FIST
short integer
FISTP
short integer
FLD
extended real
FSTP
extended real
DBh
80...BFh
 
 
 
FILD
short integer
 
FISTTP
short integer
(see CPUID)
FIST
short integer
FISTP
short integer
FLD
extended real
FSTP
extended real
DBh
C0...C7h
 
 
 
 
FCMOVNB
ST,ST(0)
(see CPUID)
 
FCMOVNB
ST,ST(1)
(see CPUID)
 
FCMOVNB
ST,ST(2)
(see CPUID)
 
FCMOVNB
ST,ST(3)
(see CPUID)
 
FCMOVNB
ST,ST(4)
(see CPUID)
 
FCMOVNB
ST,ST(5)
(see CPUID)
 
FCMOVNB
ST,ST(6)
(see CPUID)
 
FCMOVNB
ST,ST(7)
(see CPUID)
DBh
C8...CFh
 
 
 
 
FCMOVNE
ST,ST(0)
(see CPUID)
 
FCMOVNE
ST,ST(1)
(see CPUID)
 
FCMOVNE
ST,ST(2)
(see CPUID)
 
FCMOVNE
ST,ST(3)
(see CPUID)
 
FCMOVNE
ST,ST(4)
(see CPUID)
 
FCMOVNE
ST,ST(5)
(see CPUID)
 
FCMOVNE
ST,ST(6)
(see CPUID)
 
FCMOVNE
ST,ST(7)
(see CPUID)
DBh
D0...D7h
 
 
 
 
FCMOVNBE
ST,ST(0)
(see CPUID)
 
FCMOVNBE
ST,ST(1)
(see CPUID)
 
FCMOVNBE
ST,ST(2)
(see CPUID)
 
FCMOVNBE
ST,ST(3)
(see CPUID)
 
FCMOVNBE
ST,ST(4)
(see CPUID)
 
FCMOVNBE
ST,ST(5)
(see CPUID)
 
FCMOVNBE
ST,ST(6)
(see CPUID)
 
FCMOVNBE
ST,ST(7)
(see CPUID)
DBh
D8...DFh
 
 
 
 
FCMOVNU
ST,ST(0)
(see CPUID)
 
FCMOVNU
ST,ST(1)
(see CPUID)
 
FCMOVNU
ST,ST(2)
(see CPUID)
 
FCMOVNU
ST,ST(3)
(see CPUID)
 
FCMOVNU
ST,ST(4)
(see CPUID)
 
FCMOVNU
ST,ST(5)
(see CPUID)
 
FCMOVNU
ST,ST(6)
(see CPUID)
 
FCMOVNU
ST,ST(7)
(see CPUID)
DBh
E0...E7h
 
 
 
 
FNENI
(8087)
 
FNDISI
(8087)
FNCLEX FNINIT  
FNSETPM
(80287)
 
FRSTPM
(80287XL)
 
DBh
E8...EFh
 
 
 
 
FUCOMI
ST,ST(0)
(see CPUID)
 
FUCOMI
ST,ST(1)
(see CPUID)
 
FUCOMI
ST,ST(2)
(see CPUID)
 
FUCOMI
ST,ST(3)
(see CPUID)
 
FUCOMI
ST,ST(4)
(see CPUID)
 
FUCOMI
ST,ST(5)
(see CPUID)
 
FUCOMI
ST,ST(6)
(see CPUID)
 
FUCOMI
ST,ST(7)
(see CPUID)
 
 
 
 
FSBP0
(IIT)
 
FSBP3
(IIT)
 
FSBP2
(IIT)
 
FSBP1
(IIT)
 
DBh
F0...F7h
 
 
 
 
FCOMI
ST,ST(0)
(see CPUID)
 
FCOMI
ST,ST(1)
(see CPUID)
 
FCOMI
ST,ST(2)
(see CPUID)
 
FCOMI
ST,ST(3)
(see CPUID)
 
FCOMI
ST,ST(4)
(see CPUID)
 
FCOMI
ST,ST(5)
(see CPUID)
 
FCOMI
ST,ST(6)
(see CPUID)
 
FCOMI
ST,ST(7)
(see CPUID)
 
 
 
 
F4X4
(IIT)
DBh
F8...FFh
 
 
 
(DBh FCh)
FRINT2
(Cyrix)

DCh
00...3Fh
 
 
 
FADD
double real
FMUL
double real
FCOM
double real
FCOMP
double real
FSUB
double real
FSUBR
double real
FDIV
double real
FDIVR
double real
DCh
40...7Fh
 
 
 
FADD
double real
FMUL
double real
FCOM
double real
FCOMP
double real
FSUB
double real
FSUBR
double real
FDIV
double real
FDIVR
double real
DCh
80...BFh
 
 
 
FADD
double real
FMUL
double real
FCOM
double real
FCOMP
double real
FSUB
double real
FSUBR
double real
FDIV
double real
FDIVR
double real
DCh
C0...FFh
 
 
 
FADD
ST(i),ST
FMUL
ST(i),ST
FCOM2*
ST(i)
FCOMP3*
ST(i)
FSUBR
ST(i),ST
FSUB
ST(i),ST
FDIVR
ST(i),ST
FDIV
ST(i),ST

DDh
00...3Fh
 
 
 
FLD
double real
 
FISTTP
long integer
(see CPUID)
FST
double real
FSTP
double real
FRSTOR
M94/M108
FNSAVE
M94/M108
FNSTSW
Mw
DDh
40...7Fh
 
 
 
FLD
double real
 
FISTTP
long integer
(see CPUID)
FST
double real
FSTP
double real
FRSTOR
M94/M108
FNSAVE
M94/M108
FNSTSW
Mw
DDh
80...BFh
 
 
 
FLD
double real
 
FISTTP
long integer
(see CPUID)
FST
double real
FSTP
double real
FRSTOR
M94/M108
FNSAVE
M94/M108
FNSTSW
Mw
DDh
C0...FFh
 
 
 
FFREE
ST(i)
FXCH4*
ST(i)
FST
ST(i)
FSTP
ST(i)
 
FUCOM
ST(i)
(80387+)
 
FUCOMP
ST(i)
(80387+)
(DDh FCh)
FRICHOP
(Cyrix)

DEh
00...3Fh
 
 
 
FIADD
word integer
FIMUL
word integer
FICOM
word integer
FICOMP
word integer
FISUB
word integer
FISUBR
word integer
FIDIV
word integer
FIDIVR
word integer
DEh
40...7Fh
 
 
 
FIADD
word integer
FIMUL
word integer
FICOM
word integer
FICOMP
word integer
FISUB
word integer
FISUBR
word integer
FIDIV
word integer
FIDIVR
word integer
DEh
80...BFh
 
 
 
FIADD
word integer
FIMUL
word integer
FICOM
word integer
FICOMP
word integer
FISUB
word integer
FISUBR
word integer
FIDIV
word integer
FIDIVR
word integer
DEh
C0...C7h
 
 
 
FADDP
ST(0),ST
FADDP
ST(1),ST
FADDP
ST(2),ST
FADDP
ST(3),ST
FADDP
ST(4),ST
FADDP
ST(5),ST
FADDP
ST(6),ST
FADDP
ST(7),ST
DEh
C8...CFh
 
 
 
FMULP
ST(0),ST
FMULP
ST(1),ST
FMULP
ST(2),ST
FMULP
ST(3),ST
FMULP
ST(4),ST
FMULP
ST(5),ST
FMULP
ST(6),ST
FMULP
ST(7),ST
DEh
D0...D7h
 
 
 
FCOMP5*
ST(0)
FCOMP5*
ST(1)
FCOMP5*
ST(2)
FCOMP5*
ST(3)
FCOMP5*
ST(4)
FCOMP5*
ST(5)
FCOMP5*
ST(6)
FCOMP5*
ST(7)
DEh
D8...DFh
 
 
 
 
?
(Cyrix)
FCOMPP  
?
(Cyrix)
 
?
(Cyrix)
 
?
(Cyrix)
 
?
(Cyrix)
DEh
E0...E7h
 
 
 
FSUBRP
ST(0),ST
FSUBRP
ST(1),ST
FSUBRP
ST(2),ST
FSUBRP
ST(3),ST
FSUBRP
ST(4),ST
FSUBRP
ST(5),ST
FSUBRP
ST(6),ST
FSUBRP
ST(7),ST
DEh
E8...EFh
 
 
 
FSUBP
ST(0),ST
FSUBP
ST(1),ST
FSUBP
ST(2),ST
FSUBP
ST(3),ST
FSUBP
ST(4),ST
FSUBP
ST(5),ST
FSUBP
ST(6),ST
FSUBP
ST(7),ST
DEh
F0...F7h
 
 
 
FDIVRP
ST(0),ST
FDIVRP
ST(1),ST
FDIVRP
ST(2),ST
FDIVRP
ST(3),ST
FDIVRP
ST(4),ST
FDIVRP
ST(5),ST
FDIVRP
ST(6),ST
FDIVRP
ST(7),ST
DEh
F8...FFh
 
 
 
FDIVP
ST(0),ST
FDIVP
ST(1),ST
FDIVP
ST(2),ST
FDIVP
ST(3),ST
FDIVP
ST(4),ST
FDIVP
ST(5),ST
FDIVP
ST(6),ST
FDIVP
ST(7),ST

DFh
00...3Fh
 
 
 
FILD
word integer
 
FISTTP
word integer
(see CPUID)
FIST
word integer
FISTP
word integer
FBLD
packed BCD
FILD
long integer
FBSTP
packed BCD
FISTP
long integer
DFh
40...7Fh
 
 
 
FILD
word integer
 
FISTTP
word integer
(see CPUID)
FIST
word integer
FISTP
word integer
FBLD
packed BCD
FILD
long integer
FBSTP
packed BCD
FISTP
long integer
DFh
80...BFh
 
 
 
FILD
word integer
 
FISTTP
word integer
(see CPUID)
FIST
word integer
FISTP
word integer
FBLD
packed BCD
FILD
long integer
FBSTP
packed BCD
FISTP
long integer
DFh
C0...C7h
 
 
 
FFREEP*
ST(0)
FFREEP*
ST(1)
FFREEP*
ST(2)
FFREEP*
ST(3)
FFREEP*
ST(4)
FFREEP*
ST(5)
FFREEP*
ST(6)
FFREEP*
ST(7)
DFh
C8...CFh
 
 
 
FXCH7*
ST(0)
FXCH7*
ST(1)
FXCH7*
ST(2)
FXCH7*
ST(3)
FXCH7*
ST(4)
FXCH7*
ST(5)
FXCH7*
ST(6)
FXCH7*
ST(7)
DFh
D0...D7h
 
 
 
FSTP8*
ST(0)
FSTP8*
ST(1)
FSTP8*
ST(2)
FSTP8*
ST(3)
FSTP8*
ST(4)
FSTP8*
ST(5)
FSTP8*
ST(6)
FSTP8*
ST(7)
DFh
D8...DFh
 
 
 
FSTP9*
ST(0)
FSTP9*
ST(1)
FSTP9*
ST(2)
FSTP9*
ST(3)
FSTP9*
ST(4)
FSTP9*
ST(5)
FSTP9*
ST(6)
FSTP9*
ST(7)
DFh
E0...E7h
 
 
 
 
FNSTSW AX
(80287+)
 
FSTDW AX
(80387SL)
 
FSTSG AX
(80387SL)
DFh
E8...EFh
 
 
 
 
FUCOMIP
ST,ST(0)
(see CPUID)
 
FUCOMIP
ST,ST(1)
(see CPUID)
 
FUCOMIP
ST,ST(2)
(see CPUID)
 
FUCOMIP
ST,ST(3)
(see CPUID)
 
FUCOMIP
ST,ST(4)
(see CPUID)
 
FUCOMIP
ST,ST(5)
(see CPUID)
 
FUCOMIP
ST,ST(6)
(see CPUID)
 
FUCOMIP
ST,ST(7)
(see CPUID)
DFh
F0...F7h
 
 
 
 
FCOMIP
ST,ST(0)
(see CPUID)
 
FCOMIP
ST,ST(1)
(see CPUID)
 
FCOMIP
ST,ST(2)
(see CPUID)
 
FCOMIP
ST,ST(3)
(see CPUID)
 
FCOMIP
ST,ST(4)
(see CPUID)
 
FCOMIP
ST,ST(5)
(see CPUID)
 
FCOMIP
ST,ST(6)
(see CPUID)
 
FCOMIP
ST,ST(7)
(see CPUID)
DFh
F8...FFh
 
 
 
(DFh FCh)
FRINEAR
(Cyrix)



note: The opcodes marked with * are aliases to other opcodes, except FSTPNoStackUnderflowException1* and FFREEPop.



main page

© 1996-2024 by Christian Ludloff. All rights reserved. Use at your own risk.