Nothing Special   »   [go: up one dir, main page]

Microprocesador 8086 Informe

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

ESCUELA POLITCNICA DEL EJRCITO CARRERA DE INGENIERA MECATRNICA

MICROPROCESADORES Y MICROCONTROLADORES CONSULTA

TEMA: MICROPROCESADOR 8086

Alex David Velarde Labanda

Sangolqu, 26 de Septiembre de 2011

TEMA: MICROPROCESADOR 8086


INTRODUCCIN Los procesadores de 16 bits fueron una nueva generacin de microprocesadores desarrollados para reemplazar o completar a las microcomputadoras de 8 bits de los aos setenta, que fueron las que comenzaron la revolucin de las microcomputadoras. El 8086 fue diseado para trabajar con lenguajes de alto nivel, disponiendo de un soporte hardware con el que los programas escritos en dichos lenguajes ocupan un pequeo espacio de cdigo y pueden ejecutarse a gran velocidad. Esta concepcin, orientada al uso de compiladores, se materializa en un conjunto de facilidades y recursos, y en unas instrucciones entre las que cabe destacar las que permiten efectuar operaciones aritmticas de multiplicar y dividir, con y sin signo; las que manejan cadenas de caracteres, etc. En su momento, el 8086 junto con el 8088 fueron los microprocesadores ms empleados dentro de su categora, especialmente desde que IBM los adopt para la construccin de su computadora personal. Muchos fabricantes de microordenadores utilizaron esta familia microcomputadora para fabricar equipos de tipo profesional. Hoy en da, la utilizacin del 8086 es ms reducida, quedando principalmente orientado a la enseanza, como base de los microprocesadores de la ltima generacin. CARACTERSTICAS El 8086 dispone de instrucciones especiales para el tratamiento de cadenas de caracteres. Los registros del 8086 tienen una misin especfica, por lo que se podra decir que cada uno de ellos tiene su propia personalidad, aunque varios comparten tareas comunes. El encapsulado del 8086 est formado por 40 patillas, simplificando as el hardware, aunque por contra, es necesario la multiplexacin del bus de datos con el de direcciones. El 8086 dispone de un conjunto de registros, denominados cola de instrucciones, en el cual se van almacenando de forma anticipada los cdigos de las instrucciones, consiguiendo que este aumente su velocidad de trabajo. Las 20 lneas del bus de direcciones slo permiten direccionar una memoria de 1 Megabyte.

El 8086 requiere una seal de reloj exterior, siendo 5 y 8 Mhz las frecuencias tpicas de funcionamiento.

El 8086 dispone de una arquitectura pipe line, es decir, que la CPU puede seguir leyendo instrucciones en los tiempos en que el bus no se utiliza.

ARQUITECTURA INTERNA Este microprocesador esta dividido en dos sub-procesadores. Por un lado est la Unidad de Ejecucin (EU) encargada de ejecutar las instrucciones, la cual posee una ALU (unidad aritmtico-lgica) con un registro de estado con varios flags asociados y un conjunto de registros de trabajo, y por otro est la Unidad de Interfaz de bus (BIU) encargada de la bsqueda de las instrucciones, ubicarlas en la cola de instrucciones antes de su ejecucin y facilitar el direccionamiento de la memoria, es decir, encargada de acceder a datos e instrucciones del mundo exterior. El 8086 contiene 14 registros de 16 bits, de los cuales, unos pertenecen a la EU, que normalmente se suelen usar para direccionamiento, y otros pertenecen a la BIU.

Los registros del 8086 podran clasificarse en tres grupos de acuerdo con sus funciones. El grupo de datos, que es esencialmente el conjunto de registros aritmticos; el grupo de

apuntadores, que incluye los registros base e ndices y tambin el contador de programa y el puntero de pila; y el grupo de registros de segmento, que es un conjunto de registros base de propsito especial. El grupo de registros de datos o registros generales son registros de 16 bits, pudindose usar cada uno de ellos como dos registros de 8 bits. Aun siendo registros de uso general tiene asignadas unas operaciones especficas. As, por ejemplo, el AX es el acumulador de 16 bits y usndolo a veces provoca que el ensamblador produzca un lenguaje mquina codificado en muy pocos octetos. Se emplea en multiplicaciones, divisiones, entradas/salidas, etc.; el registro BX, se utiliza como registro base para el direccionamiento de memoria; el registro CX, se utiliza como contador y almacenaje de datos y el registro DX, se utiliza para almacenar datos de 16 bits. Puede pensarse que es una extensin del registro AX para multiplicaciones y divisiones con 16 bits. Otra de sus funciones especficas es para almacenar la direccin de E/S durante algunas operaciones de E/S. El grupo de apuntadores, es decir, punteros e ndices est formado por los registros IP, SP, BP, SI, DI. Los registros puntero son dos: IP como registro puntero de instrucciones conocido principalmente como contador de programa. Este contiene un valor de 16 bits que es un desplazamiento sobre la direccin del registro CS (segmento de cdigo) que ms adelante detallaremos. SP como registro de pila. El registro BP acta como base de la direccin de la pila.

Los registros puntero de instrucciones (IP ) y puntero de pila ( SP ) se encargan del control de flujo del programa. Los registros SI y DI actan como ndices asociados al registro DS (segmento de datos). ESTRUCTURA DE MEMORIA DE SEGMENTACIN El 8086 usa un esquema llamado segmentacin, para acceder correctamente a un megabyte completo de memoria, con referencias de direcciones de slo 16 bits, y todo esto gracias a la utilizacin de registros de segmento que dividen esencialmente el espacio de memoria en segmentos de 64K de longitud, que pueden estar separados entre s, adyacentes o superpuestos, y que comienzan en una direccin divisible por 16. La forma en que se completan los 20 bits del bus de direcciones, disponiendo en la CPU, solamente, registros de 16 bits, se consigue de la siguiente manera:

Se parte del contenido de uno de los registros de segmento, que actan como base. Despus, se multiplica por 16 el contenido del registro de segmento, lo que, en binario, significa aadirle 4 ceros a la derecha y convertirlo en una magnitud de 20 bits. Finalmente, se suma un desplazamiento al resultado de la multiplicacin anterior. Abreviadamente, la frmula para calcular una direccin de memoria es: Direccin Fsica = 16 * ( registro de segmento ) + desplazamiento.

De esta manera, sobre la direccin base que apunta el registro de segmento multiplicado por 16, existe un margen de 64K bytes, controlado por un desplazamiento de 16 bits. SEAL DE RELOJ Al igual que los mas recientes microprocesadores, el 8086 requiere una nica seal de reloj. Este microprocesador no genera su propia seal de reloj siendo necesaria la utilizacin del generador de reloj 8284, que usa un cristal oscilador para determinar la frecuencia de seal. Intercambiando este cristal, se puede seleccionar diferentes velocidades de operacin. Intel tiene una versin de 5 MHz y otra de 8 Mhz para el 8086. Estas versiones representan las velocidades ms altas, recomendables para este chip.

Para un rendimiento ptimo, el 8086 requiere una seal de reloj que se mantenga a tensin alta una tercera parte del tiempo total de ciclo. Esto significa que el reloj est activo una tercera parte del tiempo y desactivado las dos terceras partes del tiempo. MODO DE DIRECCIONAMIENTO La forma en que se especifica un operando se denomina modo de direccionamiento, es decir, es un conjunto de reglas que especifican la localizacin (posicin) de un dato usado durante la ejecucin de una instruccin. El 8086 tiene 25 modos de direccionamiento o reglas para localizar un operando de una instruccin. Los modos de direccionamiento ms frecuentes son los que calculan la direccin del operando mediante la suma de la direccin base de un registro segmento, multiplicado por 16 y el valor de un desplazamiento. La gran variedad de direccionamientos proviene de las muchas formas en que se puede determinar el desplazamiento. En general, los modos de direccionamiento del 8086 se dividen en dos grandes grupos: Modos de direccionamiento de la memoria de programa. Modos de direccionamiento de la memoria de datos.

FORMATO DE LAS INSTRUCCIONES A semejanza con otros microprocesadores, las instrucciones del 8086 pueden clasificarse en tres grupos, segn la definicin que se utilice para los operandos: Sin operando. Por ejemplo, CLI, STI, DAA, WAIT, etc. Con un slo operando. Por ejemplo, JMP, PUSH, CALL, etc. Con dos operandos. Por ejemplo, MOV.

Las instrucciones varan de 1 a 6 bytes en longitud. Los desplazamientos y los datos inmediatos pueden tener 8 16 bits dependiendo de la instruccin. El cdigo de operacin y el modo de direccionamiento se encuentran en los primeros uno o dos bytes de la instruccin. Estos pueden ir seguidos por: Ningn byte adicional. Una EA de 2 bytes (slo para direccionamiento directo). Un desplazamiento de 1 2 bytes.

Un operando inmediato de 1 2 bytes. Un desplazamiento de 1 2 bytes seguidos de un operando inmediato de 1 2 bytes. Un desplazamiento de 2 bytes y una direccin de un segmento de 2 bytes (slo para direccionamientos fuera del segmento).

A continuacin se muestra la combinacin de bits para asignacin de registros (de segmento o cualquier otro tipo):

Como se puede apreciar en estas tablas se podra producir ambigedad al representar, por ejemplo, 00 para indicar el registro de segmento ES, 000 para indicar AX y a su byte de menor orden AL, pero esto no sucede ya que el cdigo de operacin implica el tipo de registro que indica. DIAGRAMA DE CONEXIONADO

SEALES Y TERMINALES El 8086 puede configurarse de dos formas distintas: el modo mximo y el modo mnimo. El modo queda determinado al colocar el terminal MN/MX a tierra o a la tensin de alimentacin. En modo mnimo no admite la multitarea, mientras que en modo mximo es capaz de soportar un bus local, para ampliar directamente el 8086, y un bus de sistema MULTIBUS, que permite configuraciones con varios procesadores, ms concretamente el 8086 debe estar en modo mximo si quiere trabajar en colaboracin con el procesador de datos 8087 y el procesador de entrada / salida 8089. En el modo mximo, el 8086 depende de otros chips adicionales como es el controlador de bus 8288 para generar el conjunto completo de seales de control de bus. El modo mnimo permite al 8086 trabajar de una forma ms autnoma. El 8086 puede configurarse de dos formas distintas: el modo mximo y el modo mnimo. El modo queda determinado al colocar el terminal MN/MX a tierra o a la tensin de alimentacin. En modo mnimo no admite la multitarea, mientras que en modo mximo es capaz de soportar un bus local, para ampliar directamente el 8086, y un bus de sistema MULTIBUS, que permite configuraciones con varios procesadores, ms concretamente el 8086 debe estar en modo mximo si quiere trabajar en colaboracin con el procesador de datos 8087 y el procesador de entrada / salida 8089. En el modo mximo, el 8086 depende de otros chips adicionales como es el controlador de bus 8288 para generar el conjunto completo de seales de control de bus. El modo mnimo permite al 8086 trabajar de una forma ms autnoma. La figura siguiente muestra un esquema de ambos modos:

En ambos modos, las seales del 8086 se pueden agrupar de la siguiente manera: Alimentacin Reloj Control y estado Direcciones Datos

Hay tres terminales para la alimentacin: tierra (GND) en los terminales 1 y 20, y una tensin de entrada de 5 voltios (Vcc) en el terminal 40. El terminal de tierra es tierra a la vez para la alimentacin y para las seales. Cuenta con una entrada de la seal de reloj (CLK) en el terminal 19. El 8086 cuenta con 20 bits de direccin. Los 4 bits ms significativos de la direccin comparten terminales con algunas de las seales de estado. Los 16 bits menos significativos son multiplexados tanto para las direcciones como para los datos, es decir, en ciertos instantes tales terminales conducen parte de una direccin, y en otros son transmitidos los datos. Estos terminales pueden llevar informacin de una direccin e informacin sobre el estado y los datos. El latch 8282 est diseado para seleccionar la informacin sobre la direccin de dichos terminales en el instante preciso e ignorar lo referente al estado y los datos. Otros terminales son: El terminal MN / MX controla si el procesador est en modo mnimo o mximo, conectndolo a tierra o a una tensin de 5 voltios. Del S0 al S7 son seales de estado en los terminales 26, 27, 28, 38, 37, 36, 35, 34 respectivamente. En ciertos momentos son salidas del procesador. En otros momentos aparecen otras seales distintas en los mismos terminales. Mirando el estado pueden decirse cosas tales como el tipo de acceso al bus (lectura o escritura, memoria o E/S), el registro de segmento en uso y el estado del sistema de interrupciones. S0, S1 y S2 son slo accesibles en modo mximo, en cuyo caso se introducen en los chips controladores de bus 8288. Estas seales decodifican el estado del procesador, de acuerdo con la siguiente tabla:

La seal RD es una seal de estado generada por el procesador sobre el terminal 32. Indica un ciclo de lectura de memoria o entradas y salidas. La seal READY que se encuentra en el terminal 22, es una entrada de los dispositivos externos (memoria o controladores E/S) y su funcin es adaptar las velocidades de memoria y perifricos a la CPU. Esta seal pasa a travs del generador de pulsos 8284 para sincronizarse con la seal de reloj. La seal READY trabaja de la siguiente forma: Si se ha seleccionado un dispositivo externo para lectura o escritura y todava no est preparado para completar la transferencia de datos, pone a cero la lnea de seal READY. El procesador ve esta seal y aade ciclos extras de << espera >> hasta que dicha seal se pone a su nivel normal, es decir, a 1 indicando que el dispositivo externo est preparado para realizar la transferencia. Acabada la transferencia las actividades del procesador continan normalmente. La seal RESET que se encuentra en el terminal 21, es otra de las entradas que tambin pasa por el generador de pulsos 8284 para sincronizarse con la seal de reloj. Los terminales NMI (Non-Maskable Interrup : Interrupcin no enmascarable), terminal 17, e INTR (INTerrupt Request : peticin de interrupcin), terminal 18, son parte del sistema de interrupciones del 8086. Un pulso en el terminal NMI provoca una interrupcin especial, llamada interrupcin tipo 2. Una seal en el terminal INTR causar una respuesta de interrupcin de tipo general. El trmino <<no enmascarables>> se refiere al hecho de que la interrupcin generada por el terminal NMI no se puede activar o desactivar va un software a la CPU. Las interrupciones generales por INTR pueden desactivarse va software. La seal M / IO (terminal 28) informa al sistema cuando el microprocesador requiere acceso a la memoria o al espacio de E/S, es decir, indica la realizacin de una operacin sobre memoria sobre entrada / salida. El terminal WR de seleccin de escritura (terminal 29) indica que los datos estn disponibles en las lneas de datos, es decir, se trata de la seal que indica un ciclo de escritura de la CPU. El terminal DT / R (terminal 27) cuya misin es la recepcin y transmisin de datos, es decir, para controlar la transferencia de datos, el 8086 precisa de la colaboracin del circuito auxiliar 8286 (8287). Este se gobierna por la seal DT / R, que indica el sentido del movimiento de la informacin (transmisin o recepcin). DEN (terminal 26) igual que la anterior sirve para controlar la transferencia de datos y ms concretamente confirma la validacin de los datos.

ALE (terminal 25). Esta seal activa el latch 8282 cuando viene una direccin por las lneas AD0-AD15, es decir, sirve para controlar el multiplexado de datos y direcciones. INTA (terminal 24). La funcin de esta seal es el reconocimiento de interrupciones. (Se hablar ms en el apartado de interrupciones). Las seales HOLD y HLDA son parte del propio sistema de control de bus del 8086. HOLD (terminal 31) indica la peticin del bus por un perifrico exterior. Cuando otro procesador o un aparato como un controlador DMA quiere acceder al control del bus, manda una seal al 8086 a travs de la lnea HOLD. Cuando est preparado para hacerlo, el 8086 pone sus lneas de datos / direcciones y la mayora de las lneas de control en el estado de alta impedancia. Al mismo tiempo, enva la seal HLDA (terminal 30) para indicar que el bus est libre. El otro aparato puede usar ahora el bus. Cuando finaliza con el bus, enva una seal a la lnea HOLD. Inmediatamente despus de recibir la seal, el 8086 reanuda el uso del bus. Las seales RQ / GT1 y RQ / GT0 (terminales 30 y 31 respectivamente) se corresponden con las seales HOLD y HLDA del modo mnimo. Se utiliza para liberar el bus y reconocer la accin. Las seales QS1 y QS0 (terminales 24 y 25 respectivamente) son seales de estado de las colas de instrucciones. Slo son utilizables en modo mximo. El procesador de datos 8087 utiliza estas seales para coordinarse con el 8086. La seal TEST (terminal 23) se utiliza para enlazar el 8086 con un procesador paralelo, sincronizando el procesador principal con los otros.

NETGRAFA
LOPEZ J. Arquitectura del Microprocesador 8086, Madrid. Disponible en: http://atc2.aut.uah.es/~avicente/asignaturas/ects/pdf/ects_t2.pdf Microprocesador 8086, Madrid. Disponible en: http://www.fing.edu.uy/inco/cursos/arqsis2/teorico/notas-8086.pdf El Microprocesador 8086. Disponible en: http://antiguo.itson.mx/die/mdomitsu/bibliotecaDigital/Programacion_Lenguaje_Ensamblador 8086/Tema02.pdf Ms informacin en: http://computacion.cs.cinvestav.mx/~ameneses/pub/tesis/ltesis/node14.html

También podría gustarte