Intel 80286 Key to Operand Types, Programming Numeric Applications, Instruction Execution Time

Models: 80287 80286

1 515
Download 515 pages 45.04 Kb
Page 413
Image 413

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 FWAIT can be used to force the CPU instruction to wait for the 80287:

F 1ST

VALUE

FWAIT

Walt for FIST to complete

MDV

AX,VALUE

More information on when to code an FWAIT 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

Identifier

ST

ST(i)

Short-real

Long-real

Temp-real

Packed-decimal

Word-integer

Short-integer

Long-integer

nn-bytes

Table 2-12. Key to Operand Types

Explanation

Stack top; the register currently at the top of the stack.

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.

A short real (32 bits) number in memory.

A long real (64 bits) number in memory.

A temporary real (80 bits) number in memory.

A packed decimal integer (18 digits, 10 bytes) in memory.

A word binary integer (16 bits) in memory.

A short binary integer (32 bits) in memory.

A long binary integer (64 bits) in rJ1emory.

A memory area nn bytes long.

2-21

Page 413
Image 413
Intel 80286, 80287 manual Key to Operand Types, Programming Numeric Applications, Instruction Execution Time