CARACTERISTICAS GENERALES DE 8085

download CARACTERISTICAS GENERALES DE 8085

of 34

Transcript of CARACTERISTICAS GENERALES DE 8085

CARACTERISTICAS GENERALES DE 8085

Al igual que el microprocesador generico, la MPU 8085 utiliza registros de 8 y 16 bits. El 8085 tiene 8 registros direccionables de 8 bits. Seis de estos registros pueden utilizarse como registros de 8 bits o como registros de 16 bits. _demas, el 8085 contiene dos registros mas de 16 bits. Los registros del 8085 son los siguientes:

1) El acumulador (registro A) es el foco de todas las operaciones del acumulador que incluyen instrucciones aritmeticas, logicas , de carga y almacenamiento y de E/S. Es un registro de 8 bits

. 2) Los registros ede proposito general BC, DE y HL pueden ser utilizados como seis registros de 8 bits o como tres registros de 16 bits dependiendo de la instruccion que se vaya a ejecutar . Como en el microprocesador generico, el registro HL llamado puntero de datos por intel puede ser apuntado a direcciones. Pocas instrucciones utilizan los registros BC yDE como punteros de direccion , Ya que normalmente se utilizan como registros de datos de proposito general.

3) El contador de programa (PC) siempre seala la posicion de la memoria de la siguiente instruccion que se va a ejecutar . Siempre contiene una direccion de 16 bits.

4) El puntero de pila (SP) es un puntero de direccion de proposito especial (o puntero de dato ) que siempre apunta ala parte superior de la pila de la RAM . Es un registro de 16 bits .

5) El registro de sealizadores contiene cinco sealizadores de 1 bit que contienen informacion del estado de la CPU. Estos sealizadores son utilizados entonces por instrucciones de bifurcacion condicional, llamada, y vuelta de subrutina. Los cinco sealizadores encontrados en la CPU del 8085, y son los siguientes: El sealizador de arrastre es puesto a 1 o 0 p[or operaciones aritmeticas y su estatus es examinado por las instrucciones del programa. Como en el microprocesador generico, un over flow (rebose ) de una suma de 8 bits hara que el bit se ponga a 1. En la resta el

sealizador de arrastre es puesto como un sealizador de "prestamo", indicando que el minuendo es menor que el sustraendo si el sealizador es esta a 1. El sealizador de cero se pone a uno si el resultado de ciertas instrucciones es cero. Este esta en cero si el resultado no es cero. La accion de sealizador de cero se observo en el microprocesador se observo en la parte generica del mismo. El sealizador de signo(S) indica la condicion del bit mas significativo del acumulador despues de la ejecucion de instrucciones aritmetico logicas. Estas instrucciones utilizan el MSB signo a uno representa un numero contenido en el acumulador . Un sealizador de sino a uno representa un numero negativo, mientras que a cero significa un numero positivo. El sealizador de arrastre auxiliar (AC) indica un over folw o arrastre del bit 3 del acumulador de la misma forma que el sealizador de arrastre indica un overflow del bit 7. Esta sealizacion es uutilizada comunmente en BCD. El sealizador de paridad (P) examina el numero de bits 1. Si este contiene un numero par de uno , se dice que existe paridad par y el sealizador de paridad se pone a 1. Sin embargo, si el acumulador contiene un numero impar de 1, el sealizador de paridad del 8085 se pone a cero.

Puntero de pila Este contiene la direccion del unltimo byte introducido en la pila. El puntero de pila pude ser inicializado para utilizar cualquier parte de la RAM como pila . Como en el microprocesador generico, el puntero de pila se decrementa cada vez que se introduce un dato en la pila y se incrementa cada vez que se saca el dato de la pila.

Unidad aritmetico logica La ALU esta muy relacionada con el acumulador, registro de sealizadores y algunos registros temporales que son inaccesibles al programador.

Registro de instruccion y decodificador Durante una busqueda de instruccion, el primer byte de la instruccion, el codigo de operacion es transferido al registro de instruccion de 8 bits. El contenido del registro de instruccion esta disponible al decodificador de instrucciones.

GENERADOR INTERNO DE RELOJ. La MPU 8085 incorpora un generador completo de rerloj en su pastilla . Requiere solamente la adicion de un cristal de cuarzo para establecer la temporizacion de su operacion .

INTERRUPCIONES. Las cinco entradas de interrupcion hardware estan listadas por prioridades en la columna izquierda. La interupcion de mas alta prioridad es la de la entrada TRAP. Una vez que alcanza el nivel ALTO, la entrada TRAP hara que el 8085 guarde en la pila el contenido del contador de programa y salte a la posicion de memoria 002eH. La entrada TRAP no puede ser inhabilitada y por tanto se denomina interrupcion no enmascarable.

ENTRADA Y SALIDA SERIE. Las patillas de entrada y salida serie del 8085 ayudan a minimizar la cuenta de pasillas en los pequeos sistemas al proporcionar un puerto de interfaz serie. La instruccion especial RIM del 8085 transfiere datos desde la patilla de entrada serie (SID) al bit 7 del acumulador.

Un solo bit serie puede sacarse via la patilla de salida serie (SOD) utilizando la instruccion especial SIM del 8085. Un nivel BAJO sale a la patilla SOD via el cerrojo de salida serie. Observar que la fuente del dato era el bit 7 del acumulador. Para que se produzca la salida serie hay que poner a 1 el bit 6 (B6) del acumulador. El entrada serie (SID) tambien puede utilizarse como una entrada de TEST de proposito general, mientras que las patillas de salida serie (SOD) pueden servir como salida de control de 1 bit. En una seccion posterior sobre el repertorio de instrucciones del 8085 las instrucciones RIM y SIM se explicaran con mas detalle. Son instrucciones que tienen varios propositos. El nemotecnico RIM realmente significa mascara de lectura de interrupcion

(read interrupt mask), mientras que el nemotecnico SIM significa mascara de inicializacion de interrupcion (set interrupt mask). Los registros programables de la unidad microprocesadora 8085 estan resumidos. Estos son los registros de principal interes para el programador. Este tipo de diagrama a veces se denomina modelo de programacion para la MPU 8085. El acumulador principal de 8 bits se etiqueta con A en el modelo de programacion. Los otros registros de proposito general de 8 bits (etiquetados B,C,D,E,H y L) tambien se denominan, comunmente acumuladores secundarios/contadores de datos. Este nombre sugiere su doble uso como acumuladores auxiliares o contadores de datos (o punteros de direccion).

El microprocesador (MP). El MPU es el corazon de cualquier microcomputadora. Realiza muchas funciones, entre las que se incluyen:

1. Proporcionar las seales de control y temporizacion para todos los elementos de la microcomputadora. 2. Extraer las instrucciones y los datos de la memoria. 3. Transferir los datos a y desde la memoria y los dispositivos de entrada/salida. 4. Decodificacion de instrucciones. 5. Ejecutar las operaciones aritmeticas y logicas invocadas por las instrucciones. 6. Responder a las seales de control generadas en entrada/salida tales como REINICIO E INTERRUPCION.

El MPU contiene toda la circuiteria logica necesaria para llevar a cabo las funciones anteriores pero, en general, no existe manera de tener acceso a la logica interna. En lugar de ello, se puede controlar lo que ocurre dentro del MPU mediante un programa formado por varias instrucciones mismo que se coloca en la memoria para que el MPU lo ejecute. Esto es lo que hace al MPU tan versatil y flexible -cuando se desea cambiar su operacion, solo es necesario cambiar los programas almacenados en la RAM (software) o grabada en la ROM (firmware) sin necesidad de cambiar la electronica (hardware).

La logica interna del MPU es muy compleja pero puede considerarse como formada por tres secciones basicas: la seccion de control y temporizacion, las seccion de registros y la ALU. Aunque existen interacciones bien definidas entre secciones, cada una tiene funciones especificas. La funcion principal de la seccion de control y temporizacion es traer de la memoria y decodificar (interpretar) las instrucciones que estan en la memoria y que forman parte de un programa, para despues generar las seales de control necesarias para ejecutar las instrucciones. Esta seccion tambien genera las seales de control y temporizaciones (por ejemplo, R/W y de reloj) para la RAM, ROM y dispositivos de E/S externos. La seccion de registros contiene varios registros (dentro del MPU) y cada uno tiene una funcion especial. El mas importante de todos ellos es el contador del programa (PC), el cual mantiene la direccion donde se encuentra la siguiente instruccion que se extraera de la memoria. Se hara uso de las siglas PC en la descripcion de la ejecucion de un programa. Los demas registros del MPU se emplean para realizar funciones tales como guardar los codigos correspondientes a las instrucciones mientras estas son decodificadas, retener los datos que constituyen los operandos con los que trabaja la ALU, almacenar las direcciones donde se encuentran los datos en la memoria y varias funciones mas de conteo y almacenamiento con proposito generales.

La ALU efectua una gran variedad de operaciones aritmeticas y logicas. Estas operaciones siempre incluyen la adicion y la sistraccion, y las operaciones logicas AND,OR,EX-OR, corrimiento, incremento, y decremento. Los MPU mas avanzados tienen una ALU que realiza operaciones de multiplicacion y division. Durante la operacion de la microcomputadora, las operaciones que la ALU realiza se llevan a cabo bajo el control de la seccion de control y temporizacion la que, claro esta, hace lo que indican los codigos de instruccion que trae de la memoria.

El bus de datos y direcciones est multiplexadoEl bus de datos y direcciones est multiplexado en el tiempo, esto significa que comparten algunas patillas (o pines). Como el bus de direcciones utiliza 16 patillas y el de datos slo 8, 8 de las patillas del bus de direcciones se utilizan tambin para el de datos. Con esto se consigue reducir el nmero de patillas de 24 a 16.

[editar] Registros ProgramablesPosee 7 registros programables de 8 bits (A, B, C, D, E, H, L) algunos de los cuales pueden utilizarse por parejas (BC, DE, HL). El registro A se denomina acumulador y tiene gran importancia

1. 2. 3. 4.

Componentes Arquitectura Set de Instrucciones Diseo bsico del sistema para el microprocesador 8085

El siguiente microprocesador fue creado por la empresa Intel en 1977. La alimentacin es nica: requiere slo +5V. Esto se debe a la nueva tecnologa utilizada para la fabricacin llamada HMOS (High performance N-channel MOS) que adems permite una mayor integracin, llegando a la VLSI (Very Large Scale of Integration o muy alta escala de integracin) con ms de diez mil transistores (el 8085 no es VLSI, pero s el 8088, como se ver ms adelante). Tiene incorporado el generador de pulsos de reloj con lo que slo hace falta un cristal de cuarzo y un par de capacitores externos (para el 8080 se necesitaba el circuito integrado auxiliar que lleva el cdigo 8224). Adems est mejorado en lo que se refiere a las interrupciones. Incluye las 74 instrucciones del 8080 y posee dos adicionales (RIM y SIM) referidas a este sistema de interrupciones y a la entrada y salida serie. El bus de datos est multiplexado con los ocho bits menos significativos del bus de direcciones (utiliza los mismos pines para ambos buses), con lo que permite tener ms pines libres para el bus de control del microprocesador (el 8080 necesitaba un integrado especial, el 8228, para generar el bus de control). Intel produjo ROMs, RAMs y chips de soporte que tienen tambin el bus multiplexado de la misma manera que el microprocesador. Todos estos integrados forman la familia MCS-85. Debido a la gran densidad de integracin comparado con el 8080, se utiliz mucho este microprocesador en aplicaciones industriales. Sin embargo, para aplicaciones de computacin de uso general, se extendi ms el uso del microprocesador Z-80 como se indic en el apartado referente al 8080. Componentes Interrupciones El microprocesador 8085 posee un complejo y completo sistema de interrupciones. Esta uP posee cinco terminales destinados al tratamiento de interrupciones. Recordemos que una interrupcin es un artificio hardware/software por el cual es posible detener el programa en curso para que, cuando se produzca un evento predeterminado, despus de concluir la instruccin que est ejecutando, efecte un salto a una determinada subrutina en donde se efectuar el tratamiento de la interrupcin; una vez acabado ste, el uP contina con la instruccin siguiente del programa principal. As pues, el 8085 dispone de tres formas diferentes de tratar las interrupciones que le llegan por los citados cinco terminales. Los nombres de estos cinco terminales son:

INTR (Interrupt Request): Por esta entrada se introduce una interrupcin que es aceptada o no segn haya sido previamente indicado por las instrucciones EI (Permitir interrupciones) o DI (No permitir interrupciones). Cuando una interrupcin es permitida y sta se ha producido, la CPU busca una instruccin RST (de un slo byte), que es presentada por el bus de datos por el perifrico que interrumpe. Este byte tiene el formato binario 11 XXX 111. La subrutina se ubicar en la direccin 00 XXX 000. RST 5.5, RST 6.5 y RST 7.5: Los terminales de RST 5.5 y RST 6.5 detectan la interrupcin slo si la seal que se les aplica es un uno lgico o nivel alto de una cierta duracin, lo mismo que la entrada anterior INTR; sin embargo, la entrada de interrupcin correspondiente al terminal RST 7.5 se excita por flanco ascendente, es decir, por una transicin de cero a uno. Esta transicin se memoriza en un biestable en el interior del uP. Estas interrupciones se pueden habilitar o deshabilitar mediante las instrucciones EI y DI, como en el caso de INTR; pero adems son enmascarables por software mediante la instruccin SIM (Set Interrupt Mask). Es posible leer tanto el estado de la mscara como las interrupciones que se han producido y an no se atendieron mediante la instruccin RIM. TRAP: Es una interrupcin no enmascarable que es activada cuando el terminal del mismo nombre se lleva a nivel lgico uno. Esta interrupcin es la de ms alta prioridad, por lo que puede ser usada para tratar los acontecimientos ms relevantes, tales como errores, fallos de alimentacin, etc.

Control de entrada/salida serie Este microprocesador posee dos terminales denominados SID (Serial Input Data) y SOD (Serial Output Data). Estos terminales se pueden usar con propsitos generales. Por ejemplo el terminal SID se puede conectar a un interruptor y el SOD a un LED (a travs de una compuerta inversora externa). Para leer el estado del terminal SID se ejecuta la

instruccin RIM, con lo que se puede leer en el bit 7 del acumulador el estado de dicho terminal. Para enviar un dato por el terminal SOD se ejecuta la instruccin SIM, donde el bit 7 del acumulador debe tener el valor a poner en el terminal, y el bit 6 debe estar a uno. Terminales (pinout) del 8085

Este microprocesador estaba encapsulado en el formato DIP (Dual Inline Package) de 40 patas (veinte de cada lado). La distancia entre las patas es de 0,1 pulgadas (2,54 milmetros), mientras que la distancia entre patas enfrentadas es de 0,6 pulgadas (15,32 milmetros). Ntese en el grfico el semicrculo que identifica la posicin de la pata 1. Esto sirve para no insertar el chip al revs en el circuito impreso. Las funciones de las 40 patas con las que se conecta el 8085 con el exterior son las siguientes:

Arquitectura

Set de Instrucciones

Conjunto de Instrucciones

Explicacin de cada instruccin Cuando me refiero a los registros "r" (ya sea r1,r2 o simplemente r) estoy hablando de cualquier registro propio del 8085, A(Acumulador), o los registros B,C,D,E,H,L de 8 bits respectivamente. Estos registros se pueden agrupar por parejas BC,DE,HL (rp) y as formar registros de 16 bits para direccionar una posicin de memoria directamente(16 BITS), siendo el par HL el mas importante por tener instrucciones que trabajan directamente con el.

Todas las anteriores:

BYTE= VALOR ENTRE 0 Y FF (0 Y 255 EN DECIMAL) DOBLE BYTE= DOS BYTES PARA FORMAR 16 BITS DIRECCION = 16 BITS o 2 BYTES **Instrucciones Aritmtico lgicas: instruccin cdigo explicacin ADD r 10000RRR Suma al acumulador el registro r y el Resultado queda en el acumulador. ADD M 10000110 Suma al acumulador el contenido de la posicin apuntada por HL y resultado en acumulador. ADI 11000110 Suma al acumulador el 2 byte de la Instruccin y resultado en acumulador. ADC r 10001RRR Suma al acumulador el registro r y el Carry, resultado en acumulador. ADC M 10001110 Suma a acumulador el contenido de la Posicin apuntada por HL y el carry, result. en acumulador. ACI 11001110 Suma al acumulador el 2 byte de la Instruccin y el carry y resultado en acumulador. SUB r 10010RRR Resta al acumulador el contenido del Registro r y lo deja en el acumulador. SUB M 10010110 Resta al acumulador el contenido de la Posicin que apunta HL y resultado al acumulador. SUI 11010110 Resta al acumulador el 2 byte de la instruccin. SBB r 10011RRR Resta al acumulador el registro r + el carry. SBB M 10011110 Resta al acumulador el contenido de la Posicin que apunta HL.

SBI 11011110 Resta al acumulador el 2 byte + el carry. INR r 00RRR100 Incrementa en 1 el registro r.(Z;S;P;AC) INR M 00110100 Incrementa en 1 el contenido de la Posicin que apunta HL (Z;S;P;AC) DCR r 00RRR101 Decrementa en 1 el registro r (Z;S;P;AC) DCR M 00110101 Decrementa en 1 el contenido de la Posicin que apunta HL (Z;S;P;AC) INX rp 00RR0011 Incrementa en 1 el par rp de registros.BC,DE,HL DCX rp 00RR1011 Decrementa en 1 el par rp de registros.BC,DE,HL DAD rp 00RR1001 Suma a HL el par de registros rp (CY a veces). DAA 00100111 Los 8 bits del acumulador se ajusta a BCD=decimal.(flags)

ENTRE PARENTESIS() FLAGS AFECTADOS POR LA INSTRUCCION. Todas las anteriores: Instruccin cdigo (Hex) instruccin cdigo (Hex) ADD A 87 ADC A 8F ADD B 80 ADC B 88 ADD C 81 ADC C 89 ADD D 82 ADC D 8A ADD E 83 ADC E 8B

ADD H 84 ADC H 8C ADD L 85 ADC L 8D ADD M 86 ADC M 8E SUB A 97 SBB A 9F SUB B 90 SBB B 98 SUB C 91 SBB C 99 SUB D 92 SBB D 9A SUB E 93 SBB E 9B SUB H 94 SBB H 9C SUB L 95 SBB L 9D SUB M 96 SBB M 9E INR A 3C DCR A 3D INR B 04 DCR B 05 INR C 0C DCR C 0D INR D 14 DCR C 15 INR E 1C DCR D 1D INR H 24 DCR H 25 INR L 2C DCR L 2D INR M 34 DCR M 35 INX B 03 DCX B 0B INX D 13 DCX D 1B INX H 23 DCX H 2B INX SP 33 DCX SP 3B(SP=STACK POINTER)

ADI BYTE C6 DAD B D9 ACI BYTE CE DAD D 19 SUI BYTE D6 DAD H 29 SBI BYTE DE DAD SP 39 DAA 27 **Intrucciones lgicas: Instruccin cdigo Explicacin ANA r 10100RRR AND entre el acumulador y el registro r (flags, CY=0,AC=1) ANA M 10100110 AND entre el acumulador y el contenido De la posicin apuntada por HL (flags dem) ANI 11100110 AND entre el acumulador y el 2 byte de La instruccin (flags dem) XRA r 10101RRR OR Exclusiva entre el acumulador y el registro r (flags,CY y AC=0) XRA M 10110110 OR Exclusiva entre el acumulador y el contenido de la posicin de HL(flags dem) XRI 11101110 OR Exclusiva entre el acumulador y el 2 Byte de la instruccin(flags dem) ORA r 10110RRR OR entre el acumulador y el registro r(flags dem) ORA M 10110110 OR entre el acumulador y el contenido de la posicin apuntada por HL(flags dem) ORI 11110110 OR entre acumulador y 2 byte de la instruccin(dem) CMP r 10111RRR Compara el acumulador con el registro r no laterando el contenido del acumulador(si A=1 Z=1,si A