80C187
80C187 Data Registers
79 78 64 63 0
R0 SIGN EXPONENT SIGNIFICAND
R1
R2
R3
R4
R5
R6
R7
15 0 15 0
CONTROL REGISTER INSTRUCTION POINTER
STATUS REGISTER DATA POINTER
TAG WORD
Figure 2. Register Set
FUNCTIONAL DESCRIPTION
The 80C187 Math Coprocessor provides arithmetic
instructions for a variety of numeric data types. It
also executes numerous built-in transcendental
functions (e.g. tangent, sine, cosine, and log func-
tions). The 80C187 effectively extends the register
and instruction set of the 80C186 CPU for existing
data types and adds several new data types as well.
Figure 2 shows the additional registers visible to pro-
grams in a system that includes the 80C187. Essen-
tially, the 80C187 can be treated as an additional
resource or an extension to the CPU. The 80C186
CPU together with an 80C187 can be used as a sin-
gle unified system.
A 80C186 system that includes the 80C187 is com-
pletely upward compatible with software for the
8086/8087.
The 80C187 interfaces only with the 80C186 CPU.
The interface hardware for the 80C187 is not imple-
mented on the 80C188.
PROGRAMMING INTERFACE
The 80C187 adds to the CPU additional data types,
registers, instructions, and interrupts specifically de-
signed to facilitate high-speed numerics processing.
All new instructions and data types are directly sup-
ported by the assembler and compilers for high-level
languages. The 80C187 also supports the full
80387DX instruction set.
All communication between the CPU and the
80C187 is transparent to applications software. The
CPU automatically controls the 80C187 whenever a
numerics instruction is executed. All physical memo-
ry and virtual memory of the CPU are available for
storage of the instructions and operands of pro-
grams that use the 80C187. All memory addressing
modes are available for addressing numerics oper-
ands.
The end of this data sheet lists by class the instruc-
tions that the 80C187 adds to the instruction set.
NOTE:
The 80C187 Math Coprocessor is also referred to
as a Numeric Processor Extension (NPX) in this
document.
Data Types
Table 1 lists the seven data types that the 80C187
supports and presents the format for each type. Op-
erands are stored in memory with the least signifi-
cant digit at the lowest memory address. Programs
retrieve these values by generating the lowest ad-
dress. For maximum system performance, all oper-
ands should start at even physical-memory address-
es; operands may begin at odd addresses, but will
require extra memory cycles to access the entire op-
erand.
Internally, the 80C187 holds all numbers in the ex-
tended-precision real format. Instructions that load
operands from memory automatically convert oper-
ands represented in memory as 16-, 32-, or 64-bit
integers, 32- or 64-bit floating-point numbers, or 18-
digit packed BCD numbers into extended-precision
real format. Instructions that store operands in mem-
ory perform the inverse type conversion.
3