PROGRAMMING
NUMERIC
APPLICATIONS
NOTE
A
CPU
instruction should not attempt to access a memory operand until the 80287 instruc-
tion has completed. For example, the following coding
shows
how
FW AIT can be used to
force the
CPU
instruction
to
wait for the 80287:
F 1ST
FWAIT
MDV
VALUE
Walt
for
FIST
to
complete
AX,VALUE
More information
on
when to code an FW
AIT
instruction
is
given in a following section of this chapter,
"Concurrent Processing with the 80287." .
Instruction Set Reference Information
Table 2-14 later in this chapter lists the operating characteristics of all the 80287 instructions. There
is
one table entry for each instruction mnemonic; the entries are
in
alphabetical order for quick lookup.
Each entry provides the general operand forms accepted by the instruction as
well
as a list of all
exceptions that may be detected during the operation. .
One entry exists for each combination
of
operand types that can be coded with the mnemonic.
Table 2-12 explains the operand identifiers allowed in table 2-14. Following this entry are columns that
provide execution time in clocks, the number of bus transfers run during the operation, the length of
the instruction in bytes, and an ASM286 coding sample.
INSTRUCTION
EXECUTION
TIME
The execution of an 80287 instruction involves three principal activities, each of which may contribute
to
the overall execution time of the instruction:
• 80286 CPU overhead involved in handling the
ESC
instruction opcode and setting
up
the 80287
NPX
Table 2-12.
Key
to
Operand Types
Identifier
Explanation
ST Stack top; the register currently at the
top
of
the stack.
ST(i) A register
in
the stack i (0:::;i:::;7) stack elements from the
top.
ST(1) is the next-on-stack register, ST(2) is below
ST(1), etc.
Short-real
A short real (32 bits) number in memory.
Long-real
A long real (64 bits) number
in
memory.
Temp-real
A temporary real
(80 bits) number
in
memory.
Packed-decimal A packed decimal integer (18 digits,
10 bytes) in memory.
Word-integer
A word binary integer
(16
bits) in memory.
Short-integer A short binary integer
(32
bits) in memory.
Long-integer
A long binary integer (64 bits)
in
rJ1emory.
nn-bytes
A memory area
nn bytes long.
2-21