Sei sulla pagina 1di 28

eman ta zabal zazu

universidad del pas vasco

euskal herriko unibertsitatea

INTRODUCCIN A LOS MICROPROCESADORES

J. A. SAINZ CATEDRTICO E.U. REA DE TECNOLOGA ELECTRNICA E.U.I.T.I. VITORIA-GASTEIZ 2000

1. HISTORIA DE LOS MICROPROCESADORES ............................................... 2 2. VENTAJAS DE LOS MICROPROCESADORES .............................................. 3 3. EL MICROPROCESADOR.................................................................................. 4 4. CONFIGURACIN DE UN SISTEMA MICROPROCESADOR .................... 5 4.1. Unidad de entrada-salida ........................................................................................ 7 4.2. Memorias ............................................................................................................... 7 4.3. Funciones y caractersticas del microprocesador (CPU) .......................................... 7 5. ARQUITECTURA DE LOS MICROPROCESADORES ................................... 8 5.1. Registros de direccionamiento PC, SP, IX............................................................... 9 5.2. Registros de datos ................................................................................................ 10 5.3. Registro de instrucciones IR.................................................................................. 11 5.4. Registro de estados (flags) .................................................................................... 11 5.5. Unidad Aritmtica y Lgica ALU.......................................................................... 13 5.6. Unidad de Control................................................................................................ 13 6. REPRESENTACIN Y EJECUCIN DE LAS INSTRUCCIONES ............... 15 7. TIPOS DE DIRECCIONAMIENTO .................................................................. 18 7.1. Direccionamiento directo o absoluto...................................................................... 18 7.2. Direccionamiento paginado ................................................................................... 18 7.3. Direccionamiento inmediato................................................................................... 18 7.4. Direccionamiento indexado ................................................................................... 19 7.5. Direccionamiento indirecto.................................................................................... 19 7.6. Direccionamiento implcito .................................................................................... 20 7.7. Direccionamiento relativo ...................................................................................... 20 8. TIPOS DE INSTRUCCIONES ........................................................................... 20 8.1. Instrucciones aritmticas y lgicas.......................................................................... 20 8.2. Instrucciones de transferencias de datos ................................................................ 20 8.3. Instrucciones de ruptura de secuencia.................................................................... 20 8.4. Instrucciones de manejo de la pila ......................................................................... 20 8.5. Instrucciones de entrada-salida.............................................................................. 21 8.6. Instrucciones especiales y de control ..................................................................... 21 9. SELECCIN DE MEMORIAS .......................................................................... 21 10. PERIFRICOS DE ENTRADA-SALIDA........................................................ 24 11. BIBLIOGRAFA ................................................................................................ 25

INTRODUCCIN A LOS MICROPROCESADORES

1. HISTORIA DE LOS MICROPROCESADORES

El primer microprocesador fue el 4004 de Intel, y apareci en el mercado en 1971. Este hecho fue accidental y se debi a un contrato entre la empresa Intel y una compaa japonesa de calculadores para el desarrrollo de un circuito integrado para dicho producto. El desarrollo no fue aceptado y la firma Intel se decidi por su comercializacin. El 4004 era un microprocesador de 4 bits realizado con tecnologa PMOS. El siguiente suceso importante en la historia de los microprocesadores fue la introduccin del 8008 de Intel en 1972, que consista en un microprocesador de 8 bits con tecnologa PMOS. La empresa Display Terminals Corporation realiz un concurso para la produccin de un procesador monoltico capaz de controlar un TRC. Se presentaron Intel y Texas Instruments y ambas obtuvieron el contrato del desarrollo. Poco despus Texas se retir, mientras Intel logr desarrollar el producto que cumpla todos los requisitos, pero tena un inconveniente, "era lento". El producto desarrollado era el 8008. Intel, que por aquel entonces se dedicaba fundamentalmente a la fabricacin de memorias se decidi a comercializarlo pensando sobre todo en vender ms memorias. Ante su sorpresa, las ventas del 8008 crecieron rpidamente e inmediatamente se dieron cuenta de la gran importancia de este nuevo producto, el microprocesador; para el siguiente ao 1973, Intel lanz al mercado el sucesor del 8008, el 8080 en tecnologa NMOS y por tanto ms rpido (unas diez veces ms que el 8008). Posteriormente los competidores de Intel desarrollaron sus propias versiones, Motorola el 6800, Rockwell el PPS8, Signetics el 2650.

La tercera generacin de micros de 8 bits fueron los sucesores del 8080 y 6800, tales como el Z80 de Zilog, el 8085 de Intel, el 6502 de Rockwell y Mos Technology, y tambin los 2

microcomputadores monopastilla el 8048 de Intel, el PPS4 de Rockwell, el TMS 1000 y el 9940 de Texas Instruments.

En la actualidad hay disponibles en el mercado microprocesadores de 16 y 32 bits. Entre ellos podemos citar de la casa Motorola los microprocesadores 68000, 68008, 68020; de la casa Intel los 8086, 80186, 80286, 80386, 80486, Pentium y el Z8000 de Zilog.

2. VENTAJAS DE LOS MICROPROCESADORES

Los microprocesadores estn desplazando a la electrnica tradicional de una parte importante de sus campos de aplicacin y encontrando utilidades en casi todos los campos. Las dos ventajas ms importantes del microprocesador son:

1) Emplear menos componentes. Un sistema microcomputador al emplear menos componentes reduce el tamao del equipo, su consumo y aumenta la fiabilidad al realizar menos conexiones. Estas caractersticas reducen el coste del sistema.

2) Programabilidad. En los sistemas clsicos realizados mediante lgica cableada, cada producto realizaba una nica funcin sin posibilidad de poder modificar el trabajo realizado a no ser que se cambiara el diseo. Un sistema programable permite modificar la funcin que realiza sin ms que variar el programa. Dicho en pocas palabras, la programacin permite disponer de mdulos estndar de hardware, de forma que cambiando el programa (software) la tarea que realiza el sistema es distinta.

La mquina programada ejecuta un conjunto de operaciones bsicas que se realizan al recibir 3

el cdigo de operacin de cada instruccin. En cada aplicacin las instrucciones a realizar se ordenan adecuadamente formando un programa. La unidad central de proceso CPU consta de un subsistema de proceso y otro de control. La unidad de control decodifica las instrucciones del programa y genera las seales de control para que la unidad de proceso (ALU) ejecute dichas instrucciones. Adems suministra las seales de control de los componentes que componen el sistema. Las instrucciones que constituyen el programa se almacenan en una memoria que tambin contiene los datos que procesa y obtiene la mquina.

La mquina programada necesita de unos elementos de adaptacin con los perifricos que le comunican con el mundo exterior. Se encargan de transmitir datos a procesar o resultados que se obtienen en el proceso, son los mdulos de entrada-salida I/O.

3. EL MICROPROCESADOR

Vamos a intentar acotar los lmites actuales de lo que los fabricantes y usuarios llaman microprocesador. A lo largo de los cursos de electrnica se desarrollan unos subsistemas digitales cada vez ms complejos (puertas, circuitos combinacionales, circuitos secuenciales) que se integran en pastillas y que interconectados pueden realizar operaciones de procesos de datos. Un microprocesador sera un conjunto de tales circuitos, integrados e interconectados todos sobre un nico substrato semiconductor, de forma que puede realizar una secuencia de operaciones aritmticas y lgicas controladas.

Hay una serie de matices que conviene observar:

1.- El microprocesador realiza una secuencia de operaciones, pero esta secuencia no es 4

nica, sino que es programable mediante instrucciones. Las instrucciones residen en una memoria a la que accede el microprocesador, extrae una instruccin, la decodifica, la ejecuta y vuelve por otra instruccin y as sucesivamente, salvo que reciba una instruccin de parar. Las operaciones que implica cada instruccin (microprogramacin firmware) se realizan en sincronismo con un tren de impulsos RELOJ. El microprocesador se relaciona en el exterior mediante unos caminos de datos (BUSES) que permiten el intercambio de informacin digital entre el microprocesador y el exterior. Se puede decir que un microprocesador es una parte de un ordenador, la encargada del control y el proceso de la informacin llamada CPU (unidad central de proceso). Se podra pensar que la CPU de un ordenador es un microprocesador, a veces es as, pero tambin la CPU puede realizarse por medio de subsistemas MSI y LSI interconectados (puertas, registros, contadores, sumadores, etc.). La mayor parte de los ordenadores personales emplean un microprocesador como CPU. Un microprocesador no es capaz de hacer nada por s solo, necesita como mnimo una memoria de la que extraer las instrucciones y unidades de entrada salida I/O para comunicarse con el mundo exterior. El conjunto formado por el microprocesador, memoria y unidades de I/O suele denominarse sistema microprocesador y es equivalente a un ordenador. Generalmente los fabricantes, adems del microprocesador fabrican las memorias, las unidades de entrada-salida y otros perifricos que permiten al usuario realizar un sistema microprocesador a la medida de sus necesidades.

2.- El microprocesador es un circuito integrado realizado en VLSI sobre un nico substrato. Este concepto tambin puede ampliarse, ya que existen microprocesadores que incluyen memoria y puertas de entrada salida (microcontroladores monopastilla).

4. CONFIGURACIN DE UN SISTEMA MICROPROCESADOR 5

Un diagrama bsico se indica en la figura 1.

Se compone de tres bloques enlazados por buses. Esta estructura corresponde a la organizacin de Von Newmann.

Los buses son de tres tipos dependiendo del tipo de informacin que transporten : - Bus de datos. Circulan los datos que llegan o salen del procesador por la unidad de entradas-salidas, o los resultados parciales que la CPU lee o escribe en memoria. El bus de datos es bidireccional. 6

- Bus de direcciones. Partiendo del microprocesador, enva en todo momento la direccin de la posicin de memoria o perifrico donde se encuentra la instruccin o el dato que se debe procesar. El bus de direcciones es unidireccional. - Bus de control. Por el que el microprocesador transmite y recibe seales que controlan el funcionamiento de todo el sistema.

4.1. UNIDAD DE ENTRADA-SALIDA Contiene una serie de registros, puertas y controles que permiten la conexin al microprocesador de una serie de perifricos de comunicacin con el exterior. De esta forma la CPU tiene una nica entrada-salida independiente del tipo de perifrico que se conecte. Los perifricos que se conecten dependern de la aplicacin, por ejemplo teclado, CRT, modem, convertidor A/D, sensores, rels, displays, sealizaciones, etc.

4.2. MEMORIAS Almacenan la informacin del sistema. Son de dos tipos :

- RAM para almacenar datos variables, tambin pueden almacenar programas, aunque stos se perderan al dejar de alimentar al sistema. Su capacidad es variable y depende de la capacidad de direccionamiento del microprocesador. Generalmente es modular, componindose de uno o varios circuitos integrados. La longitud de la palabra de memoria viene impuesta por la CPU; para microprocesadores de 8 bits se necesitarn memorias cuyas palabras tengan 8 bits (1 byte). Para 8088-8086 que son de 16 bits, memoria bloque par e impar de 8 bits cada uno. A0=0 bloque par (banco bajo); A0=1 bloque impar (banco alto).

- ROM se emplean para almacenar el programa y datos fijos, Respecto a la capacidad y longitud hay que decir lo mismo que para las RAM.

4.3. FUNCIONES Y CARACTERSTICAS DEL MICROPROCESADOR (CPU) Es la parte encargada del control y realiza las operaciones aritmticas y lgicas del proceso de datos.

Las funciones bsicas de la CPU son : 1. Decodificar las instrucciones que extrae de la memoria. 2. Generar las seales de control para la ejecucin de las instrucciones. 3. Ejecucin de las instrucciones por medio de la unidad arimtica y lgica (ALU). 4. Almacenamiento temporal de los datos en proceso mediante registros. 5. Generacin de seales de tiempos que marcan el ritmo del proceso.

Las caractersticas ms importantes de la CPU son : 1. Tamao de la palabra que es capaz de procesar. Este tamao viene determinado por la longitud de sus registros y por la longitud de la palabra que puede procesar la ALU. 2. Juego de instrucciones que el microprocesador puede ejecutar. 3. Posibilidad de interrupciones, que permiten alterar la secuencia normal del programa debido a una causa externa. 4. Registros de trabajo. 5. Tiempo de ciclo de instruccin que es el tiempo medio que tarda el microprocesador en buscar y ejecutar una instruccin.

5. ARQUITECTURA DE LOS MICROPROCESADORES (8 bits).

Como puede observarse en la figura 2, consta de los siguientes elementos.

5.1. REGISTROS DE DIRECCIONAMIENTO PC, SP, IX.

Son registros dobles de 16 bits destinados a almacenar direcciones. Estn conectados al bus de direcciones a travs del registro de direcciones AR (Address Register). Estos registros se dividen en dos bytes, el byte de mayor peso se denomina H (high) y el byte de menor peso L (low).

5.1.1. Contador de programa PC (Programa Counter) Proporciona en cada momento la direccin de la memoria donde se encuentra la siguiente instruccin que hay que ejecutar. 9

El contenido del PC se manda al bus de direcciones a travs del registro de direcciones AR, seleccionndose la posicin de memoria que contiene el cdigo de operacin de la instruccin, esta informacin se transfiere al bus de datos hasta el registro de datos DR y al registro de instrucciones IR (en la fase de bsqueda), el decodificador de instrucciones de la unidad de control decodifica la instruccin y produce las seales de control necesarias para ejecutar la instruccin en curso. Una vez finalizada la instruccin el PC se actualiza (incrementos de 1, 2 3 unidades) conteniendo la direccin de la siguiente instruccin. nicamente en casos de ruptura de secuencia de programa, se producen cambios bruscos en el contenido del contador del programa.

5.1.2. Puntero de la pila SP (Stack Pointer) La pila (stack) es una memoria de lectura-escritura tipo LIFO (last input-first output) ltimo en entrar primero en salir, y resulta indispensable para trabajar con interrupciones y subrutinas. El puntero de la pila SP contiene la direccin del ltimo byte introducido en el stack. El puntero de la pila es un registro doble de 16 bits. La gestin de la pila se realiza por programa (software).

5.1.3. Registro ndice IX El indexado es un modo de direccionamiento (forma de obtener el operando de una instruccin) que no disponen todos los microprocesadores. La direccin donde se encuentra el operando se obtiene sumando o restando un desplazamiento al contenido del registro ndice IX.

5.1.4. Registro de direcciones AR (Address Register) Los registros de direccionamiento citados PC, SP, IX transfieren sus contenido al bus de direcciones externo a travs del registro de direcciones AR. Bsicamente este registro acta como buffer para las seales que salen al bus de direcciones.

10

5.2. REGISTROS DE DATOS Son registros de 8 bits, aunque algunos microprocesadores pueden actuar sobre dos de ellos de forma simultnea, actuando en este caso como un nico registro de 16 bits.

5.2.1. Registros de propsito general Son necesarios pues contienen operandos que pueden ser manejados por la ALU de una forma ms rpida que si estuvieran en memoria. Son registros de 8 bits conectados al bus de datos bidireccional interno. La finalidad de estos registros no est prefijada de antemano y por esta razn se denominam de propsito general.

5.2.2. El acumulador -AEn todos los microprocesadores muchas de las operaciones que realiza la ALU (unidad aritmtica y lgica) uno de los operandos est contenido en el registro denominado acumulador A, el otro operando le llega a la ALU a travs del bus de datos interno procedente de otro registro interno, de la memoria o de algn perifrico. El resultado de la operacin realizada por la ALU se deposita en el acumulador. Las operaciones de entrada-salida a los perifricos se realizan a travs del acumulador. El acumulador es un registro de mucha importancia sobre el que se realizan operaciones de lectura, escritura y clculo.

5.2.3. Registro de datos -DRTiene una funcin similar al registro de direcciones AR, transmite las seales al bus de datos reforzando el nivel de las mismas. Este registro, a diferencia del AR, es bidireccional.

5.3. REGISTRO DE INSTRUCCIONES -IRLa primera fase en la ejecucin de una instruccin es la fase de bsqueda (opcode Fetch) en la que se lee el cdigo de operacin de la instruccin (1 byte) de la memoria. Este cdigo de 11

operacin, una vez ledo, se almacena en el registro de instruccin IR. En una segunda fase la unidad de control decodifica el cdigo de operacin y genera las seales de control adecuadas para la ejecucin de dicha instruccin.

5.4. REGISTRO DE ESTADOS (FLAGS) En realidad este registro puede considerarse como una serie de registros de 1 bit, denominados bits de condicin o flags. Estos bits pueden modificarse por ciertos resultados producidos en operaciones realizadas por la ALU. Estos bits pueden ser consultados por algunas instrucciones, sobre todo en las de ruptura de secuencia condicional.

5.4.1. Acarreo -C- (Carry) El bit de acarreo tiene dos funciones distintas : a) Acarreo aritmtico, es decir el noveno bit que puede generarse durante una operacin aritmtica. Es un desbordamiento del resultado de ocho bits, por ejemplo al sumar : FC 81 17D Carry = 1 11111100 10000001 ----------------01111101

b) El acarreo sirve tambin como posicin de desbordamiento durante operaciones de rotacin y desplazamiento. El acarreo en este caso es como el noveno bit del registro.

5.4.2. Bit de signo -SEst conectado al bit 7 (MSB) del resultado. En las operaciones en complemento a dos el bit 7 es el bit de signo. Un 1 en este bit indica que el nmero es negativo.

5.4.3. Bit de cero -ZEste bit se pone a "1" si el resultado de la operacin es cero.

5.4.4. Bit de paridad -P12

Este bit informa sobre el nmero de bits que toman el valor lgico 1 en un registro (normalmente el acumulador), se suele emplear para detectar si ha habido errores en la recepcin. Si se trabaja con paridad par, el bit de paridad se pondr a "1" , si el nmero de unos es par.

5.4.5. Bit del estado de las interrupciones -IEste bit indica si las interrupciones estn permitidas o no. Por ejemplo si est a "1" las interrupciones estn permitidas, mientras que si est a "0" estaran bloqueadas. Los registros de condicin junto con el acumulador se denominan palabra de estado del programa PSW (Program Status Word). Es la informacin imprescindible que se debe guardar (en el stack) cuando se suspende un programa, por ejemplo, debido a la aceptacin de una interrupcin. En muchos casos se guarda el contador del programa PC, PSW y los registros generales, de esta forma se podr recuperar toda esta informacin al volver al punto del programa donde ste se encontraba cuando se suspendi y en el mismo estado. La mayor parte de las instrucciones realizadas por el procesador influyen en los registros de condicin, siendo muy importante conocer en cada caso qu bits de estado modifican.

5.5. UNIDAD ARITMTICA Y LGICA ALU Realiza las operaciones aritmticas, lgicas de desplazamiento y de rotacin. El acumulador puede ser fuente y destino de una operacin. Normalmente en el acumulador se encuentra uno de los operandos, el otro operando se suministra a travs del bus de datos interno procedente de un registro interno, memoria o perifrico y el resultado se deposita en el acumulador. Las operaciones realizadas por la ALU pueden modificar los registros de estado.

5.6. UNIDAD DE CONTROL Dotada del decodificador de instrucciones; este elemento recibe el cdigo de operacin de las instrucciones desde la memoria por el bus de datos, almacenndolo temporalmente en el registro de instrucciones IR. El decodificador de instrucciones lo interpreta, generando las 13

seales de control adecuadas para ejecutarla. La unidad de control genera las seales de sincronismo para la ALU, la memoria y los circuitos de entrada-salida. Se comunica con el resto del sistema con el bus de control. Las lneas del bus de control podramos clasificarlas en los siguientes tipos: 5.6.1. Control de lectura-escritura Gobiernan las operaciones de lectura y escritura entre el microprocesador y los circuitos externos de memoria o perifricos de entrada-salida. Orden de lectura RD (Read) (Salida). Orden de escritura WR (Write) (Salida). Algunos microprocesadores distinguen entre memoria y dispositivos de entrada-salida mediante una lnea de control IO/M (entrada-salida/memoria). En estos casos el microprocesador dispone de instrucciones especficas de entrada-salida, ocupando un mapa de memoria especfico para perifricos distinto del mapa de memoria propiamente dicho. En caso contrario se reserva dentro del espacio de direcciones de memoria una parte para asignarlo a entrada-salidas.

5.6.2. Control de interrupciones Peticin de interrupcin INTR (Entrada) Reconocimiento de interrupcin INTA (Salida) Hay microprocesadores que pueden tener ms lneas de interrupcin.

5.6.3. Acceso directo a memoria En las operaciones de entrada-salida el microprocesador controla la transferencia de datos. La informacin de un perifrico que quiere almacenarse en la memoria se transfiere del perifrico al microprocesador y ste lo enva a la memoria. De la misma forma una informacin que hay que enviar desde la memoria a un perifrico se realiza a travs del microprocesador. En algunos procesos este envo-recepcin de informacin podra resultar muy lento y para 14

evitarlo se emplean perifricos capaces de transferir datos desde o hacia la memoria desde el perifrico sin pasar por el microprocesador, son los dipositivos de acceso directo a memoria DMA (Direct Memory Access). El DMA es un procesador especial que se conecta a los buses de direcciones, datos y control. Cuando el DMA no trabaja sus lneas presentan alta impedancia. Cuando trabaja, el DMA necesita utilizar el bus del sistema y para ello existen dos seales de control. HOLD (Entrada). Es una peticin al microprocesador para que se detenga y ponga los buses en estado de alta impedancia. Cuando el microprocesador atiende la peticin de HOLD enva al exterior una seal de reconocimiento que se conecta al DMA. HOLDA (Hold acknowledge) (Salida). Reconocimiento de HOLD. Es la indicacin de que el microprocesador se ha desconectado de los buses y el DMA puede apropiarse de los mismos.

5.6.4. Peticin de RESET y reconocimiento de RESET (Reset-in y Reset-out) Cuando se activa la lnea de entrada RESET, acta como si fuera una interrupcin que inicializa el sistema. La seal de salida RESET informa del estado del reset y se conecta a algunas unidades de entrada-salida para inicializarlas. En muchos microprocesadores al actuar el RESET el contador de programa PC se carga con 0000H. Algunos bits de condicin son afectados y el microprocesador se coloca en fase de bsqueda.

5.6.5. Lneas de sincronismo En muchos microprocesadores es una nica lnea de reloj (Clock). Esta seal determina la duracin de las instrucciones, los instantes en que entran o salen datos, seales de control, etc. El conjunto de las lneas del bus de direcciones A0-A15 unidireccionales y triestado, junto con las del bus de datos D0-D7 bidireccionales y triestado y las del bus de control constituyen el bus del sistema. 15

En muchas ocasiones un sistema microcomputador ha de conectarse con otro microcomputadores o sistemas con los que debe establecer un dilogo para intercambiar informacin. Se establece de esta forma el concepto de bus externo. Algunos de estos buses estn normalizados entre ellos se podran citar el S-100, LSI-11 (Digital Equipment Corporation DEC), Multibus (Intel), IEEE-488 (GPIB, HPIB).

6. REPRESENTACIN Y EJECUCIN DE LAS INSTRUCCIONES

La finalidad de un microprocesador consiste en procesar unos datos de acuerdo con un programa formado por una secuencia de instrucciones que se encuentra almacenado en memoria. El formato de una instruccin puede estar constituido por cuatro campos : etiqueta, cdigo de operacin, operando y comentarios. - La etiqueta es siempre opcional, es un smbolo cuyo valor corresponde a la posicin de memoria donde se encuentra la instruccin. - Cdigo de operacin. En los microprocesadores de ocho bits ocupa un byte y determina el tipo de operacin que realiza la instruccin. Al emplear ocho bits el nmero mximo de instrucciones es de 256, aunque normalmente no se utilizan todas las combinaciones posibles. Los cdigos empleados constituyen el lenguaje mquina que entiende el microprocesador. - Operando . Dependiendo del tipo de instruccin pueden existir: ninguno, uno o dos bytes en los que figurarn los datos sobre los que se efectuar la operacin indicada por el cdigo de operacin. - Comentarios. Este campo es opcional y sirve para que el programa tenga una mayor comprensin. ETIQUETA CDIGO DE OPERACIN OPERANDO COMENTARIOS SALTO: MOV A,#0BAH ;Cargar el registro 16

A con el valor BA Prescindiendo de los campos de la etiqueta y los comentarios que son opcionales (no ocupan memoria de programa, no ocupan cdigo mquina), una instruccin puede constar de uno, dos o tres bytes.

Instrucciones de un byte D7 D6 D5 D4 D3 D2 D1 D0 Ejemplos: MOV A,B ORL A,B Carga el acumulador con el contenido del registro B. Realiza la funcin OR entre el contenido del acumulador y el contenido del registro B. El resultado se deposita en el acumulador. Cdigo de operacin

Instrucciones de dos bytes El primer byte corresponde al cdigo de operacin y el segundo al operando. 1er Byte 2 Byte D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 Cdigo de operacin Operando

Ej. MOV A, #0FH

Carga el acumulador con 0F.

Instrucciones de tres bytes El primer byte corresponde al cdigo de operacin y el segundo y tercero al operando. 1er Byte 2 Byte 3erByte Ej. MOV D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 ) D7 D6 D5 D4 D3 D2 D1 D0 ) DPTR, #2000H Operando Cdigo de operacin

Carga el puntero de datos con 2000 (DPH=20 y DPL=00).

La ejecucin de un programa consiste en una secuencia de operaciones de escritura y lectura, transfirindose un byte entre la CPU y una direccin de memoria o dispositivo de entrada17

salida y viceversa. Capa operacin de lectura o escritura es un CICLO DE MQUINA. La ejecucin de una instruccin es un CICLO DE INSTRUCCIN y est constituida por varios ciclos mquina. A su vez cada ciclo mquina est constituido por varios CICLOS DE RELOJ (perodos de reloj del sistema).

La ejecucin de una instruccin consta de dos fases : - Fase de bsqueda (Opcode Fetch) y decodificacin. - Fase de ejecucin. La fase de bsqueda consiste en la lectura del cdigo de operacin de la instruccin. El contador del programa enva al bus de direcciones la posicin donde se encuentra el cdigo de operacin de la instruccin. La CPU genera una orden de lectura y el cdigo de operacin se deposita en el bus de datos desde donde se transfiere al registro de instrucciones IR. Este byte es decodificado por la unidad de control y determina si es una instruccin multibyte. En este segundo caso se necesitarn ms ciclos mquina (lectura de memoria) par obtener la instruccin completa. El destino de estos bytes ya no es el registro de instruccin, sino algn registro de uso general o el acumulador. Aqu finaliza la fase de bsqueda y decodificacin.

La fase de ejecucin en algunas instrucciones se realiza en el ltimo ciclo de reloj de la fase de bsqueda, otras instrucciones requieren nuevos ciclos mquina para su ejecucin. En todo el proceso es la unidad de control quien genera las rdenes necesarias para realizar la instruccin.

7. TIPOS DE DIRECCIONAMIENTO

Son los mtodos que existen para indicar, a partir del cdigo de operacin, el lugar donde se encuentra el operando. 18

7.1. Direccionamiento directo o absoluto El segundo y tercer byte de la instruccin contienen la direccin de memoria donde se encuentra el operando. Ej.: LDA 20F5H (8085)

El acumulador se carga con el contenido de la posicin de memoria 20F5.

7.2. Direccionamiento paginado La memoria es como si estuviera dividida en pginas (64K=256 pginas de 256 posiciones). El segundo byte representa la posicin dentro de una de las 2 8=256 pginas de que consta la memoria. Algunos microprocesadores pueden seleccionar la pgina y en otros puede ser una pgina fija por ejemplo la 00, con lo que la direccin absoluta estara comprendida entre 0000 y 00FF. Ej. STA A,20 Almacena el contenido del acumulador en la posicin 20H de la pgina 00 (direccin absoluta 0020). (8085)

7.3. Direccionamiento inmediato El segundo byte de la instruccin corresponde al dato. Ej. MOV A,#80H El acumulador se carga con 80H.

7.4. Direccionamiento indexado El segundo byte de la instruccin se suma o resta al contenido del registro indice IX y el resultado corresponde a la direccin del operando.

Ej. ADD A IX,25

Sumar al acumulador el contenido de la direccin (IX)+25. Si IX=60, el dato a sumar se encuentra en la direccin 0085. (8085)

7.5. Direccionamiento indirecto 19

El segundo y el tercer byte de la instruccin es la direccin cuyo contenido y el de la siguiente posicin de memoria, es la direccin del operando. Ej. STAI F014H El contenido del acumulador se almacena en la direccin contenida en las posiciones de memoria F014 y F015. (8085)

Este direccionamiento no se emplea mucho, pero s es ms frecuente el direccionamiento indirecto por registro.

Ej. MOVX A, @DPTR

El contenido del acumulador se almacena en la posicin de memoria cuya direccin est contenida en el par de registros DPH y DPL (DPTR).

7.6. Direccionamiento implcito El operando se encuentra en un registro al que expresamente hace referencia la instruccin. Ej. MUL A,B Multiplicacin entre el acumulador y el registro B.

7.7. Direccionamiento relativo El valor absoluto de la direccin del operando se obtiene sumando el segundo byte de la instruccin con el contenido del contador del programa PC.

8. TIPOS DE INSTRUCCIONES De acuerdo con el tipo de funciones que realizan se podran clasificar en :

8.1. Instrucciones aritmticas y lgicas Entre la primeras se pueden citar instrucciones que realizan sumas, restas, incrementosdecrementos, multiplicaciones y divisiones. Las segundas realizan funciones lgicas como 20

AND, OR, OR-Exclusiva, complementacin. En este grupo pueden incluirse las instrucciones de comparacin, desplazamiento y rotaciones.

8.2. Instrucciones de transferencia de datos Trasladan datos entre la memoria y los registros de la CPU y viceversa e intercambios entre registros de la CPU.

8.3. Instrucciones de ruptura de secuencia Pueden ser de tipo salto sin retorno, llamadas a subrutinas y retornos de subrutinas. Estas instrucciones pueden ser adems incondicionales o condicionales, en este segundo caso la condicin ser algn flag del registro de estados. Antes de saltar a una subrutina el contador del programa se guarda en la pila (stack), para poder retornar al programa principal una vez ejecutada la subrutina. Al finalizar la subrutina, hay que colocar una instruccin de retorno (RET) que devuelve al contador del programa la direccin de la siguiente instruccin del programa principal previo a la llamada a la subrutina.

8.4. Instrucciones de manejo de la pila Permiten almacenar datos en el tope de la pila (PUSH) y sacar datos de la misma (POP). El puntero de la pila se actualiza con estas instrucciones y apunta siempre al tope de la misma ( direccin del ltimo byte introducido en el stack).

8.5. Instrucciones de entrada-salida Las instrucciones de entrada-salida (IN-OUT) son equivalentes a las de escritura y lectura de memoria. Su direccionamiento suele ser ms corto y se activan lneas de control especficas I0/M,_=1 indicando que la operacin se realiza sobre la unidad de entrada-salida.

21

8.6. Instrucciones especiales y de control Instruccin de parar el programa HLT (Halt), de este estado se sale con un reset o una interrupcin. Instruccin de no operacin NOP, el microprocesador consume un tiempo sin hacer nada, se puede emplear para rellenar posiciones de memoria y dejar el resto del programa sin modificar. Instrucciones de control de interrupciones, permiso o deshabilitacin de interrupciones, mscaras de interrupciones, interrupciones pendientes.

9. SELECCIN DE LAS MEMORIAS

Para seleccionar las diferentes posiciones de memoria se emplea el bus de direcciones. Como los microprocesadores de 8 bits emplean 16 lneas de direccin, se pueden seleccionar 216 posiciones de memoria. El mapa de memoria comprende desde 0000H hasta FFFFH. Las memorias utilizadas por los microprocesadores suelen ser del tipo no voltiles (ROM, EPROM) para programas y datos fijos, y voltiles (RAM) para datos variables. Normalmente se emplearn diferentes circuitos integrados, necesitando cada uno de ellos una lnea de seleccin del dispositivo (chip select) y un cierto nmero de lneas para acceder a las diferentes posiciones de la misma. Se emplean normalmente dos mtodos de seleccin para acceder a una posicin de memoria, la seleccin lineal y la seleccin decodificada. La seleccin lineal consiste en utilizar una lnea del bus de direcciones (convenientemente adaptada) para el chip select de cada circuito integrado de memoria. Tiene la ventaja de la sencillez y suele emplearse para pequeos sistemas.

Ejemplo.

Una EPROM de 2 kbytes. Una RAM de 2 kbytes.

Cada memoria necesita 11 lneas para seleccionar sus clulas A0-A10 y otra adicional para el 22

chip-select. Para el chip-select de la EPROM se puede emplear la A11 (invertida) y para la RAM la A12 (invertida). Con estas conexiones la EPROM se seleccionara :

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X 0 1 1 1 1 1 1 1 1 1 1 1 1

0800H 0FFFH

La lnea A12 no puede estar a 1 pues si fuera as, se seleccionaran simultneamente la EPROM y la RAM con el consiguiente conflicto. Como las lneas A15, A14, A13 pueden tomar cualquier valor, realmente la EPROM tambin se seleccionara con otras muchas combinaciones del bus de direcciones. Por ejemplo la primera posicin de la EPROM se seleccionara con cualquier combinacin de A15, A14, A13 manteniendo A12=0 A11=1 y A10...A0 = 0.

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 0 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . Para seleccionar la RAM, A12=1 A11=0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 X X X 1 0 1 1 1 1 1 1 1 1 1 1 1

0800H 2800H 4800H 6800H 8800H A800H C800H E800H

1000H 17FFH

Tambin se seleccionar con otras muchas direcciones pues A15, A14, A13 pueden tomar 23

cualquier valor. La seleccin decodificada puede permitir el acceso a todo el mapa de memoria. Los chipselect de cada memoria se obtienen por medio de un decodificador. Uno de los decodificadores empleados con esta finalidad es el 8205 de Intel que es equivalente al circuito TTL 74LS138, ver figura 3.

Para que alguna salida se active (nivel bajo), tiene que estar permitida la decodificacin E1=E2=0 y E3=1. Dependiendo de los niveles en CBA se activar una de las salidas.

La tabla de verdad del circuito es : CBA 000 001 010 011 100 101 111 S0 S1 S2 S3 S4 S5 S6 S7 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0

Si la decodificacin no est permitida, todas las salidas estarn a nivel alto.

El mapa de memoria se podra dividir en ocho grupos de 8K, empleando una de las salidas del decodificador para cada grupo de memoria. De esta forma se podran utilizar 8 memorias

24

de hasta 8K cada una de ellas, ver figura 4.

Cada bloque de 8K a su vez podra dividirse en otros ocho grupos de 1K con otro decodificador y de esta forma seran accesibles los 64K del mapa de memoria en bloques de

1 Kbyte, ver figura 5.

10. PERIFRICOS DE ENTRADA SALIDA

Cada microprocesador dispone de una serie de circuitos que facilitan la interconexin del mismo con el mundo exterior. A este tipo de circuitos se les conoce por familia microcomputadora y se les denomina perifricos de entrada-salida.

Algunos realizan una funcin especfica como por ejemplo los temporizadores (Timers), controladores de interrupciones, acceso directo a memoria (DMA), controladores de discos flexible, controlador de TRC, controlador de teclado, controlador de displays, etc. Otros perifricos son ms genricos y permiten el intercambio de informacin con el mundo exterior, entre ellos se pueden citar los perifricos para transmisin-recepcin en paralelo y los perifricos para transmisin-recepcin serie. Estos ltimos convierten la informacin paralelo enviada por la CPU, en un formato serie y la envan al exterior y reciben una informacin serie convirtindola en paralelo a la que accede la CPU. Hay microprocesadores que incluyen la zona de los perifricos dentro del mapa de memoria, 25

por lo que no existe distincin entre una lectura-escritura en memoria o un perifrico. Otros microprocesadores disponen de lneas de control que permiten tratar a los perifricos de distinta forma que a la memoria, pudiendo en este caso tener una mapa de la zona de entradasalida distinto del mapa de memoria.

11. BIBLIOGRAFA

CIRCUITOS DIGITALES Y MICROPROCESADORES Taub Mc Graw-Hill 1983 DEL CHIP AL SISTEMA. Introduccin a los microprocesadores R. Zaks Marcombo 1986 PROCESADORES PROGRAMABLES. EL MICROPROCESADOR E.Mandado Marcombo 1980 CIRCUITOS ELECTRNICOS DIGITALES II Coordinador E. Muoz Merino DPTO. de publicaciones ETSI Telecomunicacion. Madrid 1980 MICROPROCESADORES. Fundamentos, Diseo y Aplicaciones en la Industria y en los Microcomputadores. J. M. Angulo Paraninfo 1981 MICROPROCESADORES Y MICROCOMPUTADORES Serie Mundo Electrnico Marcombo 1980 AN INTRODUCTION TO MICROCOMPUTERS Volume 1. Basic Concepts Osborne. Mc Graw-Hill 1980 UNDERSTANDING MICROPROCESSORS Motorola 26

SISTEMAS DIGITALES BASADOS EN MICROPROCESADORES Gault, Pimmel Mc Graw-Hill 1982 INTERCONEXIN DE PERIFRICOS A MICROPROCESADORES Serie Mundo Electrnico Marcombo 1980

MICROPROCESADORES Curso Introduccin a la Informtica C. Areitio ETSI Industriales. Bilbao 1983 MICROPROCESADORES. CONCEPTOS BSICOS J. Arambarri Facultad de Informtica de la UPV/EHU. San Sebastin 1984 ESTRUCTURA Y TECNOLOGA DE COMPUTADORES I C. Cerrada, V. Feli Impresa 1993 MODERN DIGITAL SYSTEMS DESIGN J. Y. Cheung J. G. Bredeson West Publishing Company 1990 ESTRUCTURA Y TECNOLOGA DE COMPUTADORES II S. Dormido et al. Sanz y Torres 1994

27

Potrebbero piacerti anche