03.01.2015 Views

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MATH COPROCESSING<br />

14.3 THE 80C187 MATH COPROCESSOR<br />

The 80C187’s high performance is due to its 80-bit internal architecture. It contains three units:<br />

a Floating Point Unit, a Data Interface and Control Unit and a Bus Control Logic Unit. The foundation<br />

of the Floating Point Unit is an 8-element register file, which can be used either as individually<br />

addressable registers or as a register stack. The register file allows storage of<br />

intermediate results in the 80-bit format. The Floating Point Unit operates under supervision of<br />

the Data Interface and Control Unit. The Bus Control Logic Unit maintains handshaking and<br />

communications with the host microprocessor. The 80C187 has built-in exception handling.<br />

The 80C187 executes code written for the Intel387 DX and Intel387 SX math coprocessors.<br />

The 80C187 conforms to ANSI/IEEE Standard 754-1985.<br />

14.3.1 80C187 Instruction Set<br />

80C187 instructions fall into six functional groups: data transfer, arithmetic, comparison, transcendental,<br />

constant and processor control. Typical 80C187 instructions accept one or two operands<br />

and produce a single result. Operands are usually located in memory or the 80C187 stack.<br />

Some operands are predefined; for example, FSQRT always takes the square root of the number<br />

in the top stack element. Other instructions allow or require the programmer to specify the operand(s)<br />

explicitly along with the instruction mnemonic. Still other instructions accept one explicit<br />

operand and one implicit operand (usually the top stack element).<br />

As with the basic (non-numerics) instruction set, there are two types of operands for coprocessor<br />

instructions, source and destination. Instruction execution does not alter a source operand. Even<br />

when an instruction converts the source operand from one format to another (for example, real to<br />

integer), the coprocessor performs the conversion in a work area to preserve the source operand.<br />

A destination operand differs from a source operand because the 80C187 can alter the register<br />

when it receives the result of the operation. For most destination operands, the coprocessor usually<br />

replaces the destinations with results.<br />

14-2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!