Microprocesador 8086

Es uno de los primeros microprocesadores de 16 bits diseñados por Intel.

• El 8086 (iAPX 86)

Comenzó el trabajo de desarrollo para este microprocesador.

• 1976

El chip fue introducido al mercado el verano de ese año.

• 1978

encabezaban el equipo de desarrollo de nivel de hardware .2 µm. El chip original midió 33 mm² y el mínimo tamaño fue de 3. Morse y Bruce Ravenel. La arquitectura fue definida por Stephen P.Fue ampliado para soportar el completo procesamiento de 16 bits. Jim McKevitt y John Bayliss diseñadores de la lógica.

 El 8086 fue diseñado para trabajar con lenguajes de alto nivel. . disponiendo de un soporte hardware con el que los programas escritos en dichos lenguajes ocupan un pequeño espacio de código y pueden ejecutarse a gran velocidad.

especialmente desde que IBM los adoptó para la construcción de su computadora personal. el 8086 junto con el 8088 fueron los microprocesadores más empleados dentro de su categoría. En su momento. . Muchos fabricantes de microordenadores utilizaron esta familia microcomputadora para fabricar equipos de tipo profesional.

000 (3 micras) 1 Megabyte 10 veces las prestaciones del 8080 .500 16 Kbyte Manipulación Datos/texto 10 veces las prestaciones del 8008 8080 1/4/74 2 MHz.Fecha de presentación Velocidad de reloj Ancho de bus Número de transistores Memoria direccionable Breve descripció n 4004 15/11/71 108 KHz. 8 MHz. 8 bits 3. 8 bits 6. 16 bits 29. 4 bits 2.000 64 Kbyte 8086 8/6/78 5 MHz.300 (10 micras) 640 byte Primer chip con manipulación aritmética 8008 1/4/72 108 KHz. 10 MHz.

El encapsulado del 8086 está formado por 40 patillas. Los registros del 8086 tienen una misión específica. aunque por contra. es necesario la multiplexación del bus de datos con el de direcciones. simplificando así el Hardware.   El 8086 dispone de instrucciones especiales para el tratamiento de cadenas de caracteres. . aunque varios comparten tareas comunes. por lo que se podría decir que cada uno de ellos tiene su propia personalidad.

en el cual se van almacenando de forma anticipada los códigos de las instrucciones. . denominados „cola de instrucciones‟. es decir. consiguiendo que este aumente su velocidad de trabajo. El 8086 dispone de una arquitectura “pipe line”. que la CPU puede seguir leyendo instrucciones en los tiempos en que el bus no se utiliza. siendo 5 y 8 MHz las frecuencias típicas de funcionamiento.    El 8086 dispone de un conjunto de registros. Las 20 líneas del bus de direcciones sólo permiten direccionar una memoria de 1 Megabyte. El 8086 requiere una señal de reloj exterior.

Pueden ser accedidos como 8 registros de 8 bits. Tiene 4 registros de propósito general de 16 bits.     Basados en el diseño del Intel 8080 y el 8085. Compatible a nivel de lenguaje ensamblador con el 8080. . 4 registros índice de 16 bits (incluyendo al puntero de pila).

y DX. Registros de propósito general AH BH CH DH AL BL CL DL AX (Acumulador) BX (Base) CX (Contador) DX (Datos) . indicando la parte alta o la parte baja del registro correspondiente de 16 bits. H “Hight” y L “Low”. BX. Cada uno de ellos se divide en 2 registros de 8 bits.   AX. CX. de 16 bits.

 Registro AX: Utilizado para operaciones que implican entrada/salida. Registro DX: En algunas operaciones se indica mediante este registro el número de puerto de entrada/salida. Registro BX: El único registro de propósito general que puede ser un índice para direccionamiento indexado. y en las operaciones de multiplicación y división de 16 bits se utiliza junto con el acumulador AX    . y multiplicación y división (estas dos últimas en conjunto con el registro DX). Registro CX: Puede contener un valor para controlar el número de veces que un ciclo se repite.

Registro DI: Destino. SI Source Index (Índice origen) DI BP SP Destination Index (Índice Destino) Base Pointer (Puntero Base) Stack Pointer (Puntero de Pila)  . El SI está asociado con el segmento DS. Registro SI: Fuente. El DI está asociado con el segmento ES. requerido por algunas operaciones con cadenas de caracteres. requerido por algunas operaciones Registros con cadenas deíndices caracteres.

 Registro SP: Está asociado con el segmento SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila.  Registro BP: Facilita la referencia de parámetros dentro de la pila. .

 DF (dirección): Controla la selección de incremento o decremento de los registros SI y DI en las operaciones con cadenas de caracteres (1=decremento automático. desbordamiento): Indica desbordamiento del bit de mayor orden después de una operación aritmética de números con signo (1=existe overflow. 0=no existe overflow).  OF (overflow.Registro de 16 bits. 0=incremento). de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Se controla con las instrucciones STD y .

  .  TF (trampa): Permite la operación del procesador en modo de depuración (paso a paso). IF (interrupción): 1=habilita las interrupciones. 0=deshabilita las interrupciones. 1=negativo). 1=resultado igual a cero). SF (signo): Contiene el signo resultante de una operación aritmética (0=positivo. El estado de la bandera IF se controla con las instrucciones STI y CLI. ZF (cero): Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de cero. La interrupción no enmascarable es la única que no puede ser bloqueada por esta bandera.

OF DF IF TF SF ZF AF PF CF - . PF (paridad): Indica si el número de bits 1.  CF (acarreo): Almacena el contenido del último bit en una operación de desplazamiento o de rotación. 1=número de bits 1 es par). es par (0=número de bits 1 es impar. del byte menos significativos de una operación.

de las que hay cinco tipos diferentes de representación.  3. valores inmediatos. . En total son siete las clases de parámetros que se pueden utilizar y conjuntamente forman los llamados siete modos de direccionamiento. registros internos de la CPU. direcciones de memoria.  2.Los parámetros de una instrucción pueden ser de tres tipos:  1.

SS:[BP] MOV DX. DS:[BX] +[SI] + 300 [BX] +[DI] + desp [BP] +[SI] + desp [BP] +[DI] + desp DS SS SS MOV AX. DS:[DI] MOV DX. [1432] MOV DX. 2604 MOV AX. DS:[SI+40000] Relativo a base [BX] + desp [BP] + desp Directo indexado [DI] + desp [SI] + desp Indexado a base [BX] +[SI] + desp MOV AX. SS:[BP] +[DI] + 300 .MODO Registro Valor Variable Indirecto mediante registro OPERADOR Registro Valor inmediato Offset inmediato [BX] [BP] [DI] [SI] REGISTRO BASE ------DS DS SS DS DS DS SS DS DS DS EJEMPLO MOV AX. BX MOX AX. SS:[BP] +[SI] + 300 MOV AX. DS:[DI+40000] MOV CX. SS:[BP+40000] MOV CX. DS: [BX] MOV DX. DS:[BX] +[DI] + 300 MOV AX. DS:[BX+40000] MOV CX.DS:[SI] MOV CX.

un registro índice y un valor inmediato que se les suma. Modo directo indexado: Usa como registro de desplazamiento el registro SI o el DI. Modo indexado a base: El modo más complejo. El desplazamiento del operando se compone a partir de un registro que hace de base. Modo directo: Se indica la dirección de memoria a la que se quiere acceder. utilizando como desplazamiento el valor de un registro sumado con una cantidad constante. Modo indirecto mediante registro: El valor del desplazamiento del operando no se indica directamente sino que se encuentra en un registro de la CPU.   Modo relativo a base: Consiste en indicar la posición del operando.   . resultado de unir los cuatro anteriores.

.

 Hay determinadas causas que hacen que un programa presente un problema en su ejecución. Ejemplos son el desbordamiento en las operaciones aritméticas. el intento de ejecutar una instrucción con código de operación incorrecto o de direccional una posición de memoria prohibida.Las interrupciones de generan por diversas causas: Excepción de programa. por lo que deberá generarse una interrupción. . de forma que el sistema operativo trate dicha causa. la división por cero.

entonces cada 20 milisegundos el reloj provoca un reset permitiendo la entrada de nuevos procesos. y se llevan a cabo para que ningún proceso que se encuentra en el microprocesador monopolice el uso y espacio de este. . por ejemplo cada 20 milisegundos.     Estas interrupciones se producen cada varios milisegundos.

Excepciones de Hardware. Los controladores de estos dispositivos necesitan interrumpir para indicar las operaciones que realizan. que permita controlar correctamente los dispositivos de E/S.       Una de las funciones principales del kernel o núcleo de cualquier sistema Operativo es mantener una comunicación tal con el microprocesador.La detección de un error de paridad en la memoria o un corte de corriente se avisan mediante la correspondiente interrupción. .

Numero de interrupción Descripción 0 1 2 3 División por cero Ejecución paso a paso Interrupción no enmascarable Punto de ruptura 4 5 6 7 Desbordamiento Volcar pantalla por impresora Código de operación incorrecto Dispositivo no disponible 8 9 Falta doble Desbordamiento de segmento de coprocesador .

Excepción de pila. . Protección General Falta de pagina Reservada Error de punto flotante Chequeo de alineación Chequeo de maquina 19-31 32-255 Reservado por el microprocesador Disponible para interrupciones de software y hardware. Segmento no presente.10 11 12 13 14 15 16 17 18 TTS invalida.

Preguntas:  En que fecha fue introducido al mercado?  Para que tipo de lenguajes fue diseñado el 8086?  Cuales fueron sus antecesores?  Mencione los registros de propósito general. .