Microprogramacion

Solo disponible en BuenasTareas
  • Páginas : 18 (4394 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de diciembre de 2010
Leer documento completo
Vista previa del texto
INTRODUCCIÓN:

La práctica realizada consiste en emular una versión simplificada del microprocesador 68000 de Motorola, que llamaremos 68001, y microprogramar un subconjunto de su juego de instrucciones.
Para su realización utilizamos el P8080E que se inspira en el microprocesador 8080 de intel.
Algunas propiedades propias del microprocesador P8080E que caben resaltar pueden serpor ejemplo que puede direccionar 64k palabras de 8 bits, es capaz de relacionarse con 256 puertas de entrada y/o salida, se puede escribir con ayuda de la señal IOW ( input output write) y se puede leer con IOR (input output read), utiliza dos fases de reloj no solapadas al igual que el 8080, su memoria de control consta de 2048 micropalabras de 40 bits cada una y para direccionar la memoria decontrol necesitamos direcciones de 11 bits.
La estructura de los registros a emular y su correspondencia con el P8080E es la siguiente:
D0 y D1 son registros de datos de 8 bits correspondidos con BC.
A0,A1,A2 son registros de direcciones de 16 bits que corresponden a DE ,HL y SP respectivamente.
CCR (Condition code register) y SR son dos modos de ver el registro de estado.
PC es el contadordel programa. A2 funciona como registro de pila para los saltos con retorno.
Los registros A, TMP, ACT, DI, UV y WZ son transparentes al programador y son de libre elección.
Ademas existen dos niveles de ejecución: usuario(N =0) y supervisor(N =1),para pasar de usuario a supervisor es necesario procesar una excepción.
Una vez conocidas las características principales del microprocesadorP8080E podemos pasar a ver la implementación.

IMPLEMENTACIÓN:

A continuación incluimos una breve descripción de las distintas instrucciones empleadas en la memoria de control y de lo que hacen:

• LD .Dn, #Dato:
Permiten cargar los registros de 8 bits con el dato inmediato que se proporciona en cada caso como operando de la instrucción. No provoca excepciones.
LD .D0,#Dato: Carga en D0 el dato inmediato que corresponda, comienza en la dirección 040 y termina en la 042.Su codigo de operación es 08.
LD .D1, #Dato: Carga en D1 el dato inmediato que corresponda, comienza en la dirección 048 y termina en la 04a. C.O = 09.

• EXCH_D ( exchange data) :
Intercambia el contenido de los registros de 8 bits, dejando en .D0 el contenido
de .D1previo a la ejecución de la instrucción y en .D1 el contenido previo de .D0. No provoca excepciones. Comienza en la dirección 050 y finaliza en la 054. C.O = 0a

• EXCH_A (exchange address) :
Intercambia el contenido de los registros de 16 bits, dejando en .A0 el contenido
de .A1 previo a la ejecución de la instrucción y en .A1 el contenido previo de .A0. No provoca excepciones.Comienza en la dirección 058 y finaliza en la 05E. C.O:= 0b

• LD .An, #Dato:
Permite cargar los registros de 16 bits con el dato inmediato(primero la parta alta y luego la baja) que se proporciona en cada caso como operando de la instrucción. No provoca excepciones
LD .A0, #Dato: Carga en A0 el dato inmediato. Comienza en la dirección 060 y finaliza en la 064. C.0 = 0C
LD.A1, #Dato: Carga en A1 el dato inmediato. Comienza en la dirección 068 y finaliza en la 06C. C.O = 0D
LD .A2, #Dato: Carga en A2 el dato inmediato. Comienza en la dirección 070 y finaliza en la 074. C.O = 0E

• LD .Dn, [An]:

Permiten cargar los registros de 8 bits desde memoria. Si la dirección de
memoria contenida en el registro An es privilegiada, provocan unaexcepción de violación de privilegio por lectura en memoria durante su ejecución.
LD D1, [A0]: Carga en D1 el contenido de A0. Comienza en la dirección 0A0 y finaliza en la 0A3. C.O = 14
LD D1, [A1]: Carga en D1 el contenido de A1. Comienza en la dirección 0A8 y finaliza en la 0AB. C.O = 15
LD D1, [A2]: Carga en D1 el contenido de A2. Comienza en la dirección 0B0 y finaliza en la...
tracking img