diseño de un procesador 8 bits
TRANSCRIPT
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
Sistemas Digitales II(2012)Informe del Trabajo Final
Fecha: 30 de julio de 2012Manuel Martínez AnorozoPedro Daniel Ramírez López
0.1. Especificación de Diseño
0.1.1. Especificación del Sistema
1. Cada alumno seleccionará un “Conjunto de Instrucciones” de al menos 16instrucciones distintas (independiente de los modos de direccionamientos y de losoperandos). Debe tener al menos dos instrucciones de cada grupo.
2. Cada instrucción debe tener dos modos de direccionamiento para el operandofuente.
3. El diseño debe realizarse especificando detalladamente RD y ASM.
4. La Arquitectura de la Ruta de Datos de cada trabajo está especificada en la tablaadjunta. (pueden adecuar lo que sea necesario a partir del modelo inicial)
5. El ASM puede debe adaptarse usando como ejemplo los modelos estudiados enclase.
6. El sistema final debe estar funcionando en VHDL con un ejemplo de “ProgramaBásico” especificado en la tabla adjunta.
7. Debe realizarse primero un VHDL funcional.
8. Posteriormente un VHDL estructural. Los diferentes componentes, incluyendo laALU podrán ser diseñados hasta el nivel funcional. La Maquina de Control Micro-programada debe realizarse a nivel estructural.
9. Debe tener una fuente de interrupción HW.
PR-MM 1
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.2. Diseño de un Procesador de uso General
0.2.1. Especificaciones Generales
Bus de datos : 8 bits. Bus de direcciones : 8 bits.Modos de direccionamientos :Implementar dos modos por cada instrucción
Inmediato
Registro
Registro Indirecto
Directo
Indirecto
Tipo Nº de Registros Operandos en Instrucciónb) 4(R0,R1,R2,R3)+A 2(A<=R1+R2)
Cuadro 1: Especificaciones de Diseño.
PR-MM 2
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.3. Conjunto de Instrucciones
0.3.1. Instrucciones de Tranferencia de Datos
Load(cargar) - LD La instrucción load(carga) sirve para designar una transferenciade memoria a un registro de procesador.
Store(almacenar) - ST La instrucción store(almacena) indica la transferencia de unregistro de procesador a una palabra de memoria.
Move(mover) - MOVE La instrucción de move(movimiento) sirve en las computa-doras con varios registros de procesador para designar una tranferencia entre registros.También sirve para transferir datos entre registros y memoria y entre dos palabras dememoria.
Instrucciones de pila
Empujar(push)- PUSH y Desaparecer(pop) - POP Estas instrucciones de pilatransfieren datos entre una pila de memoria y un registro de procesador o memoria.La operación de empujar coloca un elemento nuevo encima de la pila. La operacióndesaparecer remueve un elemento de la pila, de modo que la pila se alza de repente;sin embargo, nada se empuja ni desaparece físicamente en la pila. Más bien, la pila dememoria es, en esencia, parte de un espacio de dirección de memoria accedida por unadirección que siempre se incrementa o disminuye antes o después del acceso a memoria.El registro que contiene la dirección de la pila se llama apuntador de la pila(SP, StackPointer), pues su valor siempre apunta al elemento de la parte superior de aquélla. Lasoperaciones de empujar y desaparecer se implementan disminuyendo o incrementando elapuntador de la pila.
0.3.2. Instrucciones de Manipulación de Datos
Instrucciones Aritméticas
Increment(incremento) La intrucción increment(incremento) suma uno al valor al-macenado en un registro o palabra de memoria. Una característica común de la operaciónde incremento, al ejecutarse sobre una palabra, es que un número binario que consisteen unos produce un resultado de ceros cuando se incrementa.
Add(suma) - ADD La intrucción add(suma) realiza la operación de suma sobre dosregistros del procesaor y el resultado deja en un registro no visible para el programador,llamado ACC(acumulador), se puede traer éste resultado a uno de los registros del proce-sador por medio de la instrucción MOVE
PR-MM 3
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
Instrucciones de Desplazamiento
Desplazamiento lógico a la izquierda - SHL La instrucción de desplazamiento ala izquierda hace correr los bits para esa dirección, insertando un bit de cero(0) en elmenos signifiactivo.
0.3.3. Instrucciones de Control de Programa
Salto - JUMP Las instrucción de bifurcación JUMP, es de dirección. Cuando se eje-cuta, la instrucción de bifurcación provoca una transferencia de la dirección efectiva alPC. Puesto que el PC contiene la dirección de la siguiente insteucción a ejecutar, ésta seobtendrá de la localidad especificada por la dirección efectiva.
Llamada(call) - CALL y Retorno(retorno) - RET Las instruciones de llama-da(call) y retorno(return) se utilizan con procedimientos. Al encontrar la instrucción decall, se guarga en la pila la dirección del PC de la siguiente instrucción, los valores delPSR, en la dirección saltada se realiza las intrucciones y luego se vuelva al anterior pormedio de (return), con los valores de PC, PSR sacado de la pila.
Bifurcar si menor - BL(branch if less) y Bifurcar si igual - BEQ(branch ifequal) La instrucción de BEQ realiza una resta entr los operandos y si el resultado esdero es porque son iguales, con un flags del PSR se detecta ello y se salta a la direccionespecificada, con BL el salto se da por medio de un diferencia entre los operandos, siexiste un prestado en la salida(CARRY), es porque el segundo es menor al primero, estose detecta por medio de un flags del PSR, si esto ocurre se salta a la dirección especificada.
0.3.4. Interrupción de Programa - HW
Lo que se realiza es después de ejecutar cada instrucción se revisa si hay interrupciónde hardware, si existe se guardan todos los registros, el PSR, el PC, en la pila paraantender la interrupción, luego se salta a la dirección de servicio de interrupción, una vezatendida toda, se retorna con los valores guardados en la pila.
PR-MM 4
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.4. Ruta de Datos
La ruta de datos se presenta en la figura 1. Se detallará a continuación cada compo-nente.
R4
R3
R2
R1 R_RD
R_SEL
R_WR
ACCACC_LDACC_RD
ALU
REG_A
B
PSR
PSR_RD
PSR_LD
PSR_LD1
Memoria deInstrucciones
A_LD
TEMP TEMP_RDTEMP_LD
MUX M
PC
PC_RD
PC_LD
PC_CNT
SP
SP_DEC
SP_INC
RESET
AR
AR_LD
MEMORIA
0 1
DIRM_WR
M_RD
RESET
MUX_MEM
IR
MUX IR
R_SEL
MUX_IR
IR_LD
0 1
7 4| 3 2|1 0
UNIDAD DECONTROL
CNTRL [HI|Z|C]
RUTA DE DATOS
NEXT_DIR
MUX_SEL
BUS PRINCIPAL
A
ZC
FUNCT
Buy SmartDraw!- purchased copies print this document without a watermark .
Visit www.smartdraw.com or call 1-800-768-3729.
Figura 1: Ruta de Datos del Procesador.
0.4.1. Memoria Principal.
La memoria consta de 256 elementos de 8 bits, su salida se encuentra en Alta Impedan-cia mientras que la señal de load(carga) y read(lectura) se encuentre en valor lógico de 0,cuando se habilitan una de ellas, se activa la carga o lectura respectivamente, este valortoma el bus o lee de él.
PR-MM 5
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.4.2. PC (program counter)
Este es un registro contador que siempre apunta en la siguiente instrucción de memo-ria a ejecutar, como todos los otros registros es tri-estado, tiene la característica deautoincremento, es decir no necesita de la ALU para incrementarse, y puede cargarsea través del bus principal, esto es para implementar las operaciones de bifurcación deprograma.
0.4.3. AR (address register )
Es uno de los registros (aparte de SP) en donde se cargan direcciones para posterior-mente escribir o leer en la memoria.
0.4.4. SP (stack pointer)
Registro apuntador(pointer) utilizado para realizar operaciones de pila, su valor esinicializado a 255, el último elemento de la memoria principal, tiene la capacidad deincrementarse o decrementarse.
0.4.5. Mux
Es un multiplexor de 2 a 1 de 8 bits, es utilizado para seleccionar que registro, SP oAR, indicará la dirección de memoria; y también se utiliza para seleccionar entre registrodonde se ejecutará una operación de la memoria de instrucciones.
0.4.6. IR(instruction register)
Registro utilizado para guardar las instrucciones extraídas de la memoria, esta conec-tada a la unidad de control para tomar el opcode y así saber que instrucción se va aejecutar.
0.4.7. Archivo de registros
Son los registros que el programador tendría a disposición para realizar las opera-ciones, en la palabra de instrucción se tendría que indicar que archivo de registro sequerría utilizar, el selector funciona con la siguiente lógica:
Selector Registro00 R001 R110 R311 R4
Cuadro 2: Selector de Registros.
PR-MM 6
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.4.8. ALU
Esta unidad realiza las operaciones aritméticas y lógicas, una de sus entradas es elselector de operación que funciona según:
Selector Operación00 Suma01 Resta10 Incremento11 Correr Izquierda
Cuadro 3: Operaciones con la ALU.
0.4.9. Registros A y TEMP.
Son registros temporales utilizados para poder realizar las operaciones correspondi-entes, en un entorno donde todos están conectados con todos. Las banderas de estadostambién son salidas de esta ALU, es decir si la operación fue cero, negativo, si hubooverflow , o si existe un acarreo de salida.
0.4.10. PSR
Registro que contiene las banderas de estado de la ALU, éste puede ser cargadotanto de la ALU, como del bus principal, esto se realizó de esta manera ya que algunasoperaciones requieren que se cargue este registro desde la memoria(stack).
0.4.11. ACC
Registro acumulador, como todas las operaciones son solamente de un operando ,las operaciones con más de un operando, utilizan como segundo operando y destino esteacumulador, además es donde se deja el valor de cualquier operación y luego con unainstrucción ase lleva ya sea en memoria o en los registros.
PR-MM 7
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.5. Unidad de Control
El formato de la palabra de instrucción se muestra a continuación:Se utilizan 4 bits para especificar 16 operaciones, un operando 2 bits para seleccionar
uno de los 4 registros, y un campo DIR en caso de que se tenga que realizar operacionesde memoria.
OPCODE OP OPDIR
Cuadro 4: Formato de Instrucción.
A continuación se muestra la codificación de las operaciones y el tipo de direc-cionamiento que utiliza cada uno:
Operación OPCODE Modo de DireccionamientoLD 0000 DirectoST 0001 Directo
MOV 0010 Registro DirectoADD 0011 Registro DirectoSUB 0100 Registro DirectoINC 0101 Registro DirectoSHL 0110 Registro DirectoJMP 0111 DirectoBL 1000 RelativoBEQ 1001 RelativoCALL 1010 InmediatoRET 1011 InmediatoPUSH 1100 DirectoPOP 1101 DirectoRETI 1110 -LDR 1111 Registro
Cuadro 5: Instrucciones del Procesador.
PR-MM 8
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
El diagrama en bloques de la UC con el detector de interrupción es:
CAR ROM7 7S1
S4
D
C2C1 HAB.
Multiplexor
MuxSel
MuxSel
NextDir
111
opcode
0000000
RESET25
RUTA DE DATOSQ
QGRB
CLR
D
CLRIIE
HI CZ
3
PSR
BOTON
Figura 2: UC con detector de interrupción.
0.6. Codigo C del Algoritmo
{}//Pseudocodigo
N=0;suma = 0;
while(N < 3){num = M[Pd];valor = division(num); //funcion de division => valor=(128/R)printf("valor");suma = suma + valor;Pd++;N++;}resultado = division(suma); // resultado = (128/suma)M[Pr] = resultado;printf("resultado");
PR-MM 9
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
0.7. Assembler del Algoritmo
LD,100 ;ACC <= 20MOV R0 ;R0 <= 20PUSH R0 ;guardo en la pilaLD,101 ;ACC <= 4MOV R0 ;R0 <= 4PUSH R0 ;guardo en la pilaLD,102 ;ACC <= 12MOV R0 ;R0 <= 12PUSH R0 ;guardo en la pilaLDR R1,0 ;Inicializo contadorLDR R2,3 ;Final del contador (N=3)LDR R3,0 ;Inicializo resultado
star: SUB R1,R2 ;Activa banderaBL,while ;Si R1<R2, hace el whilePUSH R1LDR R1,0ADD R3,R1POP R1ST,105 ;Resultado parcialPUSH R3POP R0 ;Transferencia de registroCALL Func ;128/RePUSH R1LDR R1,0ADD R3,R1POP R1ST,105 ;Resultado final
fin: JMP fin ;Termina
while: POP R0 ;recuperamos resistencia salvada en la pilaCALL Func ;funcion de division, retorna el resultadoPUSH R1LDR R1,0ADD R0,R1POP R1ST,105 ;muestra resultado en pantallaADD R0,R3 ;ACC <= R0+R3MOV R3 ;R3 <= ACC, cargo resultado en R3INC R1 ;R1 <= R1 + 1JMP star
PR-MM 10
CYT819 Universidad Católica “Nuestra Señora de Asunción”Sistemas Digitales II Sede Regional AsunciónIng. Electrónica Facultad de Ciencias y TecnologíaSemestre VII Departamento de Electrónica e Informática
;DivisionFunc: PUSH R1 ;salvamos en la pilaPUSH R2 ;salvamos en la pilaPUSH R3 ;salvamos en la pilaLDR R3,1 ;Inicializo contador R3 = "00000001"LDR R2,1 ;Inicializo los registros R2 = "00000001"LDR R1,0 ; R1 = "00000000" => DividendoDIV: SUB R2,R0 ;ACC <= R2-R0, para activar los flagsBL NEXT ;salta si R2<R0MOV R2 ;R2 <= ACC (R2-R0)INC R1 ;Se cumple condicion, se agrega 1 al bit menos significativo
NEXT: SHL R2SHL R1INC R3 ;incrementa contadorPUSH R2 ;salvo en la pila el restoLDR R2,8 ;condicion de fin R2 <=8SUB R3,R2 ;ACC <= R3-R2, para activar los flagsPOP R2 ;Recupara valor de resto en R2BEQ FINJMP DIV ;continua Division
FIN: PUSH R1POP R0POP R3 ;recuperamos el valor salvadoPOP R2 ;recuperamos valor salvadoPOP R1 ;recuperamos valor salvadoRET ;retorna el resultado en R0
PR-MM 11
AR IRSTAT
E
NEX
T STAT
E
MUXU
C
IR(7)
IR(6)
IR(5)
IR(4) CARR
Y
ZERO HI
PC_C
NT
PC_LD
PC_R
D
AR_LD
R_RD
R_WR
M_R
D
M_W
R
ACC_
LD
ACC_
RD
PSR_
LD
PSR_
RD
PSR_
LD1
SP_INC
SP_D
EC
IR_LD
TEMP_
LD
TEMP_
RD
A_LD
MUXM
EM
MUXIR
IE CLRI
T0 T1 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T1 T2 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0
LD T2 T3 1 0 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ST T6 1 0 0 0 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0MOV T9 1 0 0 1 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ADD T10 1 0 0 1 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0SUB T13 1 0 1 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0INC T16 1 0 1 0 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0SHL T18 1 0 1 1 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0JMP T20 1 0 1 1 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0BL T22 1 1 0 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0BEQ T26 1 1 0 0 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0CALL T30 1 1 0 1 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0RET T33 1 1 0 1 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0PUSH T37 1 1 1 0 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0POP T38 1 1 1 0 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0RETI T40 1 1 1 1 0 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0LDR T44 1 1 1 1 1 X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0LD0 T3 T4 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0LD1 T4 T5 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0LD2 T5 T46 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0ST0 T6 T7 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ST1 T7 T8 0 X X X X X X X 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0ST2 T8 T46 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0MOV0 T9 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0ADD0 T10 T11 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0ADD1 T11 T12 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0ADD2 T12 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0SUB0 T13 T14 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0SUB1 T14 T15 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0SUB2 T15 T46 0 X X X X X X X 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0INC0 T16 T17 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0INC1 T17 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0SHL0 T18 T19 0 X X X X X X X 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0SHL1 T19 T46 0 X X X X X X X 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0JMP0 T20 T21 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0JMP1 T21 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0BL T22 T23 0 X X X X 0 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T24 0 X X X X 1 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T23 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T24 T25 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T25 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
BEQ T26 T27 0 X X X X X 0 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T28 0 X X X X X 1 X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
T27 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T28 T29 0 X X X X X X X 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T29 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
CALL0 T30 T31 0 X X X X X X X 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0CALL1 T31 T32 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0CALL2 T32 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0RET0 T33 T34 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0RET1 T34 T35 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0RET2 T35 T36 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0RET3 T36 T46 0 X X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0PUSH T37 T46 0 X X X X X X X 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0POP0 T38 T39 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0POP1 T39 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0RETI T40 T41 0 X X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
T41 T42 0 X X X X X X X 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0T42 T43 0 X X X X X X X 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0T43 T46 0 X X X X X X X 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LDR T44 T45 0 X X X X X X X 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0T45 T46 0 X X X X X X X 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0T46 T0 0 X X X X X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
T47 0 X X X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0INTERRUP T47 T48 0 X X X X X X X 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1
T48 T49 0 X X X X X X X 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0T49 T50 0 X X X X X X X 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0T50 T0 0 X X X X X X X 0 1
OPCode TEMP
FS
SPPSRAcumuladorMemoriaPC
HI
HW
LDR
RETI
POP
PUSH
RET
CALL
BEQ
BL
JMP
SHL
INC
SUB
ADD
MOV
ST
LD
IR <= M[AR]
PC <= PC+1AR <= PC
PC <= PC+1AR <= PC
HW
ACC <= M[AR]
AR <= M[AR]PC <= PC + 1
AR <= PC
HW
M[AR] <= ACC
AR <= M[AR]
R[DIR1] <= ACC
A <= R[ DIR1]
HW
ACC <= TEMP
TEMP <= R[DIR2]+A
A <= R[ DIR1]
ACC <= TEMP
TEMP <= A-R[DIR2]
TEMP <= R[DIR1]+1
R[DIR1] <= TEMP
TEMP <= SHL R[DIR1]
HW
R[DIR1] <= TEMP
AR <= PC
HW
PC <= M[AR]
si AR <= PCC
no
PC <= PC + 1
HW
PC <= M[AR]
siAR <= PC Z
no
PC <= PC+1
HW
PC <= M[AR]
PC <= M[AR]M[SP] <= PSR
SP <= SP -1
M[SP] <= PCSP <= SP - 1
AR <= PC
PC <= PC + 1PC <= M[SP]PSR <= M[SP]SP <= SP + 1
SP <= SP + 1
M[SP] <= R[ DIR1]
R[DIR1] <= M[SP] SP <= SP + 1
PC <= M[SP]PSR <= M[SP]SP <= SP + 1
ACC <= M[SP]SP <= SP + 1
SP <= SP + 1
R[DIR1] <= M[AR] AR <= PCPC <= PC + 1
noINI si PC <= INTERM[SP] <= ACC
SP <= SP-1M[SP] <= PSRSP <= SP - 1
M[SP] <= PCSP <= SP - 1
CLR <= 1
INI
Buy SmartDraw!- purchased copies print this document without a watermark.
Visit www.smartdraw.com or call 1-800-768-3729.