Y esta es la forma en la cual el coprocesador matemático se interconectaba en la electrónica de la máquina con el microprocesador principal (el circuito integrado Intel 8259 es un circuito especializado conocido como Controlador Programable de Interrupciones, o PIC del inglés Programmable Interrupt Controller, el circuito integrado Intel 8284 es un generador de pulsos de reloj, mientras que el circuito integrado Intel 8288 es un controlador de bus):
Con la aparición del microprocesador Intel 80286, hizo su aparición el coprocesador 80287, también como un circuito integrado opcional para ser agregado internamente a la computadora en el socket que usualmente estaba reservada para tal opción.
Posteriormente, con la introducción del microprocesador Intel 80386, empezó a ser fabricado el coprocesador matemático 80387, también para acompañar a esta nueva familia de microprocesadores.
Con la fabricación de nuevas familias de microprocesadores en la empresa Intel, las capacidades de los coprocesadores matemáticos fueron integradas en el mismo microprocesador, razón por la cual los coprocesadores matemáticos dejaron de fabricarse y venderse como accesorios opcionales.
Este es el conjunto general de instrucciones de los coprocesadores matemáticos:
Instrucción | Significado | Sólo 8087 |
FABS | Absolute value | |
FADD | Add real | |
FADDP | Add real and pop | |
FBLD | Packed decimal (BCD) load | |
FBSTP | Packed decimal (BCD) store and pop | |
FCHS | Change sign | |
FCLEX/FNLEX | Clear exceptions | |
FCOM | Compare real | |
FCOMP | Compare real and go | |
FCOMPP | Compare real and pop twice | |
FCOS | Cosine of ST(0) | |
FDECSTP | Decrement stack pointer | |
FDISI/FNDISI | Disable interrupts |
√
|
FDIV | Divide real | |
FDIVP | Divide real and pop | |
FDIVR | Divide real reversed | |
FDIVRP | Divide real reversed and pop | |
FENI/FNENI | Enable interrupts |
√
|
FFREE | Free register | |
FIADD | Integer add | |
FICOM | Integer compare | |
FICOMP | Integer compare and pop | |
FIDIV | Integer divide | |
FIDIVR | Integer divide reversed | |
FILD | Integer load | |
FIMUL | Integer multiply | |
FINCSTP | Increment stack pointer | |
FINIT/FNINIT | Initialize processor | |
FIST | Integer store | |
FISTP | Integer store and pop | |
FISUB | Integer subtract | |
FISUBR | Integer subtract reversed | |
FLD | Load real | |
FLDPI | Load Π (Pi) | |
FLDZ | Load +0.0 | |
FLD1 | Load +1.0 | |
FMUL | Multiply real | |
FMULP | Multiply real and pop | |
FNOP | No operation | |
FPATAN | Partial arctangent | |
FPREM | Partial remainder | |
FPTAN | Partial tangent | |
FRNDINT | Round to integer | |
FRSTOR | Restore saved state | |
FSAVE/FNSAVE | Save state | |
FSCALE | Scale | |
FSETPM | Set protected mode | |
FSIN | Sine of ST(0) | |
FSINCOS | Sine and cosine of ST(0) | |
FSQRT | Square root | |
FST dest | Store real at destination | |
FSTCW/FNSTCW | Store control word | |
FSTENV/FNSTENV | Store environment | |
FSTP | Store real and pop | |
FSTSW/FNSTSW | Store status word | |
FSTSW AX | Store status word to AX | |
FNSTSW AX | Store status word to AX | |
FSUB | Subtract real | |
FSUBP | Subtract real and pop | |
FSUBR | Subtract real reversed | |
FSUBRP | Subtract real reversed and pop | |
FTST | Test stack top against +0.0 | |
FUCOM | Unordered compare | |
FUCOMP | Unordered compare | |
FUCOMPP | Unordered compare | |
FWAIT | Wait while 80287 is busy | |
FXAM | Examine stack top | |
FXCH | Exchange registers | |
FXTRACT | Extract exponent and significant | |
FYL2X | Y * log 2 X | |
FYL2XP1 | Y * log 2 (X+1) | |
F2XM1 | 2x-1 |