0% encontró este documento útil (0 votos)
5 vistas6 páginas

Ejercicios de Microprocesadores SIT

El documento detalla la ejecución de instrucciones en microprocesadores, incluyendo ejemplos como ADC, ASR, BRA y NOP, con un desglose de ciclos y pasos necesarios. También se abordan aspectos de ramificación, subrutinas, inicialización del contador de programa, y modificaciones para saltos indirectos. Finalmente, se describen los circuitos lógicos del ALU y la máquina de control, así como las transferencias relacionadas con los registros ABUS y MA.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas6 páginas

Ejercicios de Microprocesadores SIT

El documento detalla la ejecución de instrucciones en microprocesadores, incluyendo ejemplos como ADC, ASR, BRA y NOP, con un desglose de ciclos y pasos necesarios. También se abordan aspectos de ramificación, subrutinas, inicialización del contador de programa, y modificaciones para saltos indirectos. Finalmente, se describen los circuitos lógicos del ALU y la máquina de control, así como las transferencias relacionadas con los registros ABUS y MA.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLOGICA DE PANAMA

FACULTAD DE INGENIERIA ELECTRICA


CAMPUS CENTRAL

MICROPROSESADORES

TAREA

PROFESOR:
MEDARDO LOGREIRA

ESTUDIANTE
RUBEN ROMERO 9-7601812

1EE-141

2024
Ejercicios: (Con referencia a la secuencia de control de SIT)
1. Ciclos de Ejución de Instrucciones

a. ADC 045 (Add with Carry)


- Paso 1: MA <= 10$1023; IFF <= \0\.
- Paso 4: BBUS = 6$0,PC; OBUS = BBUS; MA <= OBUS[6:15]; =>(IRQ&IFF)/(56). "MA <= PC"
- Paso 5: ADRBUS = MA; RD = \1\; MD <= DBUS; "Lee INSTRUCCIÓN" =>(^READY)/(5).
- Paso 6: BBUS = 6$0,PC; OBUS = INC(BBUS); PC <= OBUS[6:15].
- Paso 7: ABUS = MD; OBUS = ABUS; IR <= OBUS. "IR <= MD"
- Paso 8: =>(^IR[3])/(21). "IR3=0 para las instrucciones de registro"
- Paso 9: NODELAY
- Paso 10: =>(^IR[5])/(16). "LectOV"
- Paso 16: NODELAY "Inicia Lectura de OV" =>(^(^IR[0]&IR[1]&IR[2]))/(19).
- Paso 19: ADRBUS = MA; RD = \1\; MD <= DBUS; =>(^READY)/(19).
- Paso 20: BBUS = AC; CIN = (\1\!CFF!^CFF)*(^IR[1]&^IR[2],IR[1],IR[2]); ABUS = (MD!
^MD)*(IR[0]+IR[1],^IR[0]&IR[1]);
- Paso 20 (Continuación): OBUS = ((ADD[1:16](ABUS;BBUS;CIN))!(ABUS@BBUS)!(ABUS+BBUS)!
(ABUS&BBUS)!ABUS)*(^IR[0], IR[1]&IR[2],IR[0]&IR[1]&^IR[2], IR[0]&^IR[1]&IR[2],
IR[0]&^IR[1]&^IR[2]); AC*(IR[0]+IR[1]+IR[2]) <= OBUS; =>(4).

Total, ciclos: 12 ciclos (1, 4, 5, 6, 7, 8, 9, 10, 16, 19, 20, 4)


b. ASR 4 (Arithmetic Shift Right)
- Paso 1: MA <= 10$1023; IFF <= \0\.
- Paso 4: BBUS = 6$0,PC; OBUS = BBUS; MA <= OBUS[6:15]; =>(IRQ&IFF)/(56).
"MA <= PC"
- Paso 5: ADRBUS = MA; RD = \1\; MD <= DBUS; "Lee INSTRUCCIÓN"
=>(^READY)/(5).
- Paso 6: BBUS = 6$0,PC; OBUS = INC(BBUS); PC <= OBUS[6:15].
- Paso 7: ABUS = MD; OBUS = ABUS; IR <= OBUS. "IR <= MD"
- Paso 8: =>(^IR[3])/(21). "IR3=0 para las instrucciones de registro"
- Paso 9: NODELAY
- Paso 10: =>(^IR[5])/(16). "LectOV"
- Paso 39: INICIA TRASLACION Y ROTACION
- Paso 39 (Continuación): A[1:14] <=(A[0:13] ! A[2:15])*( IR[9], ^IR[9]);
A[0]<=(A[1]!A[0]!CFF!A[15])*(^IR[9],^IR[7]&^IR[8]&IR[9],IR[7]&IR[8]&IR[9],
IR[7]&^IR[8]&1R[9])

Total, ciclos: 9 ciclos (1, 4, 5, 6, 7, 8, 9, 10, 39)

c. BRA -20 (Branch)


- Paso 1: MA <= 10$1023; IFF <= \0\.
- Paso 4: BBUS = 6$0,PC; OBUS = BBUS; MA <= OBUS[6:15]; =>(IRQ&IFF)/(56).
"MA <= PC"
- Paso 5: ADRBUS = MA; RD = \1\; MD <= DBUS; "Lee INSTRUCCIÓN"
=>(^READY)/(5).
- Paso 6: BBUS = 6$0,PC; OBUS = INC(BBUS); PC <= OBUS[6:15].
- Paso 7: ABUS = MD; OBUS = ABUS; IR <= OBUS. "IR <= MD"
- Paso 8: =>(^IR[3])/(21). "IR3=0 para las instrucciones de registro"
- Paso 25: =>(^IR[4],IR[4]&IR[7],IR[4]&^IR[7])/(26,28,27).
- Paso 27: BBUS = 6$0,PC; ABUS = ^(8$0)&IR[8],IR[8:15]; CIN = \0\; OBUS =
ADD[1:16](ABUS;BBUS;CIN); PC <= OBUS[6:15]; => (4).

Total, ciclos: 8 ciclos (1, 4, 5, 6, 7, 8, 25, 27)

d. NOP (No Operation)


- Paso 1: MA <= 10$1023; IFF <= \0\.
- Paso 4: BBUS = 6$0,PC; OBUS = BBUS; MA <= OBUS[6:15]; =>(IRQ&IFF)/(56).
"MA <= PC"
- Paso 5: ADRBUS = MA; RD = \1\; MD <= DBUS; "Lee INSTRUCCIÓN"
=>(^READY)/(5).
- Paso 6: BBUS = 6$0,PC; OBUS = INC(BBUS); PC <= OBUS[6:15].
- Paso 7: ABUS = MD; OBUS = ABUS; IR <= OBUS. "IR <= MD"
- Paso 8: =>(^IR[3])/(21). "IR3=0 para las instrucciones de registro"
Total, ciclos: 8 ciclos (1, 4, 5, 6, 7, 8)

2. Codificaciones de Instrucciones

- ADC 045: 00001001 00000045 (Ejemplo, la codificación dependerá del formato


exacto del opcode y operandos)
- ASR 4: 00101100 00000100
- BRA -20: 00011101 11101100
- NOP: 00000000 00000000

3. Ejecución de una Instrucción de Ramificación


La ejecución de una instrucción de ramificación en el SIT implica los siguientes
pasos:
1. La instrucción se lee de la memoria y se coloca en el registro de instrucciones
(IR).
2. Se verifica el bit de operación correspondiente a las instrucciones de
ramificación.
3. Dependiendo del tipo de ramificación (ej. condicional, incondicional, etc.), se
evalúa la condición de salto.
4. Si la condición es verdadera, se calcula la nueva dirección de salto utilizando el
valor inmediato especificado en la instrucción.
5. El contador de programa (PC) se actualiza con la nueva dirección de salto.

4. Salto a Subrutina (Ida y Vuelta)

La instrucción de salto a subrutina en el SIT guarda la dirección de retorno en la pila


antes de saltar a la subrutina. Al final de la subrutina, se utiliza una instrucción de
retorno que extrae la dirección de retorno de la pila y la carga de nuevo en el
contador de programa (PC), asegurando así el retorno al punto de origen.

5. Primera Instrucción a Partir de Dirección 512


Para que la primera instrucción se ejecute a partir de la dirección 512, el
programador debe asegurarse de que el contador de programa (PC) esté
inicializado con el valor 512 antes de iniciar la ejecución. Esto puede lograrse
mediante una rutina de inicialización que cargue el valor 512 en el PC.
6. Cambios para Saltos Indirectos (a partir del paso 53)
Para habilitar los saltos indirectos, se pueden realizar los siguientes cambios:

- Paso 53 (Modificado):
```plaintext
53 NODELAY =>(^IR[0]&^IR[1]&IR[2]&IR[6])/(56).
```
- Nuevo Paso 56 (para saltos indirectos):
```plaintext
56 ADRBUS = MA; RD = \1\; MD <= DBUS; =>(^READY)/(56).
57 ABUS = MD; OBUS = ABUS; PC <= OBUS[6:15]; =>(4).
```
7. Ciclos en el Paso 20
El paso identificado con el número 20 consume 1 ciclo.
8. Circuitos Lógicos del ALU
El ALU (Unidad Aritmética Lógica) del SIT incluye los siguientes circuitos lógicos:
- Suma y resta (ADD/S
UB)
- AND, OR, NOT
- Shift y Rotate
- Comparadores
- Circuitos de control de acarreo y desbordamiento
9. Estados de la Máquina de Control del SIT

La máquina de estado para la sección de control del SIT tendrá un número de


estados que depende de la cantidad de pasos en la secuencia de control y los
diferentes caminos que pueden tomar. En base al código proporcionado, se pueden
identificar al menos unos 64 estados diferentes.
10. Resumen de Conexiones Relacionadas con el ABUS [16]

El ABUS [16] en la secuencia de control está involucrado en las siguientes


transferencias:
- Cargar direcciones desde IR a MA
- Realizar operaciones de incremento/decremento de PC y SP
- Transferencias de datos entre registros y buses internos

11. Resumen de Transferencias Relacionadas con el Registro MA [10]


El registro MA [10] participa en las siguientes transferencias:
- Carga de direcciones desde IR para modos de direccionamiento inmediato y
directo
- Transferencia de direcciones calculadas a partir de operaciones de índice y
desplazamiento
- Almacenamiento de direcciones de retorno en la pila para operaciones de
subrutina

También podría gustarte