Você está na página 1de 66

1

M. en C. Jos Luis Bravo Len

3
INTRODUCCIN
A partir de la invencin del transistor se han logrado grandes avances en el campo de la electrnica digital, especialmente en lo que a computadoras se refiere. El desarrollo de nuevos dispositivos ha contribuido a su rpido crecimiento. Los fabricantes de semiconductores, siguiendo una linea de desarrollo, generan los componentes y las compaas manufactureras se encargan de la utilizacin de los mismos para desarrollar sistemas cada vez ms sofisticados y econmicamente accesibles. A travs del tiempo, el costo de los componentes para un sistema digital tpico ha disminuido debido al desarrollo de nuevos y ms poderosos dispositivos semiconductores. Asimismo, el costo de desarrollo de un sistema digital tambin ha ido en disminucin. Como al aumentar el nmero de componentes por circuito integrado, el costo de desarrollo para cada uno de stos se incrementa; los fabricantes de semiconductores han tenido que optar por la produccin en volumen a fin de amortizar el costo de desarrollo y as conseguir un mejor costo por elemento activo. Un elemento activo en los aos 50s se integraba de 1 2 transistores, varias resistencias, 1 2 capacitores y 1 circuito impreso para ensamblar todas las partes del circuito. Los primeros circuitos integrados se componan hasta de 10 elementos de este tipo. Posteriormente la integracin a mediana escala agrup hasta 100 elementos por integrado y la integracin a larga escala lleg a componerse de hasta 1000 elementos por circuito. A finales de los 60s, la industria de semiconductores aparentemente haba alcanzado su lmite, ya que de continuar incrementndose el nmero de elementos activos por circuito, el alto grado de especializacin requerido podra impedir la produccin en volumen y los beneficios de la integracin a larga escala podra ya no tener significado. En esa poca y bajo ese contexto, la integracin a larga escala (LSI) slo pareca factible en la fabricacin de memorias RAM, y en calculadoras integradas en un solo circuito. Sin embargo, desde otro punto de vista al nivel de integracin de aproximadamente 1,000 elementos por circuito, todas las funciones de una

4
microcomputadora podran ser construidas en un slo chip y la aplicacin ciertamente tendra el potencial de volumen requerido. As que los diseadores de la microcomputadora encapsulada en un slo circuito previeron las nuevas y variadas aplicaciones que esta podra tener, por lo que fue construida para ser programable durante su fabricacin y posible de interconectar con un circuito de memoria ROM para almacenar instrucciones y otro de memoria RAM para almacenamiento de datos. As aparece la primer microcomputadora, a partir de un diseo solicitado para una calculadora de mesa cuyo diseo original requera de al menos 12 circuitos integrados, para lo cual se propuso el desarrollo de un dispositivo lgico de propsito general integrado en un slo circuito que debera leer las instrucciones de operacin desde una memoria de silicio. Como un conjunto de cuatro circuitos integrados, esta unidad central de procesamiento no nicamente cubra las necesidades para la calculadora requerida sino que podra ser empleada en una gran variedad de aplicaciones sin necesidad de ser rediseada. A diferencia de las pastillas previas de calculadora, el conjunto de circuitos estaba planificado para comportarse como una computadora de uso general que podra programarse durante su fabricacin para actuar como calculadora. Este conjunto de circuitos comienza a ser comercializado con la denominacin MCS-4 (MICROCOMPUTER SET 4) y considerado como un controlador programable para sustitucin lgica. La serie MCS-4 inicialmente contena 4 circuitos integrados pMOS: la pastilla 4001 de memoria de slo lectura, la pastilla 4002 de memoria de lectura y escritura, la pastilla 4003 de Interfase de E/S y la pastilla 4004 que integra la CPU. El MCS-4 fue rpidamente seguido por otras series de microprocesadores de varios fabricantes. Cuando el volumen de produccin se increment, los precios de los microprocesadores cayeron sustancialmente, lo que estimul la demanda de estos nuevos componentes de diseo, que eran mucho ms potentes y flexibles que cualquier otro previamente disponible a precios comparables. Posterior al 4004, en 1972, Intel introdujo el primer microprocesador de 8 bits; el 8008 que utilizaba la misma tecnologa pMOS que el 4004. El 8008 fue superado por el microprocesador 8080 ms rpido y potente, ste empleaba la tecnologa nMOS y fue comercializado en 1973.

5
El 8080 lleg a ser uno de los microprocesadores de 8 bits ms usados e imitados. Otros procesadores de 8 bits, tambin populares, fueron el 6800 de Motorola disponible en 1974, y el Z80 de Zilog, compatible con el 8080 de Intel, y asimismo, en 1975 MOS Technology introduce el 6502. En 1974 Texas Instruments introduce la serie de microcomputadoras en un integrado, el TMS 1000. Circuito de tecnologa pMOS que contiene una CPU de 4 bits, una memoria ROM de mscara programable de 1k por 8 bits para almacenamiento de programas, una memoria para lectura y escritura de datos y varios puertos de E/S para comunicacin con dispositivos de E/S. En 1978 introduce la serie 9900 con tecnologa nMOS la cual consta del microprocesador TMS 9980 con 8 lneas de datos; el TMS 9985 con canal de datos de 8 bits y una memoria interna de 256 bytes y su procesador TMS 9900 con su canal de datos de 16 bits; todos diseados con la arquitectura memoria a memoria, excluyendo registros de trabajo internos.

6 El Primer Microprocesador (4004)


El juego de circuitos MCS 4004 fue la primer microcomputadora disponible comercialmente, introducida en 1971 por Intel. En su tiempo fue una opcin bastante viable para muchas aplicaciones en las cuales se necesitaba una combinacin de pequeo espacio y bajo costo con un algoritmo relativamente simple para ser desarrollado por medio de software. Los circuitos de la microcomputadora salieron empacados en integrados de 16 pines tipo tipo DIP DIPexcepto excepto para interfase para lala interfase de E/S la cual tena 28 pines. de E/S la cual tena 28 pines. Siendo la primera microcomputadora disponible en el mercado, el microprocesador 4004 careca de algunas caractersticas que se introdujeron en microcomputadoras posteriores como es el caso del empleo de interrupciones. Su rea de Pila estaba limitada a 4 registros, uno reservado para el Contador de Programa, y los dems para el manejo de subrutinas. En comparacin con los microprocesadores que aparecieron posteriormente, el juego de instrucciones que manej el 4004 result bastante simple y el direccionamiento de operandos algo ms complejo.

Registros Internos Tal como es mostrado en la figura 1.1, el microprocesador 4004 consta de un acumulador y 16 registros de trabajo de 4 bits cada uno; una bandera de acarreo y una bandera de prueba; el rea de pila est formada por cuatro registros de 12 bits, uno de los cuales contiene el Contador de Programa y los tres restantes reservados para el almacenamiento de direcciones de retorno para el manejo de subrutinas. Esta organizacin de registros en el rea de pila permite el anidamiento de hasta tres niveles de subrutinas. Por ltimo, incluye un apuntador de 11 bits empleado para accesar circuitos de memoria RAM y puertos de E/S.

Fig. 1.1 REGISTROS INTERNOS DEL MICROPROCESADOR 4004

8
Circuitos de Memoria
ROM 4001 La memoria ROM 4001 est formada por un arreglo de 256 x 8 celdas de memoria y un puerto de 4 bits de entradasalida. Al momento en que la memoria ROM es programada, tambin se programa la direccin de pgina del circuito que consta de 4 bits y permite seleccionar hasta 16 circuitos de este tipo, tambien se programa la funcion de cada linea del puerto como entrada o salida. La figura 1.2 muestra el arreglo de celdas de memoria, ademas del puerto de 4 bits empledos como entrada salida.

FIG.1.2 MEMORIA ROM Y PUERTO DE ENTRADA/SALIDA DE 4 BITS

9
RAM 4002 La memoria RAM est compuesta por cuatro registros de 16 caracteres y 4 caracteres de estado por registro, todos de 4 bits. La diferencia entre los caracteres est determinada en la forma en que son direccionados por las instrucciones. Este circuito tambin incluye un puerto de salida de 4 bits.

La figura 1.3 muestra los registros y el puerto de salida de 4 bits.

FIG. 1.3 MEMORIA RAM Y PUERTO DE SALIDA 4002

10
El apuntador para la seleccin de caracter de memoria, de estado, puerto de salida en RAM y un puerto de entrada/salida en ROM se muestra en la figura 1.4.

FIG 1.4 APUNTADOR DE RAM Y PUERTOS DE E/S

Como se muestra en la figura 1.5, el microprocesador 4004 permite conectar hasta 16 circuitos RAM 4002 sin necesidad de circuitera adicional para decodificacin de pgina. El microprocesador 4004 transfiere datos y direcciones por medio del canal de datos de 4 bits a la memoria RAM, a la memoria ROM y a los puertos de entrada salida.

11
La lnea CM-ROM se conecta a todos los circuitos de memoria ROM para distinguirla de los circuitos RAM. El nmero del circuito para cada memoria ROM est programado dentro del mismo desde el momento en que es fabricado, por lo que no requiere conexiones adicionales para seleccin de pgina.

FIG. 1.5 EL MICROPROCESADOR 4004 Y SUS CIRCUITOS DE MEMORIA

12
Los circuitos de memoria RAM son seleccionados en grupos de cuatro por medio de las lneas CM RAM0, CM RAM1, CM RAM2 y CM RAM3 activadas a travs de una instruccin de software previa carga del acumulador con la direccin correspondiente segn la tabla siguiente:

DIRECCION 0000 0001 0010 0100

BANCO SELECCIONADO 0, 1, 2, 3 4, 5, 6, 7 8, 9, 10, 11 12, 13, 14, 15

Posterior al 4004, la generalidad de los fabricantes de semiconductores tom el modelo general de organizacin lgica para el diseo de sus microprocesadores, constituida por tres unidades fundamentales: La Unidad Central de Proceso conocida simplemente como CPU, la Unidad de Entrada/Salida y la Unidad de Memoria.

13 Organizacin Bsica de un Sistema de Cmputo


Los microprocesadores se utilizan junto con otros componentes para el diseo de computadoras; el microprocesador lleva a cabo las funciones de procesamiento, mientras que los otros componentes realizan las funciones de almacenamiento de informacin y la entrada y salida de datos. Todas las computadoras de uso general tienen bsicamente la misma organizacin logica, consistente de cinco unidades fundamentales, estas se muestran en la figura siguiente y son detalladas a continuacin.

ORGANIZACIN BASICA DE UNA COMPUTADORA

Unidad Central de Proceso Est compuesta por la Unidad de Control y la Unidad Aritmtica y Lgica. La funcin de la Unidad Aritmtica y Lgica, como su nombre lo dice, es la de realizar operaciones aritmticas y lgicas con los datos suministrados por las

14
dems unidades del sistema. Entre las funciones tipicas pueden citarse como aritmticas la suma y la resta y como logicas la funcion Y y la funcion O. Por su parte, la Unidad de Control da secuencia al funcionamiento de todo el sistema. En particular, debe generar y utilizar adecuadamente todas las seales de control necesarias para sincronizar las operaciones y las transferencias de datos dentro y fuera de la Unidad Aritmtica y Lgica. Una de las funciones bsicas de la Unidad de Control es la bsqueda, decodificacin y ejecucin de las instrucciones almacenadas en la memoria del sistema. La Unidad de Control esta fisicamente asociada a la Unidad Aritmtica y Lgica formando lo que se conoce como una Unidad Central de Procesamiento o CPU Un microprocesador es una unidad central de proceso en un slo circuito integrado.

Registros Un registro es un conjunto de celdas similares a las celdas de memoria y pueden almacenar un dato o una instruccin dependiendo del registro de que se trate. La Unidad Central de Proceso cuenta con una serie de registros para ciertos propsitos. Los registros bsicos de un microprocesador son:

Registro de Direccin de Memoria (MAR) Este registro sirve para especificar la direccin de la localidad de memoria cuyo contenido se desea leer o escribir. Cuando se realiza una operacin sobre la unidad de memoria, el contenido de este registro se conecta a las lneas de direccin para indicar a la unidad de memoria la direccin de la localidad involucrada en la operacin.

Registro de Datos de Memoria (MDR) Este registro se utiliza para transferir datos entre la unidad de memoria y la unidad central de proceso. Cuando se desea guardar un dato en una localidad de memoria, este registro se conecta a las lneas de transferencia de datos para que lo reciba la unidad de memoria. Si se desea capturar o leer un dato de una localidad de memoria, este registro se conecta a las lneas de transferencia de datos para recibir el dato que coloca la unidad de memoria en estas lneas y as almacenarlo en este registro.

15
La unidad de control, mediante las seales apropiadas, es la encargada de hacer que el dato que se encuentra en este registro se enve a travs de las lneas de transferencia de datos en una operacin de escritura a memoria o bien se guarde el dato que est en estas lneas en el registro de datos de memoria en el caso de una operacin de lectura de memoria. Registro Contador de Programa (PC) Este registro contiene la direccin de la localidad de memoria que tiene almacenada la siguiente instruccin a ejecutar. Cuando la Unidad Central de Proceso necesita obtener la siguiente instruccin, transfiere el contenido de este registro al registro de direccin de memoria e inicia una operacin de lectura. Cuando se termina la lectura y se coloca el contenido de la localidad especificada en el registro de datos de memoria, se transfiere el contenido de dicho registro al Registro de Instruccin. Finalmente, se incrementa el contenido del Registro Contador de Programa para que apunte a la direccin de la siguiente instruccin por ejecutar.

Registro de Instruccin (IR) Este registro contiene la instruccin que actualmente est ejecutando la Unidad Central de Proceso. La Unidad de Control, dependiendo de la instruccin que se encuentre en este registro, activa las lneas de control necesarias en la secuencia adecuada para su ejecucin.

Acumulador (AC) El acumulador es un registro en el cual se almacenan datos en forma temporal. La unidad aritmtica y lgica utiliza este registro en la ejecucin de sus funciones. Por ejemplo, cuando en la computadora se realiza una operacin de suma, la Unidad Aritmtica y Lgica toma los datos que contiene el Registro de Datos de Memoria y el Acumulador, los suma y deja el resultado de la operacin en el Acumulador. El dato que contena originalmente el Acumulador se pierde. Tambin se pueden hacer transferencia de datos entre el Acumulador y el Registro de Datos de Memoria. Suponiendo que el resultado de una suma se quisiera guardar en memoria para utilizarse posteriormente, sera necesario transferir el resultado contenido en el Acumulador al Registro de Datos de Memoria y ordenar una operacin de escritura a la unidad de memoria. Registro de Banderas (FR)

16
Las banderas son indicadores que solamente pueden tener dos valores: activado y desactivado. Estos indicadores se modifican de acuerdo con el resultado de cualquier operacin aritmtica o lgica. En el caso de un registro sencillo, se pueden considerar slo tres banderas. (N) Bandera de Signo.- Si est activada, indica que el resultado de la operacin result en una cantidad negativa. (Z) Bandera Cero.- Indica que el resultado de la operacin realizada fue cero.

(V) Bandera de Sobreflujo.- Indica que el resultado de la operacin aritmtica realizada excede la capacidad del registro Acumulador.

El objetivo de tener estas banderas es permitir que la unidad de control pueda tomar acciones diferentes dependiendo del resultado de las operaciones.

Unidad de Memoria La unidad de memoria est organizada como un conjunto de celdas o localidades conocidas como bytes o palabras dependiendo del nmero de bits que se puedan almacenar en cada localidad. Cada una puede almacenar un dato o una instruccin. Cada localidad de memoria tiene asociada una direccin nica, las direcciones de las localidades de memoria estn asignadas en forma secuencial empezando con la direccin 0. Pueden realizarse dos tipos de operaciones sobre la unidad de memoria (lectura y escritura). Para esto, la unidad de memoria tiene varias lneas mediante las cuales se conecta a la Unidad Central de Proceso; un conjunto de lneas sirve para especificar la direccin de cada localidad y otro conjunto sirve para transferir el dato que se desea leer o escribir. Existe adems, una lnea que se utiliza para indicar el tipo de operacin que se desea realizar. La operacin de lectura de la unidad de memoria permite obtener el dato o instruccin que se encuentra almacenado en una localidad de la memoria. Es decir, cuando se desea leer un dato o una instruccin de una localidad especfica, las lneas de direccionamiento deben tener la ubicacin de la localidad de memoria cuyo contenido se desea obtener y la lnea de control que indica el tipo de operacin debe especificar una operacin de lectura.

17
Cuando la unidad de memoria termina de realizar la operacin de lectura, coloca en las lneas de transferencia de datos una copia del contenido de la localidad de memoria cuya direccin se especific mediante las lneas de direccin. El contenido de la localidad de memoria no se modifica. La operacin de escritura a la unidad de memoria permite almacenar un dato en una localidad de la unidad de memoria. El dato contenido en la localidad especificada, antes de realizar la operacin de escritura ser reemplazado con el dato que se desea almacenar en dicha localidad, perdindose el contenido original. Para realizar este tipo de operacin sobre la memoria, las lneas de direccin deben tener la direccin de la localidad en la cual se desea almacenar el dato. Las lneas de transferencia de datos deben tener el dato que se desea guardar y la lnea que indica el tipo de operacin debe especificar que se trata de una operacin de escritura.

Unidad de Entrada Salida Esta unidad se utiliza para la comunicacin con el mundo externo. La secci n de entrada suministra informacin a la Unidad Aritmtica y Lgica o a la memoria. La Unidad de Salida muestra los datos provenientes de la ALU o ejecuta rdenes para activar o desactivar dispositivos. Para que el usuario de una computadora digital pueda ver y analizar los resultados de un programa, es necesario que estos sean enviados a algn dispositivo perifrico, como puede ser una pantalla de video, una impresora o un simple sistema de indicacin a travs de indicadores luminosos. Cada dispositivo perifrico debe tener asignada una direccin nica para poder identificarlo. La forma en que estos datos son enviados al dispositivo es similar a la forma en que se guardaran en la unidad de memoria. Para transferir un dato a un dispositivo perifrico, se colocara en el Registro de Direccin de Memoria la direccin del dispositivo, el dato que se desea enviar en el Registro de Datos de Memoria y se indicara una operacin de escritura a la Unidad de Entrada Salida. En forma similar si se desea obtener un dato de un dispositivo perifrico, se ordenara una operacin de lectura a la Unidad de EntradaSalida. Entre las seales generadas por la Unidad de Control, existen lneas que indican si la operacin de lectura o escritura debe ser realizada por la Unidad de Memoria o por la Unidad de Entrada - Salida.

18
Canal de Direcciones, Canal de Datos, y Canal de Control
Los canales son medios por los que se transmite informacin, son lneas o seales agrupadas segn su funcin. En el caso de sistemas con microprocesadores, se cuenta con tres canales: Canal de datos.- Transmite datos de una unidad a otra. Un microprocesador de 8 bits requiere de un canal de datos de 8 lneas para poder transmitir los 8 bits del dato en forma simultanea. De igual manera, un microprocesador de 16 bits requiere un canal de datos de 16 lneas para poder transmitir los 16 bits de datos en paralelo. Si el canal de datos solo tiene 8 lneas, se requieren dos transferencias consecutivas restando velocidad al sistema. El canal de datos es bidireccional, es decir los datos fluyen en ambas direcciones. Canal de Direcciones.- Este canal se emplea para seleccionar el punto de origen o destino de la informacin que se transmite a travs del canal de datos. Normalmente se usa para seleccionar un registro o localidad dentro de una de las unidades del sistema. El nmero de lneas que integra este canal determina el nmero de dispositivos o localidades que puede el microprocesador direccionar. Si el nmero de lneas del canal son 16, entonces existen 216 = 65,536 combinaciones posibles, cada una de las cuales representa una localidad o registro direccionable. Canal de Control.- Este canal se emplea para sincronizar el sistema, transporta informacin de estados y de control hacia y desde la Unidad Central de Proceso.

Ejemplos de aplicaciones

pendient e pendient e pendient e pendient e pendient e pendient e pendient

19 Microprocesadores de 8 y 16 bits
Canal de datos La arquitectura de un sistema est definida por su Canal de Datos, se dice que un microprocesador tiene arquitectura simple cuando emplea un solo Canal de Datos para accesar sus registros y transferir informacin entre estos y las diversas unidades de las que consta el sistema. La mayora de los microprocesadores que existen en el mercado tienen una estructura de bus nico como el mostrado en la siguiente figura.

En el diagrama mostrado se observa una seccin de control, esta se encarga de sincronizar el funcionamiento de todo el sistema, junto a esta seccin se observa la Unidad Aritmtica y Lgica. Podemos considerar que todos los microprocesadores emplean una arquitectura de bus simple basada en el uso de un registro acumulador. El acumulador puede seleccionarse tanto como registro de entrada o como registro de salida en la misma instruccin.

20
El diagrama incluye un registro auxiliar que permite a la Unidad Aritmtica y Lgica la ejecucin de intrucciones de desplazamiento y rotacin. La operacin de desplazamiento consiste en recorrer el contenido de un byte una posicin o ms ya sea a la derecha o a la izquierda. En el caso de una rotacin el bit que sale de la posicin ms significativa entra a la posicin del bit de menor peso del acumulador o viceversa. La estructura cuenta con un registro de banderas donde se encuentran los bits de estado del microprocesador. La mayor parte de las instrucciones aritmticas y lgicas ejecutadas por el procesador repercuten sobre el estado de alguno de los bits de estado del registro de banderas. Posteriormente tenemos los registros de uso general del microprocesador y los de direccionamiento. Los registros de uso general son necesarios para que la ALU pueda manipular datos a alta velocidad. Cada uno de estos registros esta formado por un conjunto de flip - flops conectados al canal de datos interno. Los registros de direccionamiento son registros de 16 bits destinados a almacenar direcciones, estos reciben tambin el nombre de apuntadores. Son registros dobles, su caracteristica principal es la de estar conectados al canal de direcciones. La unica forma de cargar un contenido en estos registros de direccionamiento es a travs del canal de datos. Se necesitan dos transferencias por el canal de datos para cargar un registro de direccionamiento con los 16 bits. Dentro de los registros de direccionamiento al menos se cuenta con un registro contador de programa y un registro apuntador de pila. El canal de datos se comunica al exterior a travs de las lineas de datos, estas se identifican como D0, D1, D2 , , D7 cuando el canal consta de 8 lineas, siendo D0 la linea que transporta el bit menos significativo y D7 la linea que transporta el bit mas significativo de la informacin. Cuando el ancho del canal consta de 16 lineas, estas se identifican como D0,D1, , D15 donde de manera similar, la linea D0 transporta el bit menos significativo y D15 el bit mas significativo de la informacin. Un microprocesador de 8 bits requiere de un Canal de Datos de 8 lineas para transportar 8 bits de informacin en forma paralela, de igual manera el canal de datos en un microprocesador de 16 bits requiere de 16 lineas para transportar 16 bits de informacin en forma simultnea. Si el canal de datos esta formado de 8 lineas y los registros del microprocesador son de 16 bits, se necesitarn dos transferencias sucesivas para completar la informacin, por

21
consiguiente el ancho del Canal de Datos esta relacionado directamente con la velocidad de procesamiento del sistema. Cuando se efecta una operacin de escritura ya sea a una localidad de memoria o a un puerto de salida, la informacin contenida en las lneas del canal de datos fluye desde el microprocesador hacia los dispositivos externos, en caso contrario para una operacin de lectura la informacin transita desde una localidad de memoria o desde un puerto de entrada hacia el microprocesador, el doble sentido del flujo de informacin hace necesario que las lneas del canal de datos sean bidireccionales. A travs de las lneas del canal de datos transitan tanto los datos como los cdigos de las instrucciones de un programa almacenado en la memoria del sistema. Considerando un programa que incluye la instruccin donde se requiere cargar al registro acumulador con una constante para una operacin posterior, la accin podra representarse de la siguiente forma:

A 23

Cargar acumulador con 23

Para algunos microprocesadores Intel, el cdigo generado por esta instruccin sera: B0 17H equivalente a 1011 0000 0001 01112

En un circuito de memoria con un arreglo de 8 celdas por localidad, el cdigo se almacena en dos bytes adyacentes de memoria de la siguiente forma:

1 0

0 1 1 0 0 0 0 0 0 1 0 1 1 1

22 El microprocesador 8008
El microprocesador 8008 introducido por Intel Corp. en 1972 fue el primer microprocesador comercial de 8 bits. El microprocesador 8008 fue fabricado con tecnologa pMos, tecnologia relativamente lenta y como era de esperarse en los primeros microprocesadores, este result con algunos detalles de diseo que en breve tiempo mostro sus limitaciones. El microprocesador 8008 fue inicialmente matriculado como 1201 y designado para ser empleado como controlador de terminales, su arquitectura difiere completamente de la empleada en el microprocesador 4004. El microprocesador 8008 estaba diseado para direccionar 16 KB de memoria, operando a una velocidad de 800 Khz. Su juego de instrucciones comprendia 48 instrucciones y aceptaba 8 niveles de interrupcin; esto represent la ms importante transicin para los procesadores Intel. El trabajo desarrollado en el 8008 habilito la creacin del poderoso 8080, el cual incluia el juego de instrucciones del 8008

El microprocesador 8080
El microprocesador 8080 de 8 bits introducido por Intel en 1973, utilizaba tecnologa nMOS, ms rpida. El microprocesador 8080 fue creado para superar algunas de las limitaciones del 8008, por lo que pronto se convirti en uno de los microprocesadores ms utilizados. El microprocesador 8080 es un procesador de 8 bits debido a que el ancho del canal de datos es de 8 bits y la Unidad Aritmtica y Lgica realiza operaciones con palabras de 8 bits.

23
La Unidad Aritmtica y Lgica se compone de un registro acumulador; un registro temporal; un conjunto de biestables para actuar como banderas de estado y circuitera para realizar ajustes en operaciones decimales. El acumulador y el registro temporal pueden realizar operaciones aritmticas, lgicas y de comparacin entre dos cantidades de 8 bits. Al inicio de una operacin, una de las cantidades debe estar almacenada en el acumulador. El resultado de la operacin es almacenado en este mismo registro acumulador. El registro temporal recibe datos del Canal de Datos interno y los almacena para ser procesados por la Unidad Aritmtica y Lgica. En el caso de una operacin de suma o resta de cantidades decimales codificadas en binario (BCD), se utiliza la circuitera de ajuste decimal para mantener en el resultado el formato BCD correcto. Registros Internos

Registro de Banderas
Despus de cada operacin los cinco biestables indicadores de estado son puestos a 0 o a 1 para indicar ciertas condiciones en el resultado. Un ejemplo sera el acarreo producido por una operacin aritmtica.

C.-

Acarreo. La Bandera de Acarreo es puesta a 1 si se produce un acarreo en una operacin y puesta a 0 si no existe acarreo.

PC.- Paridad. La bandera de paridad es puesta a 1 o activada si el nmero de unos contenidos en el acumulador es un nmero par y

24
es puesta a 0 o desactivada si el acumulador contiene un nmero impar de unos. AC. Acarreo Auxiliar. La bandera de acarreo auxiliar es activada por un acarreo del bit nmero 3 del acumulador. En sumas en BCD o restas, esta bandera es empleada para indicar que se debe realizar una operacin de ajuste decimal. Cero. Si el resultado de una operacin genera que el contenido del acumulador sea 0, entonces la bandera cero es activada. Signo. Para un resultado negativo en el acumulador, la bandera de signo estar activada. Cuando se emplean nmeros positivos y negativos el bit 7 es usado como bit de signo, el signo del resultado de una operacin est representado por la bandera de signo.

Z.-

S.-

Estas banderas son empleadas para la decisin en saltos condicionales a otro programa o a otra seccin dependiendo del estado que guarden las banderas.

Registros de Trabajo Adicionalmente al acumulador y al registro de banderas, el 8080 contiene seis registros de 8 bits agrupados en pares. Estos son los registros B-C, D-E y H-L, los cuales algunas veces son utilizados como registros de trabajo. El registro B por ejemplo, puede ser usado por si solo para almacenar un byte de dato; junto con el registro C se pueden emplear para almacenar un dato o una direccin de 16 bits.

REGISTROS DEL 8080

25
El Apuntador de Pila, SP es un registro de 16 bits que usualmente es empleado para almacenar una direccin. El Contador de Programa, PC puede ser considerado como un registro contador, el cual almacena la direccin de memoria donde se encuentra la prxima instruccin a ser leda por la CPU. Despus de la lectura de cada instruccin, este registro es autoincrementado para apuntar a la siguiente localidad donde se encuentra la prxima instruccin a ser leda por la CPU. En el microprocesador 8080 se utiliza direccionamiento a puertos de E/S independientes del direccionamiento a memoria.

MICROPROCESADOR 8080

El tamao de la direccin de los puertos de E/S est limitado a 8 bits, de manera que se pueden accesar hasta 256 direcciones (2n ) de entrada salida. Estas direcciones se utilizan nicamente en las instrucciones de E/S, por lo tanto son independientes de las 216 = 64 K direcciones que se pueden asignar a la memoria.

26 Seales de Control e Interrupciones


El 8080 requiere un reloj de dos fases para su operacin. Este reloj puede ser generado con un oscilador a cristal y varios circuitos integrados, pero el mtodo usual es el empleo del generador de reloj 8224. Este circuito requiere nicamente de un cristal externo para producir los relojes y otras seales de control requeridas por el 8080. El microprocesador 8080 generalmente opera utilizando otro circuito de interfase, el 8228 el cual proporciona dos funciones principales, primero acta como un acoplador para incrementar el manejo de corriente en las lneas de datos. El manejador de canal es bidireccional debido a que los datos pueden ser ya sea de entrada o de salida en el canal. Una segunda funcin es producir las seales de control apropiadas para la lectura y escritura a memoria o puertos de entrada/salida y el reconocimiento de interrupciones. El 8080 enva estas seales en una forma codificada sobre el canal de datos durante el inicio de cada ciclo. La lnea STSTB que produce el generador de reloj 8224 captura este cdigo en el 8228, este utiliza las seales de lectura y escritura as como el reconocimiento de DMA que genera el 8080 para decodificar las seales capturadas y generar las propias.

SYNC

Esta seal indica que una palabra de estado generada por el 8080 se encuentra en el canal de datos. Indica que el canal de datos se encuentra en modo de entrada. Esta seal y la palabra de estado generada por el 8080 activan las seales MEMR, I/OR o INTA para lectura de un dato almacenado en memoria, en un puerto de entrada o la instruccin de reinicio RST. Indica que el canal de datos se encuentra en modo de salida. Esta seal y la palabra de estado generada por el 8080 activan las seales MEMW o I/OW para escritura de memoria o puerto de salida. Cuando esta seal de entrada se activa, provoca que el 8080 entre a un estado de espera. Esta seal se activa para indicar que el 8080 se encuentra en un estado de espera.

DBIN

WR

READY WAIT

27
HOLD Esta seal es generada por dispositivos externos para indicar al 8080 un requerimiento de canales. Cuando esta seal es reconocida por el microprocesador, termina la ejecucin de la instruccin en curso y coloca los canales en estado de alta impedancia. Esta seal se activa como respuesta al requerimiento de canales al momento de terminar la ejecucin de la instruccin en curso y colocar los canales en estado de alta impedancia. Esta seal se activa por un dispositivo externo indicando al 8080 un requerimiento de interrupcin. Esta seal indica el estado que guarda el biestable de habilitacin de Interrupciones. Iniciar el sistema. Pone a Cero el registro Contador de Programa, PC.

HLDA

INT

INTE RESET

El microprocesador 6800
El microprocesador 6800 es una CPU de 8 bits fabricado por Motorola en 1974, similar al 8080 fabricado por Intel. La arquitectura del 6800 y del 8080 difieren en varios aspectos importantes, por ejemplo el 6800 tiene ms modos de direccionamiento y el 8080 tiene mas registros. El microprocesador 6800 est diseado para procesar palabras de datos de 8 bits y direcciones de 16 bits. Est alojado en una cpsula estndar de 40 pines a las que se conecta un canal de datos bidireccional de 8 lneas y un canal de direcciones de 16. El 6800 tiene un nmero de lneas de control pequeo, de hecho tan poco frecuente es el uso de lneas de control en el 6800 que varios de los 40 pines disponibles no se utilizan. Registros Internos El 6800 contiene seis registros programables: un par de registros de propsito general para datos de 8 bits A Y B, un registro de estado de 8 bits CC y tres registros de direcciones de 16 bits: un contador de programa PC, un apuntador de pila SP y un registro de ndice IX.

28
Los registros A y B se conocen como acumuladores, dado que son utilizados como fuente principal de operando o como destino por muchas instrucciones.

Registro de Cdigo de Condicin El registro CC contiene un cdigo de condicin formado por 6 bits indicadores. Los bits 6 y 7 del registro CC no se utilizan. Cuatro de los bits indicadores de CC concretamente C para el acarreo, V para el sobreflujo, Z para cero y N para el signo negativo pueden ser comprobados mediante instrucciones de salto condicional El indicador H (medio acarreo) se utiliza en determinadas operaciones decimales en las que cada mitad de un operando de 8 bits representa un dgito BCD. El bit indicador restante I (interrupcin) es una mscara de interrupcin que permite al programador habilitar o deshabilitar una de las lneas de requerimiento de interrupcin del 6800.

29
Registros Apuntadores Los tres registros de la Unidad Central de Procesamiento para almacenamiento de direcciones, PC, SP e IX tienen un diseo muy convencional, el registro PC contiene la direccin de la siguiente instruccin y se incrementa automticamente durante cada ciclo de instruccin. El registro apuntador de pila, SP se utiliza para accesar una regin de la memoria definida por el usuario como memoria de PILA. La pila del 6800 crece de abajo hacia arriba de manera que, tras haber aadido un byte a la pila mediante una operacin de insercin, el registro SP se decrementa automticamente en uno. En el caso de una lectura de la pila u operacin de extraccin, SP se incrementa automticamente en uno antes de la transferencia de datos desde la pila. IX es un registro de ndice cuyo contenido se suma al campo de direccin de la instruccin para formar una direccin efectiva de memoria principal siempre que se especifique el modo de direccionamiento indexado. El procesamiento de datos en el 6800 se realiza con una ALU de 8 bits, capaz de realizar la suma y la resta de punto fijo y de algunas operaciones lgicas estndares. Se utiliza E/S con direccionamiento a memoria, por tanto la memoria y los dispositivos de E/S conectados al 6800 deben compartir el conjunto disponible de 216 = 64 K combinaciones de direcciones. El canal de control emplea 9 lneas para controlar las transferencias de datos, las operaciones de direccionamiento directo a memoria, DMA y las interrupciones. Hay tres lneas de peticin de interrupcin que no tienen vector de interrupcin, es decir hacen que el control del programa se transfiera a direcciones de interrupcin fijas generadas internamente por la CPU. El 6800 tiene un conjunto de 72 instrucciones en lenguaje ensamblador. Los tres tipos principales son: procesamiento de datos, transferencia de datos y control del programa.

Seales de control e interrupciones. Al igual que el 8086, las lneas de control permiten: Controlar la transferencia de datos a travs del canal del sistema

30
Permitir a los dispositivos externos tomar el control del canal del sistema, principalmente para operaciones de DMA. Permitir a los dispositivos externos interrumpir a la CPU forzndola a transferir el control del programa a determinadas posiciones de memoria predeterminadas.

MICROPROCESADOR 6800

Las nueve lneas de control externas del 6800 y sus funciones principales se listan a continuacin (excluyendo las dos lneas de reloj) R/W Habilitacin de lectura / escritura. Si esta seal es igual a cero, la operacin es de escritura. Si esta seal es igual a uno, la operacin es de lectura. Direccin de memoria vlida. Cuando esta seal es igual a uno, la informacin contenida en el canal de direcciones representa una direccin vlida. Requerimiento de canales.

VMA

HALT

31
Se emplea en el proceso de Direccionamiento Directo a Memoria. Los Canales de Direccin y de datos, as como las lneas de control R/W, y VMA se colocan en estado de alta impedancia. BA Reconocimiento a la peticin de canales. El 6800 activa esta seal a uno para indicar que los canales estn disponibles para ser usados en el proceso de direccionamiento directo a memoria. Control de Tercer Estado. El 6800 emplea esta seal para poner en estado de alta impedancia el canal de direcciones y la seal de control de lectura / escritura. El 6800 emplea esta seal para poner en estado de alta impedancia el canal de datos. Iniciar el sistema. Pone a uno la bandera de interrupcin y carga el registro Contador de Programa, PC con la direccin almacenada en las direcciones FFFEH y FFFFH. Requerimiento de Interrupcin No Enmascarable. Resguarda en el rea de Pila los valores de los registros PC, X, A, B Y CC. Carga el registro Contador de Programa, PC con la direccin contenida en las direcciones FFFCH y FFFDH. Requerimiento de Interrupcin Enmascarable. Resguarda en el rea de Pila los valores de los registros X, A, B y CC. Pone a uno la bandera de interrupcin y carga el Registro Contador de Programa, PC con la direccin almacenada en las direcciones FFF8H y FFF9H.

TSC

DBE RESET

NM I

IRQ

32
ZILOG Z80
El microprocesador Z80 fue diseado para ser empleado por los usuarios del microprocesador 8080. Este, adems de reconocer el juego completo de instrucciones del 8080, incluye las propias por lo que incrementa enormemente el poder del dispositivo. Toma adems algunas caractersticas del Motorola 6800 como es el direccionamiento indexado e instrucciones de salto relativo de 2 bytes, servicios de interrupcin enmascarable y no enmascarable y alimentacin con una sola entrada de voltaje. Al microprocesador Z80 le fueron aadidas caractersticas especiales como instrucciones de bsqueda y transferencia de bloques de datos, instrucciones para manipular bits y rotacin de caracteres, as como una estructura vectorial para manejar prioridad de interrupciones, adems de reloj de una sola fase. Debido a que utiliza tecnologa nMOS esttica, puede funcionar correctamente a cualquier frecuencia de reloj por debajo del mximo.

MICROPROCESADOR Z80

33
Canal de control e interrupciones Al igual que los microprocesadores anteriores, el Z80 dispone de un canal de control cuyas seales se enlistan a continuacin: WAIT ESPERA Esta seal indica a la CPU que una localidad de memoria o un puerto de E/S de baja velocidad ha sido direccionado. La CPU permanece en estado de espera mientras la seal WAIT est activa. Todas las seales de datos, de direcciones y de control permanecen en el estado en que se encontraban al momento en que la CPU recibi esta seal. SOLICITUD DE INTERRUPCION. Esta seal es generada por dispositivos de E/S. Este requerimiento ser atendido al finalizar la instruccin en proceso siempre y cuando el flip flop de interrupcin est activado y la seal BUSRQ deshabilitada. Cuando la CPU acepta la interrupcin, enva una seal de reconocimiento IORQ. NMI SOLICITUD DE INTERRUPCION NO ENMASCARABLE. Esta solicitud tiene prioridad mayor que la lnea INT y se reconoce al final de la instruccin en proceso independientemente del estado del flip flop de interrupcin. La seal NMI forza a la CPU a ejecutar la rutina que inicia a partir de la direccin 0066H, salvando de manera automtica el contenido del registro contador de programa en el rea de pila. BUSRQ SOLICITUD DE CANALES. Esta seal es activada por dispositivos externos con la finalidad de tomar el control de los canales de datos, direccin y control. RECONOCIMIENTO DE LA SOLICITUD DE CANALES. Esta seal es activada por la CPU como respuesta a la peticin realizada por medio de la lnea BUSRQ, poniendo en estado de alta impedancia los canales de datos, direccin y control con la finalidad de que el dispositivo que hizo el requerimiento pueda tomar el control de estos. CICLO DE MAQUINA UNO. La lnea M1 indica que el ciclo de mquina en proceso es un ciclo de bsqueda (fetch), el cual es utilizado para obtener el cdigo de operacin de la prxima instruccin a ejecutar.

INT

BUSAK

M1

34
Esta seal tambin se activa junto con la seal IORQ para indicar un ciclo de reconocimiento de interrupcin. MREQ SOLICITUD DE MEMORIA. Cuando la seal MREQ se activa, indica que el canal de direcciones contiene una direccin vlida para operaciones de lectura o escritura en memoria. SOLICITUD DE DISPOSITIVOS DE E/S. Esta seal indica que las 8 lneas de direccin de ms bajo orden (A0A7) contienen una direccin de dispositivos de E/S vlida para operaciones de lectura o escritura. La seal IORQ se activa junto con M1 cuando la CPU reconoce una interrupcin para indicar que se debe colocar un vector de interrupcin en el canal de datos. RD LECTURA. La seal RD indica que la CPU va a leer un dato de la memoria o de un dispositivo de E/S. El dispositivo de E/S o la localidad de memoria direccionada deber utilizar esta seal para habilitar la informacin y colocarla en el canal de datos de la CPU. ESCRITURA. La seal WR indica que el canal de datos contiene informacin que debe ser almacenada en la localidad de memoria o el dispositivo de E/S direccionado. REFRESCO. Esta seal indica que las siete lneas de mas bajo orden del canal de direcciones (A0 A6) contiene la direccin de refresco para las memorias dinmicas que debern usarse al presentarse la seal MREQ. SUSPENSIN. El estado de suspensin indica que la CPU ha ejecutado una instruccin HALT y est esperando una interrupcin no enmascarable para continuar con la ejecucin de la rutina de servicio de interrupcin correspondiente. INICIALIZACION. Esta seal forza al contador de programa a cero e inicializa la CPU consistente en: a) b) c) d) Deshabilita el flip flop de interrupciones Pone a ceros el registro de interrupcin I Pone a ceros el registro de refresco de memoria R Habilita el modo de interrupcin 0

IOREQ

WR

RFSH

HALT

RESET

35
Registros del Z80 Al igual que el 8080, el microprocesador Z80 cuenta con un registro acumulador A, un registro de estado F, y seis registros de trabajo B, C, D, E, H y L, pero adicionndole un juego auxiliar de registros A, F, B, C, D, E, H y L. Las instrucciones del Z80 hacen uso directo de los registros principales. Sin embargo se intercambian con los registros auxiliares por medio de instrucciones de intercambio empleadas principalmente en procesos que involucran llamados a subrutinas. Tomando la idea del 6800, el Z80 maneja direccionamiento indexado por medio de dos registros adicionales IX e IY, por lo que este procesador permite los modos de direccionamiento del 8080 adems de los modos de direccionamiento del 6800.

REGISTROS DEL ZILOG Z80

Otro registro adicional es el registro I, el cual es empleado en el direccionamiento de rutinas de servicio de interrupcin. El Z80 contiene un registro ms de 8 bits (R), conocido como contador de refresco de memoria y es empleado para proporcionar las seales requeridas para el refresco de memorias dinmicas.

36
TMS 9900
El 9900 es un microprocesador de 16 bits desarrollado por Texas Instruments con tecnologa nMOS y frecuencia de reloj de 4 MHZ. En lugar de utilizar registros de trabajo internos, utiliza arquitectura memoria a memoria que permite multiplicidad de registros de trabajo residentes en memoria. Utiliza mapeo a memoria para direccionar los puertos de entradasalida.

MICROPROCESADOR 9900

Seales de Control e Interrupciones


El TMS 9900 emplea 16 niveles de interrupcin con la ms alta prioridad para el nivel 0 y la ms baja para el nivel 15. El nivel 0 esta reservado para la funcin RESET y todos los dems niveles pueden ser utilizados por dispositivos externos.

37
Una de las caractersticas de este microprocesador es que continuamente compara el cdigo de interrupcin en las lneas IC0 a IC3 con la mscara de interrupcin contenida en el registro de estado. Cuando el nivel de la interrupcin es menor o igual a la mscara, el procesador reconoce la interrupcin e inicia una transferencia de control a la rutina de servicio correspondiente una vez terminada la ejecucin de la instruccin en curso. DBIN ENTRADA DE DATOS. Cuando se activa esta lnea, indica que el CPU ha deshabilitado sus registros de datos para permitir a la memoria colocar informacin en el canal al momento que se active MEMEN. HABILITACION DE MEMORIA. Cuando esta seal se activa, indica que el canal de direcciones contiene una direccin de memoria. HABILITACION DE ESCRITURA. Cuando se activa, indica que la CPU ha colocado informacin en el canal de datos para ser escrito en una localidad de memoria. RELOJ DE LA UNIDAD DE COMUNICACIN. Cuando esta seal se activa, indica que informacin ha sido colocada en la lnea de comunicacin CRUOUT para ser capturada por dispositivos externos. ENTRADA EN LA UNIDAD DE COMUNICACIN. Por medio de esta lnea se recibe informacin desde dispositivos externos. SALIDA EN LA UNIDAD DE COMUNICACIN. Lnea de transferencia de datos a dispositivos externos, sincronizados con la lnea de reloj CRUCLK. SOLICITUD DE INTERRUPCION. Cuando esta lnea se activa, indica que un dispositivo externo est solicitando una interrupcin, el procesador toma la informacin contenida en las lneas de cdigo de interrupcin IC0 a IC3 y las compara con la mscara de interrupcin para validar la prioridad. CDIGOS DE INTERRUPCION. ICO es el bit ms significativo del cdigo de interrupcin, se hace un muestreo del cdigo al momento en que se activa la seal INTREQ.

MEMEN

WE

CRUCLK

CRUIN

CRUOUT

INTREQ

ICO-IC3

38
SUSPENSION. Cuando esta lnea se activa, indica al procesador que un dispositivo externo desea utilizar los canales de datos y direccin para transferir datos a la memoria o desde la memoria. Cuando el procesador termina su ciclo de memoria, entra a un estado de suspensin, colocando los canales en estado de alta impedancia as como las lneas WE, MEMEN y DBIN, por ltimo contesta activando la seal HOLDA. CONFIRMACIN DE SUSPENSIN. Esta seal se activa para indicar que el procesador se encuentra en estado de suspensin y los canales de datos y de direccin as como las lneas WE, MEMEN y DBIN se encuentran en estado de alta impedancia. LISTO. Cuando esta seal se activa es para indicar que la memoria estar lista para leer o escribir en el siguiente ciclo de reloj. Cuando esta seal se activa en una operacin de memoria, el procesador entra en un estado de espera y suspende las operaciones internas hasta que la memoria indica que ya se encuentra lista. ESPERA. Cuando esta lnea se activa es para indicar que el procesador ha entrado en un estado de espera en respuesta a una condicin de NO LISTO ocasionada por la memoria. ADQUISICIN DE INSTRUCCIN. Esta lnea se activa cada vez que el procesador realiza la lectura de una instruccin en un ciclo de memoria. CARGA. Cuando esta lnea se activa el microprocesador ejecuta una interrupcin no enmascarable donde la direccin FFFC contiene el vector de la rutina correspondiente. INICIALIZACION. Cuando esa lnea se activa causa que el procesador inicie una secuencia de interrupcin de nivel cero, donde carga los registros WP y PC de las localidades 0000 y 0002. El registro de estado es puesto a cero.

pendient e pendient e pendient e pendient e HOLDA pendient e pendient e pendient READY e pendient e pendient e pendient e WAIT pendient e pendient IAQ e pendient e LOAD

RESET

39
Arquitectura La longitud de palabra del TMS 9900 es de 16 bits de largo, cada palabra tambin se define como dos bytes. Las instrucciones del TMS 9900 permiten operandos de byte o palabra. El espacio de memoria es de 65,536 bytes o 32,768 palabras.

Registros y memoria El TMS 9900 emplea una arquitectura memoria a memoria. De manera que bloques de memoria son designados como rea de trabajo que reemplazan los registros internos utilizados en otros microprocesadores. Solo tres registros internos estn disponibles para el usuario: el contador de programa, el registro de estado y el apuntador de rea de trabajo. El Contador de Programa contiene la direccin de la instruccin siguiente a ejecutar; esta direccin es tomada por el procesador para capturar la siguiente instruccin de la memoria y automticamente ser incrementado. El registro de estado, contiene la informacin sobre el estado actual del procesador y el registro Apuntador de rea de Trabajo, contiene la direccin de la primer palabra de los registros que forman el rea de trabajo activa.

REGISTROS DEL MICROPROCESADOR 9900

40 MICROPROCESADOR 8088
El microprocesador 8088 es una Unidad Central de Procesamiento de 16 bits de tercera generacin, est construida a partir de silicio con un canal de datos de 8 bits y 20 lneas de canal de direcciones para conectar a memoria y dispositivos de entrada/salida. Terminales del microprocesador 8088 AD0AD7 CANAL MULTIPLEXADO DE DATOS Y DIRECCIONES. Durante el perodo de reloj T1, la informacin presente en estas lneas se refiere a una direccin de memoria o a la de un puerto de E/S. Durante los tiempos T2, T3 y T4, la informacin presente se refiere a un dato que ha sido colocado para ser trasladado hacia el microprocesador desde una localidad de memoria, un puerto de entrada-salida o desde el microprocesador hacia una localidad de memoria o a un puerto de entrada salida. CANAL DE DIRECCIONES. Contienen los bits A8 a A15 de una direccin de 20 bits de una localidad de memoria. CANAL MULTIPLEXADO DE DIRECCIONES Y CDIGO DE ESTADO. En el tiempo de reloj T1, estas lneas contienen los bits de direccin A16 A19 de una direccin de 20 bits de una localidad de memoria. Durante los tiempos T2, T3 y T4, la informacin presente en estas lneas se refiere a un cdigo de estado en el ciclo de canal que indica la condicin de la bandera IF y cual segmento se est direccionando. LECTURA DE DATOS. Esta seal se activa para indicar que el procesador va a realizar una lectura de datos desde una localidad de memoria o desde un puerto de entrada. ESCRITURA DE DATOS. Cuando se activa, indica que la CPU ha colocado informacin en el canal de datos para ser escrito en una localidad de memoria o en un puerto de salida. HABILITACION DE MEMORIA / PUERTO. Cuando esta seal se encuentra en estado bajo, indica que la informacin contenida en el canal de direcciones se refiere a la direccin de una localidad de memoria, cuando est en estado alto indica que la informacin contenida en el canal de direcciones se refiere a la direccin de un puerto de entrada salida.

A8A15

A16/S3 A19/S6

RD

WR

M/IO

41

MICROPROCESADOR 8088

DT/R

TRANSMISIN / RECEPCIN DE DATOS. Cuando esta seal se encuentra en estado bajo, indica que la informacin contenida en el canal de datos fluye desde una localidad de memoria o desde un puerto de entrada hacia el procesador. Cuando esta seal se encuentra en estado alto, la informacin contenida en el canal de datos fluye del microprocesador hacia una localidad de memoria o hacia un puerto de salida. HABILITACION DEL CANAL DE DATOS. Esta seal se activa en el momento en que el canal multiplexado de datos y direcciones contiene precisamente un dato. HABILITACION DEL LATCH DE DIRECCIONES. Esta seal se activa en el momento en que el canal multiplexado de datos y direcciones contiene una direccin. MODO MNIMO/MXIMO. Lnea de seleccin del modo de operacin del microprocesador,

DEN

ALE

MN/MX

42
TEST PRUEBA. Esta lnea del microprocesador puede ser empleada para probar la instruccin WAIT. Cuando TEST est en nivel bajo, la instruccin WAIT opera como una instruccin NOP. Cuando TEST est en nivel alto, la instruccin WAIT provoca que el procesador espere hasta que la entrada TEST tome un nivel bajo. LISTO. Cuando esta seal se encuentra en nivel alto indica que la memoria est lista para leer o escribir. Cuando esta seal est en nivel bajo indica que la memoria o dispositivo de entrada salida an no est listo para enviar o recibir datos, el procesador entra en un estado de espera y suspende las operaciones internas hasta que la memoria o dispositivo de entrada salida indique que ya se encuentra listo. INICIALIZACION. Cuando esa lnea se activa causa que el procesador ejecute una secuencia de iniciacin cuya direccin se encuentra a partir de la direccin FFFF0H. SOLICITUD DE INTERRUPCION. Cuando esta lnea se activa, indica que un dispositivo externo est solicitando una interrupcin, si la bandera IF se encuentra activada al momento de la solicitud, el procesador termina la ejecucin de la instruccin en curso y efecta un reconocimiento activando la lnea INTA. INTERRUPCION NO ENMASCARABLE. Cuando esta lnea se activa el procesador interrumpe el programa en ejecucin y se transfiere el control a la direccin especificada por el vector de interrupcin 2. RETENCIN. Esta lnea es activada por dispositivos externos cuando se desea utilizar los canales de datos y direcciones para transferir informacin a la memoria o desde la memoria. Cuando el procesador termina su ciclo de memoria, entra a un estado de retencin, colocando los canales en estado de alta impedancia, reconociendo la solicitud activando la seal HOLDA. CONFIRMACIN DE RETENCIN. Esta seal se activa para indicar que el procesador se encuentra en estado de RETENCIN y los canales de datos, de direccin y de control se encuentran en estado de alta impedancia.

READY

RESET

INTR

NMI

HOLD

HOLDA

43
Registros Internos
Aun cuando el microprocesador 8088 tiene registros internos de 16 bits, debido a que su canal de datos es de 8 lneas, la transferencia de informacin entre ste y la memoria o dispositivos de entrada salida es de 8 bits a la vez. El microprocesador 8088 cuenta con tres grupos de registros: Cuatro registros de propsito general de 16 bits. Cuatro registros apuntadores y registros de ndice. Cuatro registros de segmento. Adems de estos grupos, cuenta con un registro de banderas que indica el estado que guarda el procesador al realizar operaciones aritmticas o lgicas.

REGISTROS DEL MICROPROCESADOR 8088

Registros de Propsito General


Este grupo consiste de cuatro registros de 16 bits. Cada uno puede ser tratado como dos registros independientes de 8 bits, que pueden ser utilizados en forma individual para operaciones de bytes.

44

AX REGISTRO ACUMULADOR
El registro AX es considerado como el acumulador principal del microprocesador, es empleado como rea de trabajo para almacenar datos intermedios o resultados temporales. Las instrucciones que son asociadas con el registro AX son muy compactas por lo que el cdigo de operacin correspondiente toma menos espacio de memoria que aquellas en las que se involucra algn otro registro de propsito general.

REGISTRO ACUMULADOR AX

En la divisin entre 8 bits, el contenido del registro AX representa el cociente y el residuo resultante de la operacin. En el caso de una divisin entre 16 bits, el contenido del registro AX representa los 16 bits menos significativos de un dividendo de 32 bits. En operaciones de cadena, el registro AX puede ser empleado como operando para contener el dato a procesar, ya sea de 8 o de 16 bits. Si el dato a procesar es pequeo en magnitud y una operacin de 8 bits es suficiente, el registro AX puede ser visto como dos registros completamente separados de 8 bits llamados AH y AL. El registro AH ocupa los 8 bits de mayor orden y el registro AL ocupa los 8 bits menos significativos.

BX REGISTRO BASE
El contenido del registro BX puede especificar una direccin de memoria o puede ser agregado a una constante de desplazamiento para calcular una nueva direccin cuando se emplea el modo de direccionamiento con base. De esta manera una simple instruccin de mquina puede utilizar el registro BX para direccionar diferentes localidades de memoria simplemente cambiando el contenido del REGISTRO BASE.

45

REGISTRO BASE BX

Este registro es el nico del grupo que puede ser utilizado como un apuntador de memoria o bien, como un registro de propsito general, pudiendo realizar la mayora de las funciones que hace el registro acumulador AX. Para operaciones de 8 bits, el registro BX puede ser utilizado como dos registros independientes de 8 bits cada uno llamados BH y BL, donde BH ocupa los bits ms significativos y BL los 8 bits de menor orden.

CX REGISTRO CONTADOR
La funcin especial de este registro es la de controlar el nmero de repeticiones en un proceso iterativo Tambin puede ser usado para realizar la mayora de las operaciones de propsito general que efecta el registro acumulador AX. Al igual que los registros anteriores, en operaciones de 8 bits, el registro CX puede ser utilizado como dos registros de 8 bits independientes en el que CH contiene los 8 bits de mayor orden y CL los 8 bits menos significativos.

REGISTRO CONTADOR CX

DX REGISTRO DE DATOS
Este registro DX es usado como un acumulador secundario para almacenar datos intermedios y resultados temporales.

46
Puede ser combinado con el acumulador AX para formar un nmero de 32 bits en operaciones de multiplicacin y divisin, donde el contenido del registro DX contiene los 16 bits de ms alto orden. Es utilizado para almacenar el residuo de un resultado de una divisin entre 16 bits y puede tambin contener la direccin de puertos de entrada / salida para recibir y enviar informacin hacia o desde dispositivos perifricos.

REGISTRO DE DATOS DX

Si se desea ejecutar una operacin de 8 bits, el registro DX tambin puede ser visto como dos registros de 8 bits independientes, los cuales seran DH y DL. Al igual que los registros anteriores, DH representa los bits ms significativos y DL los de menor orden.

Registros de Segmento
Debido al nmero de lneas que integran el canal de direcciones, la capacidad mxima de direccionamiento del microprocesador 8088 es de un megabyte de memoria (220 = 1,048,576 localidades). Sin embargo, para direccionar este megabyte de memoria se emplean registros de 16 bits por lo que cada registro puede direccionar segmentos de memoria de hasta 64 Kbytes cada uno. El microprocesador 8088 tiene acceso directo hasta cuatro segmentos a la vez. La direccin inicial de cada segmento se encuentra contenida en uno de cuatro registros de segmento, CS, DS, ES y SS. Los registros de segmento identifican los segmentos de 64 Kbytes del espacio de memoria del 8088 que estn siendo usados en el momento, por lo que no pueden ser empleados en operaciones aritmticas o lgicas.

CS REGISTRO SEGMENTO DE CDIGO


Este es un registro de 16 bits que apunta al segmento de memoria que contiene las instrucciones de mquina del programa que se est ejecutando.

47
Este segmento de 64 Kbytes es el rea desde la cual el 8088 est leyendo las instrucciones para ser ejecutadas. El contenido del registro CS puede ser modificado nicamente ejecutando instrucciones de salto JMP, llamados a procedimientos CALL y retorno de procedimientos RET o de rutinas de servicio de interrupcin IRET.

REGISTRO SEGMENTO DE CDIGO

DS REGISTRO SEGMENTO DE DATOS


El SEGMENTO DE DATOS es un registro de 16 bits. Su contenido se refiere a la direccin inicial de una rea de memoria de 64 Kbytes donde normalmente se encuentran variables, tablas y constantes empleadas en el programa en ejecucin. Este arreglo facilita la estructura de la programacin en el sentido de que los datos del programa pueden estar agrupados en un segmento separado y que los datos no tienen que permanecer en el mismo segmento con los cdigos de instrucciones. Todos los registros de direccionamiento a memoria son con relacin al registro SEGMENTO DE DATOS.

REGISTRO SEGMENTO DE DATOS

Las referencias a direcciones de memoria empleadas por instrucciones de cadenas utilizando el registro de ndice SI, tales como LODS (LOaD String),

48
MOVS (MOVe String) o CMPS (CoMPare String) son tambin calculadas con relacin al registro SEGMENTO DE DATOS.

ES REGISTRO SEGMENTO EXTRA


Este es otro registro de 16 bits. Su contenido indica la direccin inicial de una rea de memoria adicional de 64 Kbytes que es tpicamente empleada para almacenamiento temporal de datos o como rea de trabajo.

REGISTRO SEGMENTO EXTRA

Las referencias a direcciones de memoria empleadas por instrucciones para manejo de cadenas donde se emplea el registro de ndice DI tales como: STOS (STOre String), SCAS (SCAn String), MOVS (MOVe String) y CMPS (CoMPare String) son calculadas con relacin al registro SEGMENTO EXTRA.

SS REGISTRO SEGMENTO DE PILA


El SEGMENTO DE PILA es el ltimo registro de 16 bits de este grupo. El contenido de ste indica la direccin inicial de una estructura de PILA de 64 Kbytes dentro de la memoria de la computadora. Comnmente, los contenidos de los registros SP o BP son utilizados para indicar el direccionamiento de localidades de memoria dentro de la estructura de PILA.

REGISTRO SEGMENTO DE PILA

49
REGISTROS DE INDICE Y APUNTADORES
Este grupo de registros consiste de cuatro registros de 16 bits. Los REGISTROS DE INDICE son normalmente utilizados como apuntadores para accesar operandos que residen en localidades de memoria dentro del segmento de datos. Los REGISTROS APUNTADORES son usados normalmente para manipular datos almacenados en el rea de PILA (stack). Los registros de este grupo pueden tambin manejar la mayora de las operaciones aritmticas y lgicas.

SI REGISTRO DE INDICE FUENTE


Este registro se emplea como apuntador de direcciones de memoria para la transferencia de datos desde y hacia la memoria. Tiene una funcin especial en el manejo de cadenas de caracteres en el que puede ser utilizado como apuntador fuente de una localidad de memoria ya sea de byte o palabra en instrucciones tales como: LODS (LOaD String), CMPS (CoMPare String) y MOVS (MOV String). Es empleado adems para formar el modo de direccionamiento indexado con base, sumando la informacin contenida en ste al contenido del registro base BX para formar un apuntador de operandos almacenados en una rea de memoria. El registro SI puede ser autoincrementado o autodecrementado en operaciones que manejan cadenas de caracteres y puede participar en la mayora de las operaciones aritmticas y lgicas.

REGISTRO DE INDICE FUENTE

50

DI REGISTRO DE INDICE DESTINO


En forma similar al registro de ndice (SI), la funcin especial de este registro es tener la posibilidad de ser utilizado como apuntador DESTINO de una localidad de memoria de byte o palabra en instrucciones para el manejo de cadenas de caracteres tales como: SCAS (SCAn String), CMPS (CoMPare String), MOVS (MOV String) y STOS (STOre String).

REGISTRO DE INDICE DESTINO

Al igual que el registro de ndice fuente, en el direccionamiento indexado con base, el contenido del registro DI puede tambin ser agregado al contenido del registro base BX para formar un apuntador de operandos almacenados en localidades de memoria. Asimismo, el contenido del registro DI puede ser autoincrementado o autodecrementado en operaciones que manejan cadenas de caracteres y tambin puede participar en la mayora de las operaciones aritmticas y lgicas.

SP REGISTRO APUNTADOR DE PILA


Este registro apuntador es utilizado para manipular datos almacenados en el rea de memoria conocida como PILA. El contenido del registro SP hace referencia a la direccin ms alta de la estructura de la PILA. Esta estructura resulta muy conveniente en la implementacin de rutinas de servicio a interrupciones, en llamados a procedimientos o en secuencias de retorno de rutinas de servicio o procedimientos al salvar las direcciones de retorno en la localidad ms alta disponible en la PILA.

REGISTRO APUNTADOR DE PILA

51

BP REGISTRO APUNTADOR BASE


Este registro es normalmente usado como un apuntador adicional para manipular datos almacenados en la estructura de PILA de la memoria. Puede ser utilizado como un apuntador para recuperar parmetros o datos temporales que fueron salvados en la PILA por medio de instrucciones PUSH.

REGISTRO APUNTADOR BASE

En forma similar al registro BX, para direccionamientos indexados con BASE el contenido del registro BP puede ser sumado al contenido de los registros SI o DI para formar un apuntador para accesar operandos almacenados en localidades de memoria. El registro BP puede tambin participar en la mayora de las instrucciones aritmticas y lgicas.

IP REGISTRO APUNTADOR DE INSTRUCCIONES


El APUNTADOR DE INSTRUCCIONES es un registro de 16 bits anlogo al CONTADOR DE PROGRAMA definido en otros microprocesadores tradicionales. El contenido del registro Apuntador de Instrucciones refleja la direccin de desplazamiento dentro del segmento de 64 Kbytes del segmento de cdigo donde se encuentra almacenada la instruccin prxima a ser ejecutada por el microprocesador. Durante la ejecucin de programas, este registro es actualizado en tal forma que siempre apunta a la direccin de memoria donde se encuentra almacenada la instruccin prxima a ser leda por el procesador.

REGISTRO APUNTADOR DE INSTRUCCIONES

52
Los contenidos del APUNTADOR DE INSTRUCCIONES y del registro SEGMENTO DE CDIGO en conjunto, identifican una localidad dentro del espacio de memoria de 1 megabyte que direcciona el mp 8088. La direccin fsica de esta localidad de memoria tiene un valor de 20 bits que es generado haciendo un corrimiento a la izquierda de cuatro bits al registro CS y sumando el resultado al contenido del registro IP. Aun cuando los programas en lenguaje de mquina no tienen acceso real al registro APUNTADOR DE INSTRUCCIONES, el contenido de este registro puede ser modificado al ejecutar instrucciones de salto condicional o incondicional en llamados a procedimiento, en retorno de procedimientos y en retorno de rutinas de servicio a interrupciones.

PF REGISTRO PROCESADOR DE BANDERAS


El PROCESADOR DE BANDERAS es un registro de 16 bits que contiene informacin sobre el estado que guarda el microprocesador 8088. Este registro tiene seis banderas que indican el resultado de operaciones aritmticas o lgicas que son empleadas por instrucciones de salto condicional para modificar la secuencia de ejecucin del programa. Las banderas de estado son las siguientes:

REGISTRO PROCESADOR DE BANDERAS

Existen tres banderas de control, adicionales que pueden ser puestas a uno o cero directamente a travs de instrucciones para alterar el estado y la operacin del microprocesador.

53
Estas tres banderas de estado estn en el byte de mayor orden del registro de banderas y son: BANDERA DE DIRECCIN BANDERA DE HABILITACION DE INTERRUPCIN BANDERA DE TRAMPA

AF BANDERA DE ACARREO AUXILIAR


Esta bandera es usada para indicar cuando hubo un acarreo desde los cuatro bits menos significativos a los cuatro bits ms significativos de una cantidad de 8 bits. Esta bandera tambin indica cuando existe un prstamo desde los 4 bits ms significativos a los 4 bits menos significativos. Cuando esta bandera es puesta a uno, indica que un acarreo o un prstamo ha ocurrido. La bandera de acarreo auxiliar ocupa la posicin 4 del registro procesador de banderas. Si AL = 0000 1011 (+ 11) BL = 0000 1000 (+ 8) AL + BL = 0001 0011 (+ 19) y AF = 1

CF BANDERA DE ACARREO
La bandera de acarreo es usada para indicar si existe un acarreo desde el bit ms significativo o un prstamo hacia este mismo bit como resultado de una operacin de 8 16 bits. Cuando la bandera de acarreo es puesta a uno, nos indica que un acarreo o un prstamo ha ocurrido. Esta bandera hace posible la suma y resta de nmeros cuya magnitud es mayor a 16 bits. Las instrucciones de rotacin tambin pueden hacer uso de esta bandera para recuperar un bit especfico en un byte o palabra colocando el bit deseado en la bandera de acarreo. Existen instrucciones que pueden activar la bandera de acarreo como la instruccin STC o para desactivarla con la instruccin CLC.

54
La bandera de acarreo ocupa la posicin menos significativa del procesador de banderas. Si AL = 0000 0011 (+ 3) BL = 1111 1110 (- 2) AL + BL = 0000 0001 y CF = 1

OF BANDERA DE SOBREFLUJO
Esta bandera es usada para indicar cuando una operacin aritmtica resulta en un sobreflujo. Cuando esta bandera est puesta a uno, indica la condicin en la cual el bit ms significativo se ha perdido debido a que la magnitud del resultado excede la capacidad de 8 16 bits del 8088 en operaciones de 8 16 bits. Un procedimiento de interrupcin est disponible para manejar esta situacin haciendo uso de la instruccin INTO (interrupt on overflow). La bandera de sobreflujo ocupa la posicin 11 del Procesador de Banderas.

Si

AL = 0111 1101 (+125) BL = 0111 1111 (+127) AL + BL = 1111 1100 ( - 2) y OF = 1

SF BANDERA DE SIGNO
Puesto que los nmeros en sistemas basados en el microprocesador 8088 estn representados en complemento a dos, la bandera de signo indica el signo del resultado de una operacin o que el BIT ms significativo del resultado de una operacin de byte o palabra es uno. Si la bandera de signo est puesta a uno, el resultado es un nmero negativo. Si la bandera de signo est puesta a cero, el resultado es un nmero positivo. La bandera de signo ocupa la posicin 7 del Procesador de Banderas.

Si

AL = 0111 1101 (+125) BL = 0111 1111 (+127) AL + BL = 1111 1100 ( - 2) y SF = 1

55

PF BANDERA DE PARIDAD
La bandera de paridad es utilizada para indicar si existe un nmero par de bits en una cantidad de 8 bits o en los 8 bits menos significativos de una cantidad de 16 bits. Si la bandera de paridad est puesta a uno indica que existe un nmero par de bits puestos a uno en el resultado o que existe paridad par. Esta bandera es de gran utilidad en la verificacin de la integridad de la memoria de la computadora por medio de procedimientos de diagnstico de memoria o para deteccin de errores de paridad en procesos de transmisin de datos. La bandera de paridad ocupa la posicin nmero dos en el Procesador de Banderas.

Si

AL = 0000 1101 BL = 1111 1111 (AL) ( BL) = 0000 1101 y PF = 0

ZF BANDERA CERO
La bandera CERO es utilizada para indicar si el resultado de una operacin de 8 16 bits es cero. Cuando esta bandera est puesta a uno, el resultado de la operacin realizada es cero. La bandera Cero ocupa la posicin nmero 6 del Procesador de Banderas.

Si

AL = 0000 1101 BL = 1111 0000 (AL) ( BL) = 0000 0000 y ZF = 1

DF BANDERA DE DIRECCIN
La bandera de direccin es usada bsicamente para controlar operaciones que utilizan instrucciones para el manejo de cadenas.

56
Cuando la bandera DF est puesta a uno, las instrucciones son autodecrementadas o son procesadas de direcciones altas a direcciones bajas. El contenido de los registros de ndice SI y DI implicados en las operaciones de cadenas son decrementadas en uno o dos dependiendo si las instrucciones son para el manejo de byte o palabra. Si la bandera DF est puesta a cero, las instrucciones que manejan cadenas son autoincrementadas o son procesadas de direcciones bajas a direcciones altas. Los contenidos de los registros de ndice SI o DI implicados en las operaciones son incrementados en uno o en dos dependiendo si la instruccin es de byte o de palabra. La bandera de direccin ocupa la posicin 10 del Procesador de Banderas. La bandera de direccin puede ser puesta a uno o a cero por medio de las instrucciones STD (set direction) o CLD (Clear direction) respectivamente.

IF BANDERA DE INTERRUPCIN
La bandera de interrupcin es utilizada por programas para permitir o prevenir la aparicin de interrupciones enmascarables externas sobre la lnea INTR. Cuando la bandera de interrupcin est puesta a cero, la interrupcin est deshabilitada y los requerimientos externos de interrupciones enmascarables son ignorados. Esta no tiene efecto en las interrupciones no enmascarables que aparezcan sobre la lnea NMI o en interrupciones por software. La bandera de interrupcin ocupa la posicin 9 del Procesador de Banderas. La bandera de interrupcin puede ser puesta a uno o cero por medio de las instrucciones STI (set interrupt) y CLI (clear interrupt) respectivamente.

TF BANDERA DE TRAMPA
La bandera de trampa es utilizada bsicamente para habilitar la ejecucin de instrucciones paso por paso. Cuando la bandera TF est puesta a 1, automticamente el microprocesador genera una interrupcin interna despus de ejecutar cada instruccin. Esto

57
provee un mtodo conveniente para inspeccionar un programa en lenguaje de mquina conforme ste se va ejecutando instruccin por instruccin. La direccin del procedimiento paso por paso debe ser definida en las direcciones de memoria 00004h a 0007h. La rutina de servicio correspondiente a esta interrupcin puede ser escrita para desplegar informacin tal como el contenido de los registros del CPU y ciertas localidades de memoria inmediatamente despus de que una instruccin es ejecutada. La bandera de trampa ocupa la posicin 8 del Procesador de Banderas. La instruccin POPF (pop flag) puede ser usada para poner a uno o a cero la bandera de trampa.

Unidad de Ejecucin e Interfase de Canal


Tradicionalmente, los microprocesadores ejecutan un programa en lenguaje de mquina repitiendo en forma cclica los pasos siguientes: 1. 2. 3. 4. 5. Ciclo de Fetch, captura la instruccin a ejecutar desde la memoria; Decodificacin de la instruccin capturada; Lectura de operandos en caso de ser requeridos; Ejecucin de la instruccin; Almacn de resultados en la memoria en caso de ser requerido.

En otros microprocesadores, estos pasos tienen que realizarse en forma secuencial. La ejecucin de la instruccin en curso debe ser completada antes de iniciar la captura de una nueva instruccin. En el caso del microprocesador 8088, los pasos descritos anteriormente tambin son realizados, pero ubica los mismos en dos procesadores separados dentro de la CPU, estos procesadores se conocen como UNIDAD DE EJECUCIN y UNIDAD DE INTERFASE DE CANAL. La UNIDAD DE EJECUCIN es la encargada de la ejecucin de cada una de las instrucciones de un programa y la INTERFASE DE CANAL se encarga de la captura de instrucciones, de la lectura de operandos y de la escritura de resultados si es que la instruccin ejecutada as lo requiere. Las dos unidades trabajan de manera independiente. As, en la mayora de los casos es posible realizar la ejecucin de la instruccin en curso y la captura de la siguiente instruccin al mismo tiempo.

58
Este arreglo ayuda a incrementar la velocidad del ciclo de ejecucin de instrucciones, debido a que el tiempo requerido para la captura, prcticamente desaparece en la mayora de los casos al realizarse al mismo tiempo que la ejecucin de la instruccin leda previamente. Con esta arquitectura, la Unidad de Ejecucin puede ejecutar instrucciones que previamente han sido capturadas por la INTERFASE DE CANAL y formadas en una LINEA DE INSTRUCCIONES, constituida por un conjunto de registros FIFO (first input, first output), especficos para esta funcin. La UNIDAD DE EJECUCIN del 8088 contiene la Unidad Aritmtica y Lgica del microprocesador, los registros de trabajo y los apuntadores de memoria, as como el registro de estado de banderas. La UNIDAD DE EJECUCIN no tiene acceso a la memoria de la computadora de manera directa. Esta obtiene las instrucciones desde un rea de instrucciones provista por la INTERFASE DE CANAL. La INTERFASE DE CANAL (BIU) realiza todos los accesos a memoria y las operaciones del canal necesarias para la Unidad de Ejecucin. Captura las instrucciones en forma secuencial de un programa en lenguaje de mquina almacenado en la memoria de la computadora mientras la Unidad de Ejecucin est ocupada en la ejecucin de la instruccin en curso.

UNIDADES DEL MICROPROCESADOR 8088

59
El microprocesador 8088 tiene un rea de almacenamiento de 4 bytes de longitud conocido como COLA DE INSTRUCCIONES la cual puede almacenar hasta 4 bytes de la secuencia de instrucciones. La Interfase de Canal automticamente captura de la memoria el siguiente byte de instrucciones al momento en que una localidad de la LINEA DE INSTRUCCIOINES queda vaca y no existe requerimiento de lectura o escritura en memoria por la Unidad de Ejecucin. Si la Unidad de Ejecucin procesa una instruccin que requiere transferir el control del programa a otra localidad de memoria, la INTERFASE DE CANAL borra las instrucciones almacenadas en la LINEA DE INSTRUCCIONES e inicia su relleno con las instrucciones contenidas en las nuevas localidades a donde se efectu el salto. En la mayora de los casos, la Unidad de Ejecucin toma las instrucciones de la LINEA DE INSTRUCCIONES y no tiene que esperar a que stas sean capturadas.

Segmentacin de Memoria
El microprocesador 8088 puede direccionar hasta un megabyte de localidades de memoria, por lo que se requiere de un apuntador de 20 bits para habilitar el acceso al megabyte entero de espacio de memoria del 8088. Debido a que el registro apuntador de instrucciones y todos los otros registros apuntadores del procesador 8088 tales como el BX, SI, DI, BP y el registro SP son de 16 bits de ancho, el microprocesador no puede accesar las localidades de memoria directamente, lo hace mediante una lgica de segmentacin de memoria.

Organizacin de Segmentos
El microprocesador 8088 trabaja su espacio de memoria de un megabyte como un grupo de segmentos que pueden ser hasta de 64 Kbytes (65,536 bytes). La direccin inicial de cada segmento puede ser definida por el programa de aplicacin. La direccin base de cada segmento es calculada dividiendo la direccin fsica de la direccin inicial de cada segmento entre 16. Los registros de segmento almacenan esta direccin base de tal forma que el microprocesador puede manejar hasta cuatro segmentos de 64 Kbytes a la vez.

60
Los segmentos pueden ser contiguos, separados, parcialmente traslapados o incluso compartir las mismas reas de memoria. Una vez que un segmento es definido, los registros apuntadores pueden ser usados para direccionar un byte o una palabra dentro de un segmento especfico. Con este esquema de direccionamiento, el microprocesador 8088 puede accesar directamente solo 64 Kbytes de espacio de memoria pero puede direccionar hasta 1,048,576 bytes utilizando sus registros de segmento. Este es uno de los inconvenientes que tiene este microprocesador comparado con los esquemas de direccionamiento directo de otros procesadores como el 68000 de Motorola que puede accesar directamente hasta 16 millones de bytes de memoria utilizando sus registros internos de 32 bits como apuntadores. Puesto que el 8088 tiene cuatro registros de segmento, existen siempre cuatros segmentos direccionables en su espacio de memoria. Estos son: SEGMENTO SEGMENTO SEGMENTO SEGMENTO DE CDIGO DE DATOS EXTRA DE PILA

Las direcciones iniciales de cada segmento estn contenidas en los registros CS, DS, ES y SS respectivamente. SEGMENTO DE CDIGO. Representa un rea de memoria de 64 Kbytes de espacio de memoria que contiene las instrucciones de mquina que sern capturadas por la INTERFASE DE CANAL y ejecutadas posteriormente por la UNIDAD DE EJECUCIN. El contenido del registro APUNTADOR DE INSTRUCCIONES (IP), corresponde a la direccin de desplazamiento de la siguiente instruccin que ser capturada dentro del segmento de cdigo. SEGMENTO DE DATOS. Representa otra rea de memoria de 64 Kbytes que normalmente es empleada para almacenar datos del programa, variables y constantes. SEGMENTO EXTRA.- Proporciona un espacio de trabajo adicional de 64 Kbytes. SEGMENTO DE PILA.- Puede apilar dentro de su estructura de hasta 64 Kbytes parmetros y direcciones de retorno en el manejo de subrutinas.

61
Es posible escribir programas que contienen instrucciones, datos, variables, constantes y una pila, todo dentro del mismo segmento de memoria. Esto se realiza asignando todos los registros de segmento a la misma direccin base en tal forma que los cuatro segmentos de memoria estn traslapados en el mismo espacio de memoria. Esta estructura segmentada es til para realizar diseos de programas en forma modular y programacin estructurada donde programas grandes pueden ser divididos en varias unidades lgicas ms pequeas.

62 MICROCONTROLADOR 8031
La familia de microcontroladores MCS-51 es fabricada con tecnologa HMOS, esta permite una alta velocidad y densidad, tambin se encuentran en versin HCMOS que combina las caracteristicas mensionadas con atributos de bajo consumo de potencia. El resumen de caractersticas de la familia de microcontroladores MCS 51 se muestra en la siguiente tabla: Memoria ROM interna 4 K ROM 0K 4 K EPROM 8 K ROM 0K 8 K EPROM Memoria RAM interna 128 bytes 128 bytes 128 bytes 256 bytes 256 bytes 256 bytes Temporizadore s 2 2 2 3 3 3

No. parte 8051 8031 8751 8052 8032 8752

A travs de los puertos estan disponibles 32 lineas programables de entrada salida, una interfase para comunicacin serial, adems de ofrecer 5 fuentes de interrupcin. Algunas aplicaciones exceden los requerimientos estandares de temperatura, por tal motivo, la familia de microprocesadores MCS 51 ofrece opciones para rangos de temperatura extendida que va de los 40C hasta los +85C. Asimismo, ofrece una opcin para aplicaciones automotrices que cubre un rango de temperatura que va desde los -40C hasta los +125C. Por medio de la entrada de control EA, el microcontrolador 8031 puede ser habilitado para operar en modo de microprocesador. Esto le permite utilizar dos de sus puertos para generar un canal de datos de 8 bits y un canal de direcciones de 16 lineas, multiplexando las 8 lineas de menor orden en ambos canales, permitiendo con esto direccionar hasta 64Kbytes de memoria externa. Dentro de las caracteristicas del microcontrolador 8031, el modo de idle, congela a la CPU mientras que, la memoria RAM, contadores, puerto serial y el sistema de interrupcin continuan funcionando. El modo Power Down, salva el contenido de la memoria RAM pero congela el oscilador, deteniendo la operacin de las demas funciones.

63

MICROCONTROLADOR 8031

Terminales del microcontrolador 8031. Puerto 0 El puerto 0 es un puerto bidireccional de 8 lineas. Como puerto de salida, cada linea puede manejar hasta 8 cargas TTL. Cuando la linea EA esta habilitada, el puerto 0 representa las lineas de menor orden del canal de direcciones, multiplexado con el canal de datos. Puerto 1 Puerto 2 El Puerto 1 esta integrado por 8 lineas bidireccionales de entrada salida. El Puerto 2 esta integrado por 8 lineas bidireccionales. Cuando la linea EA esta habilitada, este puerto genera el byte de mayor orden durante el ciclo de fetch durante el acceso a la memoria de programa y durante el acceso a la memoria externa de datosque requiere direcciones de 16 bits.

64
RESET INICIALIZACION. Cuando en esta lnea se presenta un estado alto durante dos ciclos de maquina, causa que el dispositivo se reinicie. Un resistor interno de pulldown, permite que el circuito se reinicie al momento de energizar el dispositivo, empleando unicamente un capacitor externo a VCC. Habilitacion del LATCH de direcciones. Esta linea se pone en estado alto cuando en el canal multiplexado se encuentran presentes los bits de menor orden del canal de direcciones con el proposito de ser capturados por el LATCH de direcciones. En operacin normal, ALE es generada a una razon de 1/6 de la frecuencia del oscilador, y puede ser utilizado para temporizacion externa. PSEN Habilitacin de programa. Esta seal se activa para habilitar la lectura de la memoria de programa externa. Cuando el dispositivo esta ejecutando un programa desde la memoria externa, la seal PSEN se activa dos veces por cada ciclo de mquina. Habilitacin de Acceso Externo. La terminal EA debe ser conectada a VSS a modo de habilitar la lectura de instrucciones desde una memoria externa, cuyas direcciones van desde 0000H hasta 0FFFFH Habilitacin de escritura a memoria externa. Cuando la linea de control EA esta habilitada, WR es utilizada como seal de estrobo para la escritura a memoria externa. Habilitacion de lectura a memoria externa. Cuando la linea de control EA esta habilitada, RD es utilizada como seal de estrobo para la lectura a memoria externa. Interrupcion Externa 0. Cuando se presenta un nivel 0 en la linea INT0, se efectua una interrupcion de vector 0. Interrupcion Externa 1. Cuando se presenta un nivel 0 en la linea INT1, se efectua una interrupcion de vector 1 Entrada externa de reloj para el temporizador 0

ALE

EA

WR

RD

INTO

INT1 T0 T1

65
Entrada externa de reloj para el temporizador 1. Recepcion de datos. Es la linea de entrada de datos del puerto serial. Tranmision de datos. Es la linea de salida de datos del puerto serial

RXD

TXD

Registros Internos Los registros internos del microcontrolador 8031 son conocidos como Registros de Funcion Especial. El mapa del espacio de memoria interna llamada SFR (Special Function Resister) es mostrado en la siguiente fitura.
F8 F0 E8 E0 D8 D0 C8 C0 B8 B0 A8 A0 98 90 88 80 FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F 87

B ACC PSW
(T2CON) (RCAP2L) (RCAP2H) (TL2) (TH2)

IP P3 IE P2 SCON P1 TCON P0

SBUF TMOD SP TLO DPL TL1 DPH TH0 TH1 PCON

A REGISTRO ACUMULADOR
El registro A es el registro acumulador, su longitud es de 8 bits, es empleado como rea de trabajo para almacenar datos intermedios o resultados temporales.

66

B REGISTRO B
El registro B es un registro de 8 bits, utilizado durante las operaciones de multiplicacin y divisin. Para otras instrucciones, el registro B puede ser utilizado como cualquier registro de trabajo.

DPTR REGISTRO APUNTADOR DE DATOS


El registro DPTR consiste de dos bytes, el byte alto (DPH) y el byte bajo (DPL). Su funcion consiste bsicamente en contener una direccion de 16 bits. Este registro puede ser manipulado como un regisgtro de 16 bits o como dos registros independientes de 8 bits.

PSW REGISTRO PALABRA DE ESTADO


El registro PSW esta formado por un conjunto de celdas que contienen informacin sobre el estado que guarda el programa. Esta informacin es mostrada en la figura siguiente:

Você também pode gostar