You are on page 1of 74

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

CAPITULO 6 SISTEMAS SECUENCIALES


En los sistemas digitales son necesarios circuitos capaces de acumular informacin y datos, adems de ser capaces de realizar algunas operaciones aritmticas y lgicas sobre esos datos.. Las salidas de estos circuitos en un tiempo dado, son funciones tanto de las entradas externas, como de la informacin acumulada en dicho instante. Tales circuitos son llamados Circuitos Secuenciales. Existen problemas en que la salida depende tanto del valor de las entradas en un instante dado como del valor de esas entradas ocurridas con anterioridad. Si el efecto en el presente de los infinitos distintos valores que pueden tomar las entradas, es acotado ( finito ), el problema puede ser interpretado por una Mquina de Estados Finitos ( o Autmata Finito ) . Una Mquina de Estados Finitos ( o Autmata Finito ) es un modelo abstracto que describe un problema a travs de Estados. El Estado describe el efecto en el presente de cada grupo de valores de entradas pasadas. Es decir, el estado define y lleva al presente toda la informacin de lo que ha ocurrido en el pasado. La Salida, entonces, en un instante dado, ser funcin del Estado Presente ( que contiene la informacin del pasado ) y del valor presente de las entradas. Cada vez que hay un nuevo valor de entrada en el presente, sta, en conjunto con el estado presente, conformarn un nuevo pasado para el instante siguiente. Es decir, el autmata deber efectuar una transicin a un nuevo estado en el instante presente, para considerar toda la historia pasada en el instante siguiente.

Para aclarar lo anterior veamos alguno ejemplos . En el Sumador Serie las entradas X1 y X2 llegan al Sumador en forma serie, produciendo una salida serie, que es la suma de estas dos entradas. En un instante ti , la salida Z(ti) es la suma de X1(ti) ms X2(ti) ms el acarreo producido en el instante anterior ti-1. En este instante ti , no slo se deber producir la suma sino que tambin el acarreo que ser usado en la suma del instante t i+1. En este ejemplo se aprecia claramente que la salida en el instante presente (t i), Z(ti), depende del valor de las entradas presentes X1(ti) y X2(ti) y adems del Acarreo, quien
JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

lleva al presente (ti) el efecto de todos los valores que hayan tomado las entrada con anterioridad.

Luego, el autmata que representa este problema , debe tener dos estados. El estado A que representar la situacin de cuando el Acarreo fue 0 y B cuando fue 1 Para representar la mquina de estados finitos que representa el problema se puede usar un diagrama de estados. En este diagrama (ver figura), cada estado est representado por un circulo, y las flechas indican las transiciones entre estados. Sobre las flechas se anota el valor de las entrada y el valor de la salida (xx/z). La linea de pensamiento que se sigue para construir el diagrama es: Si la mquina se encuentra en el estado K en el instante presente, a que nuevo estado debe ir si la entrada es xx y cual debe ser el valor de la salida.z. Esto se anota con una flecha que parte en el Estado K terminando en el estado siguiente que debe alcanzar. Sobre la flecha se indican los valores de las entradas xx y de la salida z. Para cada estado, deben considerarse todas las transiciones producidas por todas las posibles entradas. Por ejemplo para el sumador serie, si la mquina se encuentra en el estado A (que indica que el acarreo anterior fue 0); para una entrada 11, la salida debe ser 0 e ir al estado B (que indica Acarreo =1), ya que 0+1+1 = 10, es decir salida z = 0 y un acarreo de 1. Esta situacin se anota con una flecha que parte de A y llega a B y sobre ella queda anotada 11/0 indicando el valor de las entradas y el de la salida

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

La Tabla de Estados y Salidas es otra forma de representar la mquina de estados finitos. Esta tabla es una forma tabular de expresar la misma informacin del diagrama de estados. Aqu, EP es el estado presente (en el instante t i), ES son los estados siguientes (el estado a alcanzar en el tiempo ti+1), x1x2 son las entradas en el tiempo ti y z es la salida en el instante ti.

MODELO DE CIRCUITO SECUENCIAL SINCRONO Para disear un circuito que emule la mquina de estados finitos, en aquellos problemas en que la seal de entrada esta coordinada con un reloj que marca los tiempos t i, se

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

cuenta con el modelo que muestra la figura. A este circuito se le llama Circuito Secuencial Sncrono. Aqu, x1...xL son las entradas, z1...zM son las salidas, y1....yK son las variables de estado (las que indican el estado en forma codificada) e Y1....YK son las variables de excitacin (las entradas a los elementos de memoria)

FLIP-FLOPS COMO ELEMENTOS DE MEMORIA

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

EJEMPLO DE DISEO DE UN CIRCUITO SECUENCIAL SINCRONO Detector de secuencia. Disear un circuito secuencial sncrono que detecte la secuencia 0101.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

Funciones de excitacin y salida con flip-flops tipo D

Otros ejemplos : Contador binario Generador de bit de paridad

MINIMIZACION DE ESTADOS DE MAQUINAS SECUENCIALES K-Equivalencia Dos estados Si y Sj de una mquina M son Distinguibles si y slo si existe a lo menos una secuencia finita de entrada que, cuando es aplicada a M, produce distintas secuencias de salidas, dependiendo de Si o Sj fue el estado inicial. Si para el par (SiSj) existe una secuencia de largo K que los distingue, se dice que ese par es K-Distinguible. Estados que no son K-Distinguibles son entonces K-Equivalentes. Estados que son K-Equivalentes son tambin R-Equivalentes, para todo R<K. Estados que son K-equivalentes para todo K se dicen que son Equivalentes. Definicin de equivalencia Los estados Si y Sj de una mquina M se dice que son equivalentes si y slo si, para cualquier posible secuencia de entrada, se producir la misma secuencia de salida,
JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

independientemente de si Si Sj fue el estado inicial. As, Si y Sj son equivalentes ( Si = Sj ) si no existen secuencias de entrada que los distinga. Estados que son K-Equivalentes para todo K n-1, son Equivalentes ( donde n = nmero de estados de la mquina) Ciertamente, si Si = Sj y Sj = Sk entonces Si = Sk. El conjunto de estados de una mquina puede ser particionado en subconjuntos disjuntos, conocidos como clases equivalentes, tal que dos estados son de la misma clase equivalente si y slo si ellos son equivalentes, y, son de diferentes clases si y slo si ellos son Distinguibles. El procedimiento para determinar los conjuntos de estados equivalentes en una mquina, es decir, las clases equivalentes, se fundamenta en la siguiente propiedad: Si Si y Sj son estados equivalentes, sus correspondientes X-sucesores, para todo X, son tambin equivalentes. Ya que de no ser as, sera trivial construir una secuencia de entrada que distinga a (SiSj) aplicando primero una secuencia de entrada que transfiera la mquina a los sucesores Distinguibles de Si y Sj. Procedimiento de minimizacin

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

l primer paso es definir la particin P0 correspondiente a 0-distinguibilidad El segundo paso es encontrar la particin P1 separando los estados de M en subconjuntos, tales que, los estados del mismo subconjunto sean 1-equivalentes. Esto se consigue colocando estados que tienen las mismas salidas, bajo todas las posibles entradas, en un mismo subconjunto. P1 se obtiene simplemente por inspeccin de la tabla de estados y colocando aquellos estados que tienen las mismas salidas bajo todas las entradas, en el mismo bloque. El siguiente paso es obtener la particin P2, cuyos bloques consisten de conjuntos de estados que son 2-equivalentes para cualquiera secuencia de entrada de largo 2. Esto se consigue observando que dos estados son 2-equivalentes si y slo si ellos son 1equivalentes y sus sucesores son tambin 1-equivalentes. Por consiguiente dos estados son colocados en el mismo bloque de P2 si y slo si estn en el mismo bloque en P1 y sus sucesores para cada entrada, tambin estn contenidos en un mismo bloque de P1. Este paso es llevado a cabo separando los bloques de P1 cuando sus sucesores no estn contenidos en un bloque comn de P1. En general, la particin Pk+1 es obtenida desde Pk colocando en un mismo bloque de Pk+1 aquellos estados que estn en un mismo bloque de Pk y cuyos sucesores para cada valor de la entrada estn en un mismo bloque de Pk. Este proceso coloca en un mismo bloque los estados que son (k+1)-equivalentes y en diferentes bloques los que son (k+1)Distinguibles. Si para algn k, Pk+1 = Pk el proceso termina y Pk define el conjunto de estados equivalentes de la mquina. Pk recibe el nombre de Particin Equivalente. Teorema: La particin equivalente es nica Teorema: Si dos estados Si y Sk de una mquina M son Distinguibles, ellos son distinguibles para una secuencia de largo n - 1 o menor, donde n es el nmero de estados de la mquina.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

10

SIMPLIFICACION DE MAQUINAS INCOMPLETAMENTE ESPECIFICADAS

Ejemplo de mquina incompletamente especificada

COMPATIBILIDAD Secuencia aplicable Una secuencia de entrada se dice que es aplicable al estado Si de una Mquina M, si es que durante su aplicacin a Si encuentra siempre estados siguientes definidos, excepto posiblemente en el ltimo paso. Note que no importa si todas las salidas no estn definidas. Estados Compatibles Dos estados Si y Sj de una Mquina M son Compatibles si y slo si, para cada secuencia de entrada aplicable a ambos Si y Sj , se producen secuencias de salidas idnticas, cuando ambas estn definidas, independientemente de si Si Sj fue el estado inicial.
JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

11

Compatible Un conjunto de estados [ Si Sj Sk , ........ ] se llama compatible si todos sus miembros son compatibles entre si. Un Compatible Ci se dice que cubre a otro compatible Cj , si y slo si cada estado contenido en Cj est tambin contenido en Ci. Un Compatible es Mximo si no est cubierto por ningn otro compatible mayor. Entonces, si encontramos el Conjunto de Compatibles Mximos, encontramos todos los Compatibles, ya que cada subconjunto de un Compatible es tambin un Compatible.

La Compatibilidad NO es transitiva. Es decir Si A es Compatible con B y A es Compatible con C . Esto no implica que B sea compatible con C

PROCEDIMIENTO DE REDUCCION GRAFICO DE PARES COMPATIBLES Permite encontrar el Conjunto de Compatibles Mximo

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

12

Definicin Un conjunto de Compatibles se dice que es Cerrado si por cada Compatible incluido en el conjunto, tambin sus Compatibles Sucesores lo estn. Un conjunto cerrado de compatibles, que contiene todos los estados de la mquina original, se dice que es una Cobertura Cerrada. Para la mquina mostrada [ (AD) (BE) (CD) ] es un Conjunto Cerrado y [ (AB) (CD) (EF) ] es una Cobertura Cerrada

Las Coberturas Cerradas representan Mquinas cubiertas por la original

Otro ejemplo

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

13

Un ltimo ejemplo

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

14

CIRCUITOS SECUENCIALES ASINCRONOS

Modelo de Circuito Secuencial Asncrono en modo Fundamental

LA TABLA DE FLUJOS Ejemplo de Diseo Se quiere disear un circuito de dos entradas, x1 y x2 , y una salida z que responda a lo siguiente: La salida del circuito deber ser 1 si y slo si x1 = x2 = 1 y el estado de entrada inmediatamente anterior fue x1 = 0 , x2 = 1.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

15

Tabla de Excitaciones y Circuito

ASIGNACION SECUNDARIA Carreras y Ciclos

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

16

Mtodos de Asignacin Secundaria

Un ltimo ejemplo

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

17

PROBLEMAS

1. Una larga secuencia de pulsos entra a un circuito secuencial sncrono de una entrada y una salida, el cual debe producir una salida Z=1 cada vez que ocurre la secuencia 1111. Se aceptan secuencias traslapadas, es decir si la entrada es ...01011111... , la salida debe ser ...00000011... (a) Dibuje el diagrama de estados y la tabla de estados (b) Elija una asignacin de estados y forme la tabla de transiciones y salida (c) Elija flip-flop's tipo SR y defina la tabla de excitaciones y salida. (d) Determine las funciones de excitaciones y salida y dibuje el circuito. 2. Repita el problema 1 para la secuencia 01101 e implemente el circuito con flip-flop tipo T. 3. Construya el diagrama de estados de una mquina secuencial de 8 estados y de una entrada x, que produzca una salida z=1 cada vez que los cinco ltimos dgitos de entrada contienen exactamente tres 1's comenzando con dos 1's. 4. Para cada uno de los siguientes casos, muestre la tabla de estados que define la mquina secuencial correspondiente: (a) La salida Z debe ser 1 coincidentemente con una entrada 1 que sigue a una secuencia de dos o tres 0's. (b) Independientemente de las entradas, las dos primeras salidas son 0's. de ah en adelante la salida z es una rplica de la entrada x, pero desplazada en dos unidades de tiempo. Esto es, z(t) = x(t-2) para >2. (c) z(t) es 1 si y slo si x(t) = x(t-2) (d) z es 1 cada vez que las ltimas cuatro entradas corresponden a un nmero BCD que es mltiplo de 3, es decir, 0,3,6,9. 5. Disee un circuito secuencial sncrono que produzca una salida z=1 cada vez que ocurran las secuencias 1100, 1010 o 1001. El circuito debe volver a su estado inicial cada vez que se genera z=1. ( Siete estados son suficientes). Use flip-flop's JK.

6. Disee un circuito secuencial sncrono, que examine secuencias no traslapadas de tres dgitos y produzca una salida z=1 coincidentemente con la ltima entrada de la secuencia, si y slo si la secuencia contiene dos o tres 1's. Use flip-flop's SR.En todo otro instante debe ser z=0

7. Disee un contador en modulo 8, que cuenta de la manera especificada en la siguiente tabla. Use flip-flop's tipo JK
JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

18

Decimal Cdigo Gray 0 000 1 001 2 011 3 010 4 110 5 111 6 101 7 100

8. Construya el diagrama de estados de una mquina secuencial que sea capaz de detectar fallas en mensajes en cdigo 2-de-5. Esto es, una mquina que examine los mensajes que llegan en forma serie y produzca una salida 1 cuando se detecta un mensaje no vlido.

9. Cuando cierto canal serie de comunicacin esta operando correctamente, todos los bloques de 0's son de largo par y todos los bloques de 1's son de largo impar. Muestre el diagrama y la tabla de estados de una mquina secuencial que produzca una salida 1 cada vez que exista una discrepancia con el comportamiento normal.

10. (a) Encuentre la particin equivalente de la mquina siguiente: ES,z x=0 x=1 B,1 F,1 D,0 C,0 D,1 C,1 C,1 C,0 H,1 D,1 E,1 F,1 C,1 C,1 D,1 A,1

EP A B C D E F G H

(b) Encuentre la secuencia ms corta que distinga los estados A y B.

11. Para cada una de las mquinas que se muestran a continuacin encuentre su particin equivalente y la correspondiente mquina mnima
JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

19

EP A B C D E

ES,z x=0 x=1 B,0 E,0 D,1 C,1 B,0 E,0 D,0 A,0 E,0 D,0

EP A B C D E F G

ES,z x=0 x=1 F,0 G,0 B,0 C,0 D,0 E,1 E,1 B,1 A,1 C,1 B,1 A,1 F,1 G,1

EP A B C D E F G H

ES,z x=0 x=1 D,0 F,1 D,0 C,0 C,1 D,1 D,1 B,1 H,1 C,1 F,1 E,1 D,1 D,1 C,1 A,1

12. Para la mquina incompletamente especificada que se muestra, encuentre dos mquinas mnimas y pruebe que en realidad son mnimas.

EP A B C D E F G

ES,z x=0 x=1 B,0 D,0 A,0 --G,1 B,0 D,0 C,1 C,1 E,0 F,1 F,0 --E,0

13. Para cada una de las siguientes mquinas incompletamente especificadas, encuentre una mquina reducida.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

20

EP A B C D E

I1 C,0 C,0 B,-B,0 ---

ES,z I2 E,1 E,-C,0 C,-E,0

ES,z I3 ----A,-E,-A,-EP A B C D E F I1 --B,0 E,0 B,0 F,1 A,0 I2 F,0 C,0 A,1 D,0 D,0 ---

14. Encuentre una tabla de estados reducida para la siguiente mquina. Disee el circuito usando flip-flop's tipo SR ES,z1z2 EP A B C D E F G x1x2 00 A,00 --A,00 A,00 ----A,00 01 E,01 C,10 C,10 --E,01 G,10 --11 --B,00 ----F,00 F,00 --10 A,01 D,11 --D11 --G,11 G,11

15.

Disee un conversor serie-paralelo de Exceso-3 a BCD. El circuito tiene una nica lnea de entrada, por donde recibe mensajes en el cdigo Exceso-3 y cuatro lneas de salida z1, z2, z3, z4, las cuales tienen que reproducir el mensaje en cdigo BCD. Las entradas llegan en forma serie, comenzando con el dgito menos significativo. Las salidas deben estar especificadas solamente a la ocurrencia de cada cuarto dgito de entrada. Cada una de las especificaciones siguientes describe un circuito secuencial Asncrono en modo fundamental, de dos entradas, x1, x2 y una salida z. Encuentre las tablas de flujos primitivas y reducidas para cada circuito. (a) z=1 si x1 y x2 son simultneamente 1, pero slo si x1 llega a ser 1 antes que x2.
JGL

16.

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

21

(b) Cuando x2=1, el valor de la salida z es igual al valor de x1, la salida permanece en este valor hasta que x2 baje a 0. (c) La salida z es igual a 0 mientras x1=0. El primer cambio en x2 que ocurre mientras x1=1, hace que z tome el valor 1. De ah en adelante z permanece en 1 hasta que x1 retorna a 0. 17. Encuentre una tabla de flujos reducida para un circuito secuencial asncrono de dos entradas (x1,x2) y una salida (z), que opere de la siguiente manera: z=1 si y slo si x1=x2=1 y la ltima entrada que cambi fue x1. Suponga que el circuito inicialmente toma el estado de entrada x1=x2==0. La salida z de un circuito secuencial asncrono en modo fundamental de dos entradas debe cambiar de o a 1 slo cuando x2 cambia de 0 a 1 mientras x1=1. La salida debe cambiar de 1 a 0 slo cuando x1 cambia de 1 a 0 mientras x2=1 (a) Encuentre una tabla de flujos reducida. La salida debe estar libre de pulsos espurios. (b) Muestre una asignacin vlida y escriba las ecuaciones de excitaciones y salida libres de carreras crticas. 19. Disee un circuito secuencial asncrono de dos entradas, x1 y x2, y dos salidas, z1 y z2, tal que zi (para i=1,2) tome el valor 1 si y slo si xi fue la ltima entrada que cambi. Se debe instalar un semforo en una interseccin de una simple lnea de ferrocarril con un camino. El semforo estar controlado por interruptores de presin puestos en los rieles a 700 metros del cruce. Cuando un tren se aproxima, desde cualquiera direccin, y est a menos de 700 metros del cruce, la luz del semforo debe cambiar a rojo y permanecer en rojo hasta que el tren haya pasado el cruce en 700 metros. Recuerde que los trenes tienen un largo mucho menor que 1400 metros. (a) Disee el controlador del semforo. 21. La figura ilustra una oficina para dos personas , con una puerta de entrada y otra de salida. En vez de interruptores de luz, tiene dos fotoceldas, una en cada puerta. Si una o ambas personas estn en la oficina la luz debe estar encendida , en caso contrario debe estar apagada . Las persona pueden entrar y salir slo como se muestra y no se permiten entradas y salidas simultaneas. Las fotoceldas indican un 1 cuando su haz es interrumpido y un 0 en todo otro instante de tiempo. (a) Encuentre una tabla de flujo reducida que describa el control de la luz. (b) Muestre una asignacin vlida y encuentre las funciones de excitacin y salida.

18.

20.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

22

22.

Una fbrica produce barras de acero de largo L + y L - . Se requiere ordenar estas barras colocndolas una tras otra sobre una correa transportadora, para pasarlas bajo dos fotoceldas, como se muestra en la figura. El espaciamiento entre barras en la correa es mayor que . a la derecha de P2 hay una trampa a travs de la cual deben caer las barras cortas. La puerta de la trampa debe estar cerrada cuando el haz de P2 es interrumpido y debe ser abierta inmediatamente despus que la barra corta (L - ) ha pasado completamente P2. Asuma que la salida xi de Pi es 1 cuando el haz de Pi es interrumpido. Asuma tambin que la seal controladora de la trampa, z, debe ser 1, cuando la puerta est abierta. (a) Encuentre una tabla de flujos reducida mnima con ocho estados que describa la operacin de la puerta de la trampa. (b) Encuentre una asignacin vlida y desarrolle el circuito de control

23.

A la tabla de flujos reducida que se muestra se le deben asignar tres variables secundarias, como se muestra en la tabla de excitaciones. Note que varias combinaciones de valores de y1 y2 y3 deben ser asignados a los dos primeros renglones de la tabla reducida. Complete la tabla de excitaciones tal que cada transicin, requiera el menor tiempo posible y no existan carreras crticas.

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

23

Y1Y2Y3 y1y2y3 a -- 000 a -- 001 a -- 011 b -- 010 b -- 100 b -- 101 c -- 111 d -- 110 x1x2 00 01 11 10

24.

(a) Encuentre todas las carreras crticas de la tabla de excitaciones que se muestra e indique cuales son crticas y cuales no lo son. (b) Encuentre otra asignacin que no contenga carreras crticas (c) Disee el circuito Y1 Y2 y1y2 00 01 10 11 x1x2 00 01 00 11 00 11 11 01 10 11 11 00 11 11 00 10 11 11 11 11

JGL

UNIVERSIDAD DE SANTIAGO DE CHILE FACULTAD DE INGENIERIA

24

25.

Para cada una de las tablas de flujo reducidas siguientes, encuentre una asignacin vlida libre de carreras crticas y requieran un mnimo de variables secundarias.

JGL

Universidad de Santiago Facultad de Ingeniera

CAPITULO 7 CIRCUITOS SECUENCIALES


FLIP-FLOPS

JGL

Universidad de Santiago Facultad de Ingeniera

JGL

Universidad de Santiago Facultad de Ingeniera

REGISTROS

JGL

Universidad de Santiago Facultad de Ingeniera

JGL

Universidad de Santiago Facultad de Ingeniera

JGL

Universidad de Santiago Facultad de Ingeniera

CONTADORES/DIVISORES DE FRECUENCIA ASINCRONOS

METODOS PARA ARMAR CONTADORES ASINCRONOS PARA MODULOS DISTINTOS DE UNA POTENCIA DE 2

USO DEL PRESET 1. Encuentre el nmero n de flip-flop's requeridos: 2n-1 N 2n donde N = Mdulo de la Cuenta. Si N no es una potencia de 2 use la potencia siguiente ms alta. Conecte todos los flip-flop's como un contador "ripple" Encuentre el nmero binario N-1. Conecte las salidas de los flip-flop's que a la cuenta N-1 se encuentren en 1, a una compuerta NAND. Alimente tambin la compuerta NAND, con la entrada de los pulsos a contar. Conecte la salida de la compuerta NAND a los PRESET de todos los flip-flop's que a la cuenta N-1 se encuentren en 0.

2. 3. 4.

5.

JGL

Universidad de Santiago Facultad de Ingeniera

USO DEL CLEAR 1. Encuentre el nmero n de flip-flop's requeridos: 2n-1 N 2n donde N = Mdulo de la Cuenta. Si N no es una potencia de 2, use la potencia siguiente ms alta. Conecte todos los flip-flop's como un contador "ripple"

2.

3. Encuentre el nmero binario N. 4. Conecte las salidas de los flip-flop's que a la cuenta N se encuentren en 1, a una compuerta NAND. Conecte la salida de la compuerta NAND a los CLEAR de todos los flip-flop's.

5.

NOTA : En este caso se requiere un "Latch" entre la salida de la compuesta NAND y los CLEAR.

JGL

Universidad de Santiago Facultad de Ingeniera

JGL

Universidad de Santiago Facultad de Ingeniera

RAM (Memoria de Escritura/Lectura)

JGL

Universidad de Santiago Facultad de Ingeniera

10

JGL

Universidad de Santiago Facultad de Ingeniera

CAPITULO 8 MICROPROCESADORES

JGL

Universidad de Santiago Facultad de Ingeniera

EL MICROPROCESADOR 8080
El microprocesador 8080 es un Chip de alta integracin ( LSI ) de 40 pines que contiene un BUS de Direcciones de 16 lneas , un Bus de Datos de 8 lneas, 10 lneas de control, 4 lneas para fuentes de poder y dos entradas para un reloj de dos fases.

JGL

Universidad de Santiago Facultad de Ingeniera

CICLO DE OPERACION
El procesador ejecuta instrucciones que residen en una memoria externa. Las instrucciones son de 1, 2 3 bytes, siendo siempre el primer byte el cdigo de la instruccin. Las instrucciones deben estar puestas en posiciones consecutivas de la memoria, constituyendo un programa. El procesador, en un instante dado trae, desde la posicin de memoria indicada por el CONTADOR DE PROGRAMA, un byte (el cdigo de la instruccin) y lo coloca en el REGISTRO DE INSTRUCCIONES. Posteriormente, incrementa el Contador de Programa en 1 y procede a la ejecucin de la instruccin. Terminada la ejecucin vuelve a repetir el ciclo. Es decir, el traer un byte desde la posicin de memoria indicada por el contador de programa, colocarlo en el registro de instrucciones, incrementar el contador de programa y ejecutar la instruccin es un ciclo que se repite indefinidamente en el tiempo, mientras el procesador se encuentre encendido. Debe tenerse presente que el contador de programa se incrementa en 1 cada vez que se ingresa a la CPU un byte de instruccin.

REGISTROS DE PROPOSITO GENERAL


Existen 7 registros de propsito general, a saber, A, B, C, D, E, H y L. Estos registros de 8 bit pueden ser usados por el usuario para acumular informacin. Pueden ser incrementados o decrementados en 1. El registro A es conocido como el ACUMULADOR y puede, adems de servir como registro de acumulacin, efectuar operaciones aritmeticas de suma y resta u operaciones lgicas AND, OR, OR-EXCLUSIVO Y COMPARE. Trabaja con 5 banderas de condicin (flip-flops) que dan cuenta de su estado.
JGL

Universidad de Santiago Facultad de Ingeniera

EL PUNTERO DE PILA (STACK POINTER)


El Stack o Pila es una regin de memoria usada para guardar datos transitoriamente y que debern ser usados posteriormente. Esta regin est apuntada por el registro puntero del stack (SP). Cuando se ingresa un byte en el stack el puntero primero se decrementa en 1. Cuando se saca un byte del stack, primero se extrae el dato y despus se incrementa. Luego, el puntero est siempre indicando la posicin de memoria del ltimo dato ingresado al stack. Este sistema es conocido con el nombre LIFO (Last In First Out). El stack es usado por las instrucciones de llamado a subrutinas CALL y por las Interrupciones. Adems, pueden ingresarse o sacarse datos del stack por medio de las instrucciones PUSH Y POP

SEALES Y BUSES DEL MICROPROCESADOR


FUENTES DE PODER pin 28 +12 Volts pin 20 +5 Volts pin 2 Tierra ( GND ) pin 11 -5 Volts RELOJ El 8080 requiere de un RELOJ DE DOS FASES NO TRASLAPADO pin 22 pin 15 Fase 1 del reloj Fase 2 del reloj

US DE DIRECCIONES El microprocesador 8080 puede direccionar directamente hasta 65.536 ( 64 Kilos ) de posiciones de memoria a travs del uso de un bus de direcciones de 16 lneas. pin 25 Bit A0., el bit menos significativo ( LSB ) pin 26 Bit A1 pin 27 Bit A2 pin 29 Bit A3 pin 30 Bit A4 pin 31 Bit A5
JGL

Universidad de Santiago Facultad de Ingeniera pin 32 pin 33 pin 34 pin 35 pin 1 pin 40 pin 37 pin 38 pin 39 pin 36 BUS DE DATOS Bit A6 Bit A7, el bit ms significativo ( MSB ) del cdigo de dispositivo Bit A8, el bit menos significativo del cdigo de dispositivo Bit A9 Bit A10 Bit A11 Bit A12 Bit A13 Bit A14 Bit A15, el bit ms significativo ( MSB )

El 8080 es un microprocesador de 8 bits, lo que significa que tiene un registro acumulador de 8 bit, varios registros de propsitos generales de 8 bit y un bus de datos bidireccional de 8 bit. El que este bus sea bidireccional significa que los datos pueden salir del microprocesador o ser ingresados a travs de el. Y, adems es un bus de tres estados ( 1, 0 desconectado ). pin 10 pin 9 pin 8 pin 7 pin 3 pin 4 pin 5 pin 6 Bit D0 del dato, el menos significativo Bit D1 del dato Bit D2 del dato Bit D3 del dato Bit D4 del dato Bit D5 del dato Bit D6 del dato Bit D7 del dato, el ms significativo

CONTROLES Los controles determinan como debe funcionar el microprocesador. Existen cuatro seales de entrada de control, que son : pin 12 pin 14 RESET. Un 0 lgico en esta entrada lleva a cero el contador de programa INT, Requerimiento de Interrupcin. Un 1 lgico en esta entrada generar un requerimiento de interrupcin, que el microprocesador reconocer al finalizar la ejecucin de la instruccin presente o cuando est detenido. Si la CPU est en el estado HOLD, o si la bandera de permiso de interrupcin est en 0, el requerimiento de interrupcin no ser concedido. READY. Un 1 lgico le indicar al 8080 que un dato est listo en el bus de datos. Esta seal, de acuerdo con la literatura Intel, es usada para sincronizar la CPU con memorias lentas o con dispositivos I/O. Si despus de enviar una direccin por el bus de direcciones el 8080 no recibe un 1 lgico en READY, el microprocesador entrar en un estado WAIT, mientras esta lnea permanezca en 0. Esta entrada puede ser usada tambin para llevar la CPU paso a paso.
JGL

pin 23

Universidad de Santiago Facultad de Ingeniera pin 13

HOLD. Un 1 lgico en esta entrada hace que la CPU entre al estado HOLD, que permite a un dispositivo externo tomar el control de los buses de dato y direcciones, tan pronto como el 8080 halla terminado de usarlos en el ciclo de mquina presente. Cuando la CPU entra al estado HOLD, el bus de datos y el de direcciones tomarn el estado de alta impedancia (tercer estado). La CPU indicar que est en el estado HOLD por medio de la seal HLDA. HOLD es reconocido bajo dos condiciones: 1) La CPU se encuentra en el estado HALT, o 2) La CPU est en el estado T2 o Tw y la seal READY se encuentre en 1.

Las 6 salidas de control del 8080 son: pin 24 WAIT. Esta seal indica con un 1 lgico que la CPU se encuentra en el estado WAIT. ___ WR o WRITE. Esta seal es usada para escribir en Memoria o en un dispositivo I/O. Cuando este pin esta en 0 lgico el dato en el bus de datos est estable y puede ser ledo. HLDA o HOLD ACKNOWLEDGE. Esta salida toma el valor lgico 1 en respuesta a la seal de entrada HOLD. Indica que el bus de datos y de direcciones toman el estado de alta impedancia. La seal HLDA comienza: 1) en T3 para una operacin de lectura de memoria o de entrada, o 2) el perodo de reloj que sigue a T3 para una operacin de escritura en memoria o salida. INTE o INTERRUPT ENABLE. Esta seal indica el contenido de la bandera interna de permiso de interrupcin. Este flip-flop (bandera) puede ser puesto en 0 o en 1 para habilitar o deshabilitar el sistema de interrupciones por medio de las instrucciones EI o DI respectivamente. Esta bandera es limpiada automticamente ( y por lo tanto desabilitando el sistema de interrupciones ) en el tiempo T1 del ciclo de mquina FETCH cuando una interrupcin es aceptada. Esta bandera tambin es limpiada por medio de la seal RESET. SYNC ( seal de sincronizacin ). Esta seal se mantiene en 1 lgico durante el primer ciclo de reloj de cada ciclo de mquina. DBIN o DATA BUS IN. Cuando esta seal toma el valor lgico 1 indica que el Bus de Datos se encuentra en su modo de entrada

pin 18

pin 21

pin 16

pin 19

pin 17

JGL

Universidad de Santiago Facultad de Ingeniera

REPERTORIO DE INSTRUCCIONES PARA EL MICROPROCESADOR INTEL 8080/8085

Nemotcnico ADD A ADD B ADD C ADD D ADD E ADD H ADD L ADD M ADI v ADC A ADC B A ADC C ADC D ADC E ADC H ADC L ADC M ACI v ANA A ANA B ANA C ANA D ANA E ANA H ANA L ANA M ANI v

Bytes 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2

Cdigo de op (hex) 87 80 81 82 83 84 85 86 C6 8F 88 89 8A 8B 8C 8D 8E CE A7 A0 A1 A2 A3 A4 A5

Descripcin Suma A a A (doble A) Suma B a A Suma C a A Suma D a A Suma E a A Suma H a A Suma L a A Suma LOC memoria (H&L) a A Suma dato inmediato v a A Suma A a A con arrastre (doble A con arrastre) Suma B a A con arrastre Suma C a A con arrastre Suma D a A con arrastre Suma E a A con arrastre Sauma H a A con arrastre Suma L a A con arrastre Suma LOC memoria (H&L) a A con arrastre Suma dato inmediato v a A con arrastre Examina A y borra arrastre AND B con A AND C con A AND D con A AND E con A AND H con A AND L con A AND LOC memoria (H&L) con A AND dato inmediato v con A

JGL

Universidad de Santiago Facultad de Ingeniera

Nemotcnico CALL aa CZ aa CNZ aa CP aa CM aa CC aa CNC aa CPE aa C CPO aa CMA CMC CMP A CMP B CMP C CMP D CMP E CMP H CMP L CMP M CPI v DAA DAD B DAD D D DAD H DAD SP DCR A DCR B

Bytes 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1

Cdigo de op (hex) CD CC C4 F4 FC DD D4 EC E4 2F 3F BF B8 B9 BA BB BC BD BE FE 27 09 19 29 39 3D 05

Descripcin Llama a subrutina en direccin aa Si cero, llama a subrutina en direccin aa Si no cero, llama a subrutina en direccin aa Si ms, llama a subrutina en direccin aa Si menos, llama a subrutina en direccin aa Si arrastre, llama a subrutina en direccin aa Si no arrastre, llama a subrutina en direccin aa Si paridad par, llama a subrutina en direccin aa Si paridad impar, llama a subrutina en direccin aa Complementa A Complementa arrastre Pone en 1 la bandera de cero Compara A con B Compara A con C Compara A con D Compara A con E Compara A con H Compara A con L Compara A con LOC memoria (H&L) Compara A con dato inmediato v Ajuste decimal A Suma B&C a H&L Suma D&E a H&L Suma H&L a H&L (doble H&L) Suma SP a H&L Decrementa A
Decrementa B

JGL

Universidad de Santiago Facultad de Ingeniera

Nemotcnico DCR C DCR D DCR E DCR H DCR L D DCR M DCX B DCX D DCX H DCX SP DI E H EI HLT IN v INR A INR B INR C INR D I INR E INR H INR L INR M INX B INX D INX H INX SP

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) 0D 15 1D 25 2D 35 0B 1B 2B 3B F3 FB 76 DB 3C 04 0C 14 1C 24 2C 34 03 13 23 33 Decrementa C Decrementa D Decrementa E Decrementa H Decrementa L

Descripcin

Decrementa LOC memoria (H&L) Decrementa B&C Decrementa D&E Decrementa H&L Decrementa SP Inhabilita interrupciones Habilita interrupciones Alto hasta interrupcin Entrada desde el dispositivo v Incrementa A Incrementa B Incrementa C Incrementa D Incrementa E Incrementa H Incrementa L Incrementa LOC memoria (H&L) Incrementa B&C Incrementa D&E Incrementa H&L
Incrementa SP

JGL

Universidad de Santiago Facultad de Ingeniera

10

Nemotcnico JMP aa JZ aa JNZ aa JP aa J JM aa JC aa JNC aa JPE aa JPO aa LDA aa LDAX B LDAX D L LHLD aa LXI B,vv LXI D,vv LXI H,vv LXI SP,vv MOV A,B MOV A,C MOV A,D MOV A,E MOV A,H M MOV A,L MOV A, M MOV B,A MOV B,C MOV B,D MOV B,E MOV B,H

Bytes 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) C3 CA C2 F2 FA DA D2 EA E2 3A 0A 1A 2A 1 11 21 31 78 79 7A 7B 7C 7D 7 47 41 42 43 44 Salta a direccin aa

Descripcin

Si cero salta a direccin aa Si no cero, salta a direccin aa Si ms, salta a direccin aa Si menos, salta a direccin aa Si arrastre, salta a direccin aa Si no arrastre, salta a direccin aa Si paridad par, salta a direccin aa Si paridad impar, salta a direccin aa Carga A con contenido direccin aa Carga A con contenido de LOC memoria ( B & C ) Carga A con contenido de LOC memoria ( D & E ) Carga H&L con contenido direccin aa (L con LOC aa, H con LOC aa+1) Carga B & C con dato inmediato vv Carga D & E con dato inmediato vv Carga H & L con dato inmediato vv Carga SP con dato inmediato vv Transfiere B a A Transfiere C a A Transfiere D a A Transfiere E a A Transfiere H a A Transfiere L a A Transfiere LOC memoria ( H & L ) a A Transfiere A a B Transfiere C a B Transfiere D a B TransfiereE a B Transfiere H a B

JGL

Universidad de Santiago Facultad de Ingeniera

11

Nemotcnico MOV B,L MOV B,M MOV C,A MOV C,B MOV C,D MOV C,E MOV C,H MOV C,L MOV C,M MOV D,A MOV D,B MOV D,C MOV D,E M MOV D,H MOV D,L MOV D,M MOV E,A MOV E,B MOV E,C MOV E,D MOV E,H MOV E,L MOV E,M MOV H,A MOV H,B MOV H,C MOV H,D MOV H,E MOV H,L

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) 45 46 4F 48 4A 4B 4C 4D 4 57 50 51 53 54 55 56 5F 58 59 5A 5C 5D 5 67 60 61 62 63 65 Transfiere L a B

Descripcin

Transfiere LOC memoria ( H & L ) a B Transfiere A a C Transfiere B a C Transfiere D a C Transfiere E a C Transfiere H a C Transfiere L a C Transfiere LOC memoria ( H & L ) a C Transfiere A a D Transfiere B a D Transfiere C a D Transfiere E a D Transfiere H a D Transfiere L a D Transfiere LOC memoria ( H & L ) a D Transfiere A a E Transfiere B a E Transfiere C a E Transfiere D a E Transfiere H a E Transfiere L a E Transfiere LOC memoria ( H & L ) a E Transfiere A a H Transfiere B a H Transfiere C a H Transfiere D a H Transfiere E a H Transfiere L a H

JGL

Universidad de Santiago Facultad de Ingeniera

12

Nemotcnico MOV H,M MOV L,A MOV L,B MOV L,C MOV L,D MOV L,E MOV L,H MOV L,M MOV M,A MOV M,B MOV M,C M MOV M,D MOV M,E MOV M,H MOV M,L MVI A,v MVI B,v MVI C,v MVI D,v MVI E,v MVI H,v MVI L,v MVI M,v N NOP ORA A ORA B O ORA C ORA D ORA E

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1

Cdigo de op (hex) 66 6F 68 69 6A 6B 6C 6E 77 70 71 72 73 74 75 3E 06 0E 16 1E 26 2E 36 00 B7 B0 B1 B2 B3

Descripcin Transfiere LOC memoria (H & L ) a H Transfiere A a L Transfiere B a L Transfiere C a L Transfiere D a L Transfiere E a L Transfiere H a L Transfiere LOC memoria ( H & L ) a L Transfiere A a LOC memoria ( H & L ) Transfiere B a LOC memoria ( H & L ) Transfiere C a LOC memoria ( H & L ) Transfiere D a LOC memoria ( H & L ) Transfiere E a LOC memoria ( H & L ) Transfiere H a LOC memoria ( H & L ) Transfiere L a LOC memoria ( H & L ) Transfiere dato inmediato v a A Transfiere dato inmediato v a B Transfiere dato inmediato v a C Transfiere dato inmediato v a D Transfiere dato inmediato v a E Transfiere dato inmediato v a H Transfiere dato inmediato v a L Transfiere dato inmediato v a LOC memoria (H & L ) No operacin Examina A y borra arrastre OR B con A OR C con A OR D con A OR E con A

JGL

Universidad de Santiago Facultad de Ingeniera

13

Nemotcnico ORA H ORA L O ORA M ORI v OUT v PCHL POP B POP D POP H P POP PSW PUSH B PUSH D PUSH H PUSH PSW RAL RAR RLC RRC RIM RET R RZ RNZ RP RM RC RNC RPE RPO

Bytes 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) B4 B5 B6 F6 D3 E9 C1 D1 E1 F1 C5 D5 E5 F5 17 1F 07 0F 20 C9 C8 C0 F0 F8 D8 D0 E8 E0 OR H con A OR L con a

Descripcin

OR LOC memoria ( H & L ) con A OR dato inmediato v con A Saca A a dispositivo v Salta a LOC memoria contenida en ( H & L ) Carga B & C desde la pila Carga D & E desde la pila Carga H & L desde la pila Carga A y sus banderas desde la pila Introduce B & C en la pila Introduce D 6 E en la pila Introduce H & L en la Pila Introdcuce A y sus banderas en la pila Desplazamiento circular CY + A a la izquierda Desplazamiento circular CY + A a la derecha Desplazamiento circular A a la izquierda y arrastre Desplazamiento circular A a la derecha y arrastre Lee mascara de interrupcin ( 8085 solamente ) Vuelve de subrutina Si cero, vuelve de subrutina Si no cero, vuelve de subrutina Si ms, vuelve de subrutina Si menos, vuelve de subrutina Si arrastre, vuelve de subrutina Si no arrastre, vuelve de subrutina Si paridad par, vuelve de subrutina Si paridad impar, vuelve de subrutina

JGL

Universidad de Santiago Facultad de Ingeniera

14

Nemotcnico RST 0 RST 1 RST 2 R RST 3 RST 4 RST 5 RST 6 RST 7 SIM SPHL SHLD aa STA aa STAX B STAX D STC SUB A SUB B SUB C S SUB D SUB E SUB H SUB L SUB M SUI v SBB A SBB B SBB C SBB D SBB E

Bytes 1 1 1 1 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1

Cdigo de op (Hex) C7 CF D7 DF E7 EF F7 FF 30 F9 22 32 02 12 37 97 90 91 92 93 94 95 96 D6 9F 98 99 9A 9B

Descripcin Va a subrutina en direcci{on 0000H Va a subrutina en direcci{on 0008H Va a subrutina en direcci{on 0010H Va a subrutina en direcci{on 0018H Va a subrutina en direccin 0020H Va a subrutina en direccin 0028H Va a subrutina en direccin 0030H Va a subrutina en direccin 0038H Pone en 1 mscara de interrupcin ( 8085 solamente) Carga SP desde H & L Almacena H & L en LOC memoria aa Almacena A en LOC memoria aa Almacena A en LOC memoria ( B & C ) Almacena A en LOC memoria ( D & E ) Coloca en 1 bandera de arrastre Borra A Resta B de A Resta C de A Resta D de A Resta E de A Resta H de A Resta L de A Resta contenido de LOC memoria ( H & L ) de A Resta dato inmediato v de A Pone A con arrastre menos Resta B de A con prestamo Resta C de A con prestamo Resta D de A con prestamo Resta E de A con prestamo

JGL

Universidad de Santiago Facultad de Ingeniera

15

Nemotcnico SBB H S SBB L SBB M SBI v XCHG XTHL XRA A XRA B X XRA C XRA D XRA E XRA H XRA L XRA M XRI v

Bytes 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2

Cdigo de op (Hex) 9C 9D 9E DE EB E3 AF A8 A9 AA AB AC AD AE EE Resta H de A con prestamo Resta L de A con prestamo

Descripcin

Resta LOC memoria ( H& L ) de A con prestamo Resta dato immediato v de A con prestamo Intercambia D & E con H & L Intercambia tope de la pila con H & L Borra A OR exclusivo de B con A OR exclusivo de C con A OR exclusivo de D con A OR exclusivo de E con A OR exclusivo de H con A OR exclusivo de L con A OR exclusivo de LOC memoria ( H & L ) con A OR exclusivo de dato inmediato v con A

JGL

Universidad de Santiago Facultad de Ingeniera

16

BREVE DESCRIPCION DE LAS INSTRUCCIONES DEL 8080


Las instrucciones estn constituidas de 1, 2 o 3 bytes. El primer byte contiene el cdigo de operacin de la instruccin y los bytes siguientes contienen un datos. 1.- Instrucciones de transferencias de datos. MOV x,y. Son instrucciones de un byte, que copian el contenido de un registro y, en otro registro x. Los registros x e y pueden ser cualesquiera de los registros de propsito general del procesador, o, un registro de la memoria. En este ltimo caso, la direccin del registro de memoria est contenida en el par de registros H y L. Por ejemplo, MOV M,B , copia el contenido del registro B en la posicin de memoria indicada por HL. MVI X,v Son instrucciones de movimiento inmediato de dos bytes. El primer byte indica el cdigo de la instruccin y, el segundo byte, contiene el dato v que ser copiado en el registro X. X es cualquiera de los registros de propsito general, o, una posicin de memoria indicada por HL. LXI P,vv Son instrucciones de movimiento inmediato de tres bytes. El primer byte indica el cdigo de la instruccin y los dos bytes restantes contienen el dato vv que ser cargado en el par de registros P. P puede ser el par de registros BC, DE, HL el puntero de pila SP. Instrucciones de transferencias del Acumulador STAX B STAX D Son instrucciones de un byte, que transfieren el contenido del Acumulador a la posicin de memoria indicada por el par de registros BC o DE, respectivamente. LDAX B LDAX D Son instrucciones de un byte, que cargan el Acumulador con en contenido de la posicin de memoria indicada por el par de registros BC o DE, respectivamente. STA aa Es una instruccin de tres bytes que copia el contenido del Acumulador en la posicin de memoria indicada en los bytes 2 y 3 de la propia instruccin (aa). LDA aa Es una instruccin de tres bytes que carga el Acumulador con el contenido de la direccin indicada en los bytes 2 y 3 de la propia instruccin (aa). Instrucciones de transferencia para el par HL SHLD aa Instruccin de tres bytes que copia el contenido del registro L en la direccin aa y el contenido de H en aa + 1.
JGL

Universidad de Santiago Facultad de Ingeniera

17

LHLD aa Instruccin de tres bytes que carga el registro L con el contenido de la direccin aa y H con el contenido de la direccin aa + 1. SPHL Instruccin de un byte que copia el contenido del par HL en el registro puntero de pila SP. Instrucciones de intercambio XCHG Instrucin de un byte que intercambia el contenido del par HL con el contenido del par DE XTHL Intercambia el tope de la Pila con el contenido de HL. El contenido del registro L es intercambiado con el contenido de la posicin de memoria cuya direccin est especificada por SP. El contenido del registro H es intercambiado con el contenido de la posicin de memoria SP+1. Instrucciones de trasferencias con la Pila PUSH x Instrucciones de un byte que cargan la pila con el par de registros x. Por ej. PUSH B, introduce el contenido del registro B en la posicin de memoria SP-1, y el contenido del registro C en SP2 (SP = Contenido del Puntero de Pila). POP x Instrucciones de un byte que permiten extraer dos bytes desde la pila y cargarlos en el par de registros nombrado. Por ej. POP B extrae el contenido de la posicin de memoria SP y lo carga en el registro C y, el contenido de SP+1 lo carga en B.

2.- Instrucciones aritmticas y lgicas Existen ocho operaciones aritmticas y lgicas : Suma Suma con acarreo Resta Resta con reserva AND OR-Exclusivo OR Compare Estas operaciones se realizan sobre el Acumulador y el resultado queda en el Acumulador ( excepto el COMPARE ). Por ejemplo ADD B suma al Acumulador el contenido del registro B y el resultado queda en el Acumulador. En la suma con acarreo (o resta con reserva), se suma (o resta) el contenido de la bandera de condicin CY al bit menos significativo del Acumulador. Las operaciones aritmticas se desarrollan en notacin de complemento a 2. Las operaciones lgicas AND, OR y OR-EXCLUSIVO se realizan bit a bit entre el
JGL

Universidad de Santiago Facultad de Ingeniera registro correspondiente y el Acumulador.

18

La operacin COMPARE compara si el contenido de un registro es igual, mayor o menor que el contenido del acumulador. Esto lo realiza el procesador de la misma manera que una resta, pero sin guardar el resultado en el acumulador y slo son afectadas las banderas de condicin Z y S, concordantemente con el resultado de la eventual resta. Operaciones con registros. Son instrucciones aritmticas o lgicas de un slo byte, en que est denominado el registro cuyo contenido va a ser operado con el acumulador. Por ej. ADD B, SUB M, CMP L, etc. Tal como en el caso de las instrucciones MOV, el registro M es aquel registro de la memoria cuya direccin est indicada por el par de registros H y L.

Operaciones Inmediatas En este tipo de instrucciones de dos bytes, la propia instruccin contiene el dato a operar con el acumulador. Por ej. ADI 20h, suma 20h al acumulador.

Complementar el acumulador La instruccin de un byte CMA, complementa el acumulador

Operaciones de suma al par HL Las instrucciones de un byte DAD B, DAD C, DAD H y DAD SP, suman a HL el contenido del par de registros nombrado en la instruccin.

3.- Incrementar/Decrementar Son instrucciones de un slo byte que suman o restan un 1 en la posicin menos significativa de un registro, posicin de memoria indicada por HL, par de registros de propsito general, o, al puntero de pila ( por ejemplo: DCR C,INX B ). 4.- Rotaciones Estas operaciones, de un slo byte, se realizan slo en el acumulador. RLC Desplaza el contenido del acumulador una posicin a la izquierda. El bit ms significativo (que se perdera en el desplazamiento) es introducido en el bit menos significativo del acumulador y adems en la bandera de acarreo CY RRC Desplaza el contenido del acumulador una posicin a la derecha. El bit menos significativo (que se perdera en el desplazamiento) es introducido en la posicin ms significativa del acumulador y adems en la bandera de acarreo CY. RAL Desplaza el contenido del acumulador una posicin a la izquierda a travs de la bandera de
JGL

Universidad de Santiago Facultad de Ingeniera

19

acarreo CY. Simultneamente, introduce el bit ms significativo del acumulador en la bandera de acarreo y el contenido de la bandera de acarreo es introducido en la posicin menos significativa del acumulador. RAR Desplaza el contenido del acumulador una posicin a la derecha a travs de la bandera de acarreo CY. Simultneamente, introduce el bit menos significativo del acumulador en la bandera de acarreo y el contenido de la bandera de acarreo es introducido en la posicin ms significativa del acumulador. 5.- Instrucciones de Salto Estas instrucciones alteran el contenido del Contador de Programa, permitiendo con ello romper la secuencia natural de ejecucin de instrucciones por el procesador. Existen tres tipos de instrucciones de salto, los JUMP, los CALL y los RETURN Las instrucciones JUMP son de tres bytes. Los bytes 2 y 3 deben contener una direccin de memoria. La ejecucin de este tipo de instrucciones consiste en reemplazar el contenido del Contador de Programa por el contenido de los bytes 2 y 3 de la instruccin. Entonces, como consecuencia de esta operacin, la siguiente instruccin que se ejecutar ser la que se encuentra en la posicin de memoria indicada por los Bytes 2 y 3 de la instruccin y no aquella que se encuentra a continuacin de la instruccin Jump (produciendo un salto del programa. Esto es similar a las instrucciones GOTO de los lenguajes de alto nivel). Las instrucciones CALL son tambin de tres bytes y realizan la misma operacin que los JUMP, excepto que, previo a reemplazar el contenido del Contador de Programa con los bytes 2 y 3, guarda el contenido del Contador de Programa en la Pila (en las posiciones de memoria indicadas por el Puntero de Pila SP menos 1 y menos 2. Las instrucciones RETURN constan de un slo byte y lo que realizan es tomar dos bytes desde la pila (desde SP y SP + 1) e ingresarlos al Contador de Programa. La pareja CALL, RETURN permite el uso de Subrutinas. Por medio del CALL se llama a ejecutar una subrutina que comienza en la posicin de memoria indicada por los bytes 2 y 3 de la instruccin y con el RETURN se vuelve al programa principal ( Return debe ser la ltima instruccin de la subrutina). Las instrucciones JUMP, CALL y RETURN son Incondicionales y Condicionales. Las Incondicionales funcionan de la manera descrita anteriormente. En las Condicionales su ejecucin depender del valor de alguna de las banderas de condicin del Acumulador. Si la bandera elegida est en un valor determinado ( 0 1 ), se efecta el salto, en caso contrario el contador de programa no es alterado y por consiguiente no se efecta el salto, continuando la ejecucin del programa con la instruccin que sigue al JUMP, CALL o RETURN en uso. Por ej. JNZ 2020h, salta a la direccin 2020h si la bandera de cero Z se encuentra en 0, en caso contrario ( Z = 1 ) se continua con la instruccin siguiente del programa principal. Adems de las instrucciones CALL descritas, existen las instrucciones CALL de un slo byte RSTi (i=0...7), que son llamadas a Subrutinas en posiciones fijas de la memoria. Por ej. RST0 salta a la posicin de memoria 0000h, RST1 salta a 0010h, RST2 a 0020h, etc.

JGL

Universidad de Santiago Facultad de Ingeniera

20

Por ltimo, existe la instruccin JUMP de un byte PCHL, que carga el Contador de Programa con el contenido del par de registros HL. Esto permite efectuar saltos a posiciones de memoria indicadas por el par HL. 6.- Instrucciones I/O IN v, OUT v Son instrucciones de dos bytes que permiten trasferir un byte desde un registro externo v (distinto de la memoria) al acumulador (IN v) o desde el acumulador a un registro externo v. El segundo byte de la instruccin debe contener el cdigo del registro externo involucrado. Por ej. OUT 5Bh, transfiere el contenido del acumulador al registro externo cuyo cdigo es 5Bh 7.- Instrucciones de control EI y DI Permiten habilitar (EI) o deshabilitar (DI) el sistema de interrupciones. EI coloca en 1 la bandera de permiso de interrupcin INTE y DI la coloca en 0. HLT Detiene el microprocesador. Los registros y banderas no son afectados NOP No realiza ninguna operacin, slo gasta tiempo. CMP Complementa bandera de acarreo CY STC Colca en 1 la bandera de acarreo CY RIM Lee mscara de interrupcin ( 8085 solamente ) SIM Pone en 1 mscara de interrucin ( 8085 solamente )

JGL

Universidad de Santiago Facultad de Ingeniera

21

Ejemplo de programacin: Sumar tres nmeros que se encuentran en las posiciones de memoria 2010H, 2011H, 2012H y acumular el resultado en la posicin 2013H

Direccin (hex) 2020 2021 2022

Contenid o (hex) 21 10 20

Etiqueta

Nemotcnico Comentarios LXI H,2010H Carga el registro par HL con 2010H

JGL

Universidad de Santiago Facultad de Ingeniera 2023 7E MOV A,M Carga el acumulador con el primer nmero, contenido en la posicin de memoria 2010H

22

2024 2025 2026 2027 2028 2029 202A

23 86 23 86 23 77 76

INX H ADD M INX H ADD M INX H MOV M,A HLT

Incrementa el registro par HL a 2011H Suma el segundo nmero, contenido en la posicin 2011H, al acumulador Incrementa el registro par HL a 2012H Suma el tercer nmero, contenido en la posicin 2012H, al acumulador Incrementa el registro par HL a 2013H Almacena la suma del acumulador el la posicin de memoria 2013H Detiene la CPU

(c) Programas en lenguaje ensamblador y de mquina

JGL

Universidad de Santiago Facultad de Ingeniera Ejemplo de programacin: Comparar dos nmeros y almacenar el mayor

23

Diagrama de flujo detallado

Etiqueta

Nemotcnico MVI A,0FH MVI L,06H CMP L JC ACUM_L STA 2040H HLT

Comentarios ; Carga acumulador con el primer nmero (1510) ; Carga registro L con el segundo nmero (610) ; Compara (A) y (L) Bandera CY = 1 si A< L ; Salta a la posicin de ACUM_L si CY = 1 ( si A < L ) ; Almacena (A) en posicin de memoria 2040H ; Detiene la CPU ; Transfiere el contenido del registro L al acumulador ; Almacena (A) en la posicin de memoria 2040H ; Detiene la CPU

ACUM_L

MOV A,L STA 2040H HLT

JGL

Universidad de Santiago Facultad de Ingeniera

24

Ejemplo de programacin: Cuenta del 0 al 9 y los almacena en posiciones consecutivas de memoria.

Diagrama de flujo y almacena"

detallado de "cuenta

Etiqueta

Nemotcnico LXI H,2040H XRA A

Comentarios ; Carga el registro HL con 2040H ; Pone el acumulador a 00H ; Almacena el contenido de A en la posicin de memoria apuntada por HL ; Incrementa HL ; Incrementa el acumulador ; Compara es (A) igual a 09H ? Si (A) = 09H, entonces la bandera Z se coloca en 1 ; Salta a la posicin LOOP si Z = 0 ( si (A) < 09H, en caso contrario contina con la siguiente instruccin ; Detiene la CPU
JGL

LOOP

MOV M,A INX H INR A CPI 09H JNZ LOOP HLT

Universidad de Santiago Facultad de Ingeniera

25

Programa en lenguaje ensamblador de "cuenta y almacena"

BITS DE ESTATUS Y CICLOS DE MAQUINA


B I T S CICLOS DE MAQUINA MEM R D7 1 1 0 1 0 0 0 0 1 0 INP D7 M1 D5 D E S T A T U S OUT D4 HLTA D3 STACK D2 ----WO D1 INTA D0

FETCH MEMORY READ MEMORY WRITE STACK READ STACK WRITE INPUT OUTPUT INTERRUPT HALT INTERRUPT WHILE HALT

0 0 0 0 0 1 0 0 0 0

1 0 0 0 0 0 0 1 0 1

0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 0 0 1 1

0 0 0 1 1 0 0 0 0 0

1 1 0 1 0 1 0 1 1 1

0 0 0 0 0 0 0 1 0 1

CAPTURA DE LOS BITS DE STATUS


Los bits de status aparecen por el bus de datos, cuando la seal de sincronismo (SYNC) se

JGL

Universidad de Santiago Facultad de Ingeniera

26

encuentra en 1. Es decir, en el primer ciclo de reloj de cada ciclo de mquina (respecto de la fase 2 del reloj).

CICLOS DE MAQUINA
FETCH Es el primer ciclo de mquina de toda instruccin. Consiste de 4 o 5 pulsos de reloj, con la excepcin de los estados WAIT, HLDA y HLTA, que tienen cualquier nmero de ciclos de reloj mayor que 3. Durante este ciclo, el cdigo de operacin de la instruccin es trado (fetched) desde la posicin de memoria indicada por el contador de programa y puesto en el registro de instrucciones. Una vez realizado esto, incrementa el contador de programa en 1. Durante este ciclo de mquina se producen adems transferencias simples entre los registros internos de la CPU y tambin se realizan operaciones aritmticas y lgicas. Para algunas instrucciones, este es el nico ciclo de mquina requerido. MEMORY READ Este ciclo de mquina consiste de 3 ciclos de reloj. Durante este ciclo, es transferido un byte desde la posicin de memoria indicada por el contador de programa y puesto en alguno de los registros internos del procesador. Al final incrementa el contador de programa en 1. MEMORY WRITE Este ciclo de mquina consiste de 3 o 4 ciclos de reloj. Durante este ciclo, el contenido de un registro es transferido a la posicin de memoria indicada por el para de registros HL. HL puede ser tambin incrementado o decrementado. OUTPUT Este ciclo de mquina consiste de 3 ciclos de reloj, durante los cuales es puesto en el bus de direcciones el cdigo del dispositivo de salida y, el contenido del acumulador, es puesto en el bus de datos. INPUT Este ciclo de mquina consiste de 3 ciclos de reloj, durante los cuales el cdigo del dispositivo de entrada es puesto en el bus de direcciones y, el buffer/latch del bus de datos es puesto en su modo de entrada para capturar el dato del bus de datos externo y llevarlo al acumulador. STACK WRITE Durante este ciclo de mquina consistente de 3 ciclos de reloj, un byte es puesto en el bus de datos externo y transferido a la posicin de memoria indicada por el registro puntero del stack (SP) menos 1 o menos 2, es decir, M(SP - 1) o M(SP - 2). Debe tenerse presente que primero el registro SP es decrementado y posteriormente se escribe en esa nueva posicin indicada por SP.

STACK READ Durante este ciclo de mquina de 3 ciclos de reloj, un byte es transferido desde la posicin de
JGL

Universidad de Santiago Facultad de Ingeniera

27

memoria indicada por SP o SP + 1 a alguno de los registros internos del procesador tales como H, L, B, C ,D, E, o, el contador de programa. Debe tenerse presente que primero se efecta la transferencia y posteriormente el registro SP es incrementado. HALT Este ciclo de mquina contiene cualquier nmero entero de ciclos de reloj mayor que 3. El microprocesador permanece en el estado WAIT mientras la seal de entrada READY se encuentre en 0 lgico. La salida WAIT del 8080 toma el valor lgico 1 para indicar que la CPU se encuentra en el estado WAIT. INTERRUPT Este ciclo de mquina de 5 ciclos de reloj, se asemeja al ciclo FETCH, excepto que el contador de programa no es incrementado, para permitir que el estatus existente, previo a la interrupcin, sea salvado en el stack. Esto permite un retorno ordenado al programa interrumpido despus que el requerimiento de interrupcin ha sido procesado.

BITS DE STATUS
INTA Un 1 lgico en esta seal indica que una interrupcin ha sido concedida. Esta seal debera ser usada para colocar una instruccin RST en el bus de datos externo para ser introducida al 8080 cuando DBIN tome el valor 1. ___ W0 Si la operacin del ciclo de mquina en curso es una escritura en memoria o una operacin de salida a un dispositivo externo, este bit tomar el valor 0. Si la operacin es una lectura desde la memoria o entrada desde un dispositivo externo, este bit tomar el valor 1. STACK Un 1 lgico indica que el bus de direcciones contiene la direccin indicada por el registro puntero del stack.

HLTA Seal de reconocimiento de una instruccin HALT. Cuando el procesador est en el ciclo de mquina HALT, este bit toma el valor 1 lgico.

OUT Cuando este bit toma el valor 1 lgico, indica que el bus de direcciones contiene el Cdigo del Dispositivo de salida (8 bits. El cdigo aparece repetido en las 8 lneas menos significativa y en las 8 lneas ms significativas del bus de direcciones ) y que el bus de datos externo contendr el contenido del acumulador cuando la seal de salida WR tome el valor 0 lgico. M1 Este bit toma el valor 1 lgico para indicar que la CPU se encuentra en un ciclo Fetch.
JGL

Universidad de Santiago Facultad de Ingeniera INP

28

Cuando este bit toma el valor 1 lgico, indica que el bus de direcciones contiene el Cdigo del Dispositivo de entrada (8 bits. El cdigo aparece repetido en las 8 lneas menos significativa y en las 8 lneas ms significativas del bus de direcciones ) y que el dato deber ser puesto en el bus de datos externo cuando la seal DBIN tome el valor 1 lgico. MEMR Un 1 en este bit indica que el bus de datos externo contendr datos provenientes de la memoria durante el ciclo de mquina MEMORY READ.

LAS INTERRUPCIONES
Por interrupcin se entiende al acto en que un dispositivo externo solicita al procesador ser atendido y para ello, la CPU debe suspender transitoriamente la tarea que este realizando, para despus que haya atendido al dispositivo, reinicie la ejecucin de dicha tarea. Para el caso del 8080, el dispositivo externo solicita la interrupcin colocando un 1 en la entrada de control INT. El procesador, al trmino de cada instruccin que este ejecutando, verifica el estado de la bandera de permiso de interrupcin (INTE). Si esta se encuentra en 0, indicando que el sistema de interrupciones est deshabilitado, no concede la interrupcin y continua con la siguiente instruccin del programa que est ejecutando. En cambio, si la bandera est en 1, indicando que el sistema de permiso de interrupcin est habilitado, verifica si la seal INT se encuentra en 1 ( un dispositivo externo est solicitando servicio ), concede la interrupcin y vuelve a cero la bandera de permiso de interrupcin. Cuando el procesador concede la interrupcin guarda el contenido del Contador de Programa en el Stack y el dispositivo externo debe colocar en el bus de datos una de las 8 instrucciones RST. El 8080 coloca esta instruccin en el Registro de Instrucciones y procede a ejecutarla. Debemos recordar que las instrucciones RST son del tipo CALL a posiciones fijas de la memoria, por consiguiente en dicha direccin debe estar el comienzo de la subrutina de servicio que atiende al dispositivo que solicit la interrupcin. Como toda subrutina, la ltima instruccin debe ser del tipo RETURN, para retomar la ejecucin del programa que fue interrumpido. Cada vez que se concede una interrupcin, la bandera INTE vuelve a cero, quedando deshabilitado el sistema para subsecuentes requerimientos de interrupciones. La bandera INTE se puede colocar en 1 o en 0 con las instrucciones DI y EI respectivamente.

DISPOSITIVOS DE ENTRADA / SALIDA

JGL

Universidad de Santiago Facultad de Ingeniera

29

JGL

Universidad de Santiago Facultad de Ingeniera

30

JGL

REPERTORIO DE INSTRUCCIONES PARA EL MICROPROCESADOR INTEL 8080/8085

Nemotcnico ADD A ADD B ADD C ADD D ADD E ADD H ADD L ADD M ADI v ADC A ADC B A ADC C ADC D ADC E ADC H ADC L ADC M ACI v ANA A ANA B ANA C ANA D ANA E ANA H ANA L ANA M ANI v

Bytes 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2

Cdigo de op (hex) 87 80 81 82 83 84 85 86 C6 8F 88 89 8A 8B 8C 8D 8E CE A7 A0 A1 A2 A3 A4 A5

Descripcin Suma A a A (doble A) Suma B a A Suma C a A Suma D a A Suma E a A Suma H a A Suma L a A Suma LOC memoria (H&L) a A Suma dato inmediato v a A Suma A a A con arrastre (doble A con arrastre) Suma B a A con arrastre Suma C a A con arrastre Suma D a A con arrastre Suma E a A con arrastre Sauma H a A con arrastre Suma L a A con arrastre Suma LOC memoria (H&L) a A con arrastre Suma dato inmediato v a A con arrastre Examina A y borra arrastre AND B con A AND C con A AND D con A AND E con A AND H con A AND L con A AND LOC memoria (H&L) con A AND dato inmediato v con A

Nemotcnico CALL aa CZ aa CNZ aa CP aa CM aa CC aa CNC aa CPE aa C CPO aa CMA CMC CMP A CMP B CMP C CMP D CMP E CMP H CMP L CMP M CPI v DAA DAD B DAD D D DAD H DAD SP DCR A DCR B

Bytes 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1

Cdigo de op (hex) CD CC C4 F4 FC DD D4 EC E4 2F 3F BF B8 B9 BA BB BC BD BE FE 27 09 19 29 39 3D 05

Descripcin Llama a subrutina en direccin aa Si cero, llama a subrutina en direccin aa Si no cero, llama a subrutina en direccin aa Si ms, llama a subrutina en direccin aa Si menos, llama a subrutina en direccin aa Si arrastre, llama a subrutina en direccin aa Si no arrastre, llama a subrutina en direccin aa Si paridad par, llama a subrutina en direccin aa Si paridad impar, llama a subrutina en direccin aa Complementa A Complementa arrastre Pone en 1 la bandera de cero Compara A con B Compara A con C Compara A con D Compara A con E Compara A con H Compara A con L Compara A con LOC memoria (H&L) Compara A con dato inmediato v Ajuste decimal A Suma B&C a H&L Suma D&E a H&L Suma H&L a H&L (doble H&L) Suma SP a H&L Decrementa A
Decrementa B

Nemotcnico DCR C DCR D DCR E DCR H DCR L D DCR M DCX B DCX D DCX H DCX SP DI E H EI HLT IN v INR A INR B INR C INR D I INR E INR H INR L INR M INX B INX D INX H INX SP

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) 0D 15 1D 25 2D 35 0B 1B 2B 3B F3 FB 76 DB 3C 04 0C 14 1C 24 2C 34 03 13 23 33 Decrementa C Decrementa D Decrementa E Decrementa H Decrementa L

Descripcin

Decrementa LOC memoria (H&L) Decrementa B&C Decrementa D&E Decrementa H&L Decrementa SP Inhabilita interrupciones Habilita interrupciones Alto hasta interrupcin Entrada desde el dispositivo v Incrementa A Incrementa B Incrementa C Incrementa D Incrementa E Incrementa H Incrementa L Incrementa LOC memoria (H&L) Incrementa B&C Incrementa D&E Incrementa H&L
Incrementa SP

Nemotcnico JMP aa JZ aa JNZ aa JP aa J JM aa JC aa JNC aa JPE aa JPO aa LDA aa LDAX B LDAX D L LHLD aa LXI B,vv LXI D,vv LXI H,vv LXI SP,vv MOV A,B MOV A,C MOV A,D MOV A,E MOV A,H M MOV A,L MOV A, M MOV B,A MOV B,C MOV B,D MOV B,E MOV B,H

Bytes 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) C3 CA C2 F2 FA DA D2 EA E2 3A 0A 1A 2A 1 11 21 31 78 79 7A 7B 7C 7D 7 47 41 42 43 44 Salta a direccin aa

Descripcin

Si cero salta a direccin aa Si no cero, salta a direccin aa Si ms, salta a direccin aa Si menos, salta a direccin aa Si arrastre, salta a direccin aa Si no arrastre, salta a direccin aa Si paridad par, salta a direccin aa Si paridad impar, salta a direccin aa Carga A con contenido direccin aa Carga A con contenido de LOC memoria ( B & C ) Carga A con contenido de LOC memoria ( D & E ) Carga H&L con contenido direccin aa (L con LOC aa, H con LOC aa+1) Carga B & C con dato inmediato vv Carga D & E con dato inmediato vv Carga H & L con dato inmediato vv Carga SP con dato inmediato vv Transfiere B a A Transfiere C a A Transfiere D a A Transfiere E a A Transfiere H a A Transfiere L a A Transfiere LOC memoria ( H & L ) a A Transfiere A a B Transfiere C a B Transfiere D a B TransfiereE a B Transfiere H a B

Nemotcnico MOV B,L MOV B,M MOV C,A MOV C,B MOV C,D MOV C,E MOV C,H MOV C,L MOV C,M MOV D,A MOV D,B MOV D,C MOV D,E M MOV D,H MOV D,L MOV D,M MOV E,A MOV E,B MOV E,C MOV E,D MOV E,H MOV E,L MOV E,M MOV H,A MOV H,B MOV H,C MOV H,D MOV H,E MOV H,L

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) 45 46 4F 48 4A 4B 4C 4D 4 57 50 51 53 54 55 56 5F 58 59 5A 5C 5D 5 67 60 61 62 63 65 Transfiere L a B

Descripcin

Transfiere LOC memoria ( H & L ) a B Transfiere A a C Transfiere B a C Transfiere D a C Transfiere E a C Transfiere H a C Transfiere L a C Transfiere LOC memoria ( H & L ) a C Transfiere A a D Transfiere B a D Transfiere C a D Transfiere E a D Transfiere H a D Transfiere L a D Transfiere LOC memoria ( H & L ) a D Transfiere A a E Transfiere B a E Transfiere C a E Transfiere D a E Transfiere H a E Transfiere L a E Transfiere LOC memoria ( H & L ) a E Transfiere A a H Transfiere B a H Transfiere C a H Transfiere D a H Transfiere E a H Transfiere L a H

Nemotcnico MOV H,M MOV L,A MOV L,B MOV L,C MOV L,D MOV L,E MOV L,H MOV L,M MOV M,A MOV M,B MOV M,C M MOV M,D MOV M,E MOV M,H MOV M,L MVI A,v MVI B,v MVI C,v MVI D,v MVI E,v MVI H,v MVI L,v MVI M,v N NOP ORA A ORA B O ORA C ORA D ORA E

Bytes 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1

Cdigo de op (hex) 66 6F 68 69 6A 6B 6C 6E 77 70 71 72 73 74 75 3E 06 0E 16 1E 26 2E 36 00 B7 B0 B1 B2 B3

Descripcin Transfiere LOC memoria (H & L ) a H Transfiere A a L Transfiere B a L Transfiere C a L Transfiere D a L Transfiere E a L Transfiere H a L Transfiere LOC memoria ( H & L ) a L Transfiere A a LOC memoria ( H & L ) Transfiere B a LOC memoria ( H & L ) Transfiere C a LOC memoria ( H & L ) Transfiere D a LOC memoria ( H & L ) Transfiere E a LOC memoria ( H & L ) Transfiere H a LOC memoria ( H & L ) Transfiere L a LOC memoria ( H & L ) Transfiere dato inmediato v a A Transfiere dato inmediato v a B Transfiere dato inmediato v a C Transfiere dato inmediato v a D Transfiere dato inmediato v a E Transfiere dato inmediato v a H Transfiere dato inmediato v a L Transfiere dato inmediato v a LOC memoria (H & L ) No operacin Examina A y borra arrastre OR B con A OR C con A OR D con A OR E con A

Nemotcnico ORA H ORA L O ORA M ORI v OUT v PCHL POP B POP D POP H P POP PSW PUSH B PUSH D PUSH H PUSH PSW RAL RAR RLC RRC RIM RET R RZ RNZ RP RM RC RNC RPE RPO

Bytes 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Cdigo de op (hex) B4 B5 B6 F6 D3 E9 C1 D1 E1 F1 C5 D5 E5 F5 17 1F 07 0F 20 C9 C8 C0 F0 F8 D8 D0 E8 E0 OR H con A OR L con a

Descripcin

OR LOC memoria ( H & L ) con A OR dato inmediato v con A Saca A a dispositivo v Salta a LOC memoria contenida en ( H & L ) Carga B & C desde la pila Carga D & E desde la pila Carga H & L desde la pila Carga A y sus banderas desde la pila Introduce B & C en la pila Introduce D 6 E en la pila Introduce H & L en la Pila Introdcuce A y sus banderas en la pila Desplazamiento circular CY + A a la izquierda Desplazamiento circular CY + A a la derecha Desplazamiento circular A a la izquierda y arrastre Desplazamiento circular A a la derecha y arrastre Lee mascara de interrupcin ( 8085 solamente ) Vuelve de subrutina Si cero, vuelve de subrutina Si no cero, vuelve de subrutina Si ms, vuelve de subrutina Si menos, vuelve de subrutina Si arrastre, vuelve de subrutina Si no arrastre, vuelve de subrutina Si paridad par, vuelve de subrutina Si paridad impar, vuelve de subrutina

Nemotcnico RST 0 RST 1 RST 2 R RST 3 RST 4 RST 5 RST 6 RST 7 SIM SPHL SHLD aa STA aa STAX B STAX D STC SUB A SUB B SUB C S SUB D SUB E SUB H SUB L SUB M SUI v SBB A SBB B SBB C SBB D SBB E

Bytes 1 1 1 1 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1

Cdigo de op (Hex) C7 CF D7 DF E7 EF F7 FF 30 F9 22 32 02 12 37 97 90 91 92 93 94 95 96 D6 9F 98 99 9A 9B

Descripcin Va a subrutina en direcci{on 0000H Va a subrutina en direcci{on 0008H Va a subrutina en direcci{on 0010H Va a subrutina en direcci{on 0018H Va a subrutina en direccin 0020H Va a subrutina en direccin 0028H Va a subrutina en direccin 0030H Va a subrutina en direccin 0038H Pone en 1 mscara de interrupcin ( 8085 solamente) Carga SP desde H & L Almacena H & L en LOC memoria aa Almacena A en LOC memoria aa Almacena A en LOC memoria ( B & C ) Almacena A en LOC memoria ( D & E ) Coloca en 1 bandera de arrastre Borra A Resta B de A Resta C de A Resta D de A Resta E de A Resta H de A Resta L de A Resta contenido de LOC memoria ( H & L ) de A Resta dato inmediato v de A Pone A con arrastre menos Resta B de A con prestamo Resta C de A con prestamo Resta D de A con prestamo Resta E de A con prestamo

9
Cdigo de op (Hex) 9C 9D 9E DE EB E3 AF A8 A9 AA AB AC AD AE EE Resta H de A con prestamo Resta L de A con prestamo Resta LOC memoria ( H& L ) de A con prestamo Resta dato immediato v de A con prestamo Intercambia D & E con H & L Intercambia tope de la pila con H & L Borra A OR exclusivo de B con A OR exclusivo de C con A OR exclusivo de D con A OR exclusivo de E con A OR exclusivo de H con A OR exclusivo de L con A OR exclusivo de LOC memoria ( H & L ) con A OR exclusivo de dato inmediato v con A

Nemotcnico SBB H S SBB L SBB M SBI v XCHG XTHL XRA A XRA B X XRA C XRA D XRA E XRA H XRA L XRA M XRI v

Bytes 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2

Descripcin

10

You might also like