www.national.com
232
Revision 1.2
Instruction Set (
Continued
)
G
FPU Instruction Summary Issues
All references to TOS and ST(n) refer to stack layout prior to exe-
cution.
Values popped off the stack are discarded.
A pop from the stack increments the top of stack pointer.
A push to the stack decrements the top of stack pointer.
Issues:
1. For FCOS, FSIN, FSINCOS and FPTAN, time shown is for
absolute value of TOS < 3p/4. Add 90 clock counts for argu-
ment reduction if outside this range.
For FCOS, clock count is 141 if TOS <
π
/4 and clock count is
92 if
π
/4 < TOS >
π
/2.
For FSIN, clock count is 81 to 82 if absolute value of TOS <
π
/4.
2. For F2XM1, clock count is 92 if absolute value of TOS < 0.5.
3. For FPATAN, clock count is 97 if ST(1)/TOS <
π
/32.
4. For FYL2XP1, clock count is 170 if TOS is out of range and
regular FYL2X is called.
5. The following opcodes are reserved:
D9D7, D9E2, D9E7, DDFC, DED8, DEDA, DEDC, DEDD,
DEDE, DFFC.
If a reserved opcode is executed, and unpredictable results
may occur (exceptions are not generated).
FSUBRP
Floating Point Subtract Reverse, Pop
DE [1110 0 n]
ST(n) <--- TOS - ST(n); then pop TOS
4 - 9
FISUB
Floating Point Integer Subtract
32-bit Integer
DA [mod 100 r/m]
TOS <--- TOS - M.SI
14 - 29
16-bit Integer
DE [mod 100 r/m]
TOS <--- TOS - M.WI
14 - 27
FISUBR
Floating Point Integer Subtract Reverse
32-bit Integer Reversed
DA [mod 101 r/m]
TOS <--- M.SI - TOS
14 - 29
16-bit Integer Reversed
DE [mod 101 r/m]
TOS <--- M.WI - TOS
14 - 27
FTST
Test Top of Stack
D9 E4
CC set by TOS - 0.0
4
FUCOM
Unordered Compare
DD [1110 0 n]
CC set by TOS - ST(n)
4
FUCOMP
Unordered Compare, Pop
DD [1110 1 n]
CC set by TOS - ST(n); then pop TOS
4
FUCOMPP
Unordered Compare, Pop two
elements
DA E9
CC set by TOS - ST(I); then pop TOS and
ST(1)
4
FWAIT
Wait
9B
Wait for FPU not busy
2
FXAM
Report Class of Operand
D9 E5
CC <--- Class of TOS
4
FXCH
Exchange Register with TOS
D9 [1100 1 n]
TOS <--> ST(n) Exchange
3
FXTRACT
Extract Exponent
D9 F4
temp <--- TOS;
TOS <--- exponent (temp); then
push significant (temp) onto stack
ST(1) <--- ST(1)
×
Log
2
(TOS); then pop TOS
ST(1) <--- ST(1)
×
Log
2
(1+TOS); then pop TOS
11 - 16
FLY2X
Function Eval. y
×
Log2(x)
FLY2XP1
Function Eval. y
×
Log2(x+1)
D9 F1
145 - 154
D9 F9
131 - 133
4
Table 7-29. FPU Instruction Set Summary (Continued)
FPU Instruction
Opcode
Operation
Clock
Count
Issue