
6
6-
3
1
P
R
E
L
IM
IN
A
R
Y
F
P
U
In
str
u
cti
o
n
C
lo
ck
C
o
u
n
ts
Table 6-23. M II FPU Instruction Set Summar y
FPU INSTRUCTION
OP CODE
OPERATION
CLOCK COUNT
NOTES
F2XM1 Function Evaluation 2
x-1
FABS Floating Absolute Value
D9 F0
D9 E1
TOS
<------------
2
TOS-1
| TOS |
92 - 108
2
See Note 2
FADD Floating Point Add
Top of Stack
80-bit Register
64-bit Real
32-bit Real
FADDP Floating Point Add, Pop
FIADD Floating Point Integer Add
32-bit integer
16-bit integer
DC [1100 0 n]
D8 [1100 0 n]
DC [mod 000 r/m]
D8 [mod 000 r/m]
DE [1100 0 n]
DA [mod 000 r/m]
DE [mod 000 r/m]
ST(n)
TOS
ST(n)
TOS
<------------
ST(n) + TOS
TOS + ST(n)
TOS + M.DR
TOS + M.SR
ST(n) + TOS; then pop TOS
TOS + M.SI
TOS + M.WI
4 - 7
8 - 12
FCHS Floating Change Sign
D9 E0
TOS <------------ - TOS
2
FCLEX Clear Exceptions
FNCLEX Clear Exceptions
(9B)DB E2
DB E2
Wait then Clear Exceptions
Clear Exceptions
5
3
FCOM Floating Point Compare
80-bit Register
64-bit Real
32-bit Real
FCOMP Floating Point Compare, Pop
80-bit Register
64-bit Real
32-bit Real
FCOMPP Floating Point Compare, Pop
Two Stack Elements
FICOM Floating Point Compare
32-bit integer
16-bit integer
FICOMP Floating Point Compare
32-bit integer
16-bit integer
D8 [1101 0 n]
DC [mod 010 r/m]
D8 [mod 010 r/m]
D8 [1101 1 n]
DC [mod 011 r/m]
D8 [mod 011 r/m]
DE D9
DA [mod 010 r/m]
DE [mod 010 r/m]
DA [mod 011 r/m]
DE [mod 011 r/m]
CC set by TOS - ST(n)
CC set by TOS - M.DR
CC set by TOS - M.SR
CC set by TOS - ST(n); then pop TOS
CC set by TOS - M.DR; then pop TOS
CC set by TOS - M.SR; then pop TOS
CC set by TOS - ST(1); then pop TOS and ST(1)
CC set by TOS - M.WI
CC set by TOS - M.SI
CC set by TOS - M.WI; then pop TOS
CC set by TOS - M.SI; then pop TOS
4
9 - 10
FCOMI Floating Point Compare Real
and Set EFLAGS
80-bit Register
FCOMIP Floating Point Compare Real
and Set EFLAGS, Pop
80-bit Register
FUCOMI Floating Point Unordered
Compare Real and Set EFLAGS
80-bit integer
FUCOMIP Floating Point Unordered
Compare Real and Set EFLAGS
80-bit integer
DB [1111 0 n]
DF [1111 0 n]
DB [1110 1 n]
DF [1110 1 n]
EFLAG set by TOS - ST(n)
EFLAG set by TOS - ST(n); then pop TOS
EFLAG set by TOS - ST(n)
EFLAG set by TOS - ST(n); then pop TOS
4
9 - 10
FCMOVB Floating Point Conditional
Move if Below
DA [1100 0 n]
If (CF=1) ST(0) <—ST(n)
4
FCMOVE Floating Point Conditional
Move if Equal
DA [1100 1 n]
If (ZF=1) ST(0) <—ST(n)
4