Repository navigation
Examen: Parcial 1:2024_10_14:GISAM

- Tiempo: 50 minutos
- Descripción: Examen Parcial 1. Laboratorio. Grado en Ingeniería de Sistemas Audiovisuales y Multimedia
- Fecha: 2024/Oct/14
- Temario: Sesiones L1-L4
El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un programa
- Realizado a través de Aula virtual
- 10 preguntas tipo test
- Las respuesats incorrectas restan un 25% del valor de la pregunta
- Solución disponible en Aula virtual
Escribe un programa en ensamblador del RISC-V, en el fichero store.s, que calcule la siguiente expresión:
g = A + 2C + 4K
Evaluarla para los valores iniciales A=1, C=1 y K=1. El resultado se debe almacenar en la variable g situada en la primera posición de memoria disponible en el segmento de datos. Adicionalmente, el valor de g se debe copiar también a las variables h y i que se sitúan justo a continuación de g en el segmento de datos. Las 3 variables, por tanto, tendrán el mismo valor una vez finalizado el programa
Como último paso, el programa deberá escribir el valor de g en la dirección 0xFFFF0010, donde está situado el display de 7 segmentos derecho
Conseguirás este bonus si has obtenido la máxima puntuación (programa perfecto) y si tu programa tiene menos de 19 instrucciones
#-- Evaluar la expresión g = A + 2C + 4K
#-- para A=1, C=1, K=1
#-- Resultado: 7 (0x07)
#-- Constantes. Valores iniciales para
#-- A, C y K (ESPECIFICACIONES)
.eqv A 1
.eqv C 1
.eqv K 1
#-- Periferico: Display de 7 segmentos derecho
.eqv DISP_R 0xFFFF0010
.data
g: .word 0x0 #-- ESPECIFICACIONES
h: .word 0x0 #-- ESPECIFICACIONES
i: .word 0x0 #-- ESPECIFICACIONES
.text
#-- Inicializar registros
li x1, A #-- x1 = A
li x2, C #-- x2 = C
li x3, K #-- x3 = K
#-- Evaluar la expresión
#-- g = A + 2B + 4C
#-- x10 = x1 + 2X2 + 4x3
add x10,x2,x2 #-- x10 = 2B
add x10,x10,x1 #-- x10 = A + [2B]
add x11,x3,x3 #-- x11 = C + C = 2C
add x11,x11,x11 #-- x11 = [2C] + [2C] = 4C
add x10,x10,x11 #-- x10 = [A + 2B] + 4C
#-- Almacenar resultado en variable g
la x30, g #-- Direccion de la variable g
sw x10, 0(x30) #-- g = Resultado de la expresion
#-- Almacenar resultado en variable h
sw x10, 4(x30) #-- h = g
#-- Almacenar resultado en variable i
sw x10, 8(x30) #-- i = g
#-- Mostrar resultado en display de 7 segmentos
li x30, DISP_R
sw x10, 0(x30)
#-- Terminar
li a7, 10
ecallEste programa tiene 18 instrucciones por lo que se cumple el BONUS! 🏅
La evaluación del programa se hace en dos fases:
-
Funcionalidad (2.5 ptos): Se comprueba si el programa funciona, y si cumple con las especificaciones (Nombre del fichero correcto, ensablado sin errores, sin errores en tiempo de ejecución, resultado correcto, variables definidas en sus posiciones de memoria especificadas, etc). Esto se hace mediante un script de test, que automatiza el proceso
-
Código (2.5 ptos): Se inspecciona visualmente cómo está hecho el código: código limpio, claro, con comentarios, instrucciones correctas, fallos de programación, etc...
🚧 TODO 🚧
- Katia Leal Algara
- Juan González-Gómez (Obijuan)


L1: El simulador RARs
L2: Calculando expresiones
L3: Práctica 1-3. Variables
L4: Pract 2-1. E/S mapeada
L5: Práctica 2-2: Inst. ecall
L6: Prác 2-3: Cadenas
L7: Práct 3-1: Bucles y saltos
L8: Práct 3-2: Cadenas II
L9: Pract 4-1: Subrut. Nivel-1
L10: Pract 4-2: La pila
L11: Pract 4-3: Recursividad
L12: Pract 5-1. Heap. Listas
L13: RV32I: Resto de instrucciones
L14: Macros
L15: Entrada/Salida a bajo nivel
L16: Multiplicaciones/divisiones. Unit Tests 🚧
L17: Biblioteca stdio: salida a alto nivel 🚧
Los registros de estado y control (CSR)
Interrupciones y excepciones
Borrador
Soluciones a los ejercicios planteados en cada sesión para practicar:
Sesión L1
Sesión L2
Sesión L3
Sesión L4
Sesión L5
Sesión L6
Sesión L7
Sesión L8
Sesión L9
Sesión L10
Sesión L11
Sesión L12
Simulacro examen 1
GISAM. Ordinario. 2019-Dic-11
GISAM. Extra. 2020-Jul-03
GISAM. Ordinario. 2021-Ene-21
GISAM. Ordinario. 2022-Ene-10
GISAM. Extra. 2022-Jun-29
GISAM. Parcial 1. 2022-Oct-26
GISAM. Parcial 2. 2022-Nov-30
GISAM. Parcial 3. 2022-Dic-21
GISAM. Parcial 1. 2023-Oct-09
GISAM. Parcial 2. 2023-Nov-11
GISAM. Parcial 3. 2023-Dic-20
GISAM. Extra. 2024-Jun-17
GISAM. Parcial 1. 2024-Oct-14
GISAM. Parcial 2. 2024-Nov-13
GISAM. Parcial 3. 2024-Dic-16
GISAM. Extra. 2025-Jun-17
GISAM. Parcial 1. 2025-Oct-20
GISAM. Parcial 2. 2025-Nov-19
GISAM. Parcial 3. 2026-Enero-9
GISAM. Parcial 1. 2026-Oct-21
TELECO. Ordinario. 2019-Dic-13
TELECO. Extra. 2020-Jul-07
TELECO. Ordinario. 2021-Ene-21
TELECO. Extra. 2021-Jul-02
TELECO. Ordinario. 2022-Ene-10
TELECO. Extra. 2022-Jun-29
TELECO. Ordinario. 2023-Ene-10
TELECO. Extra. 2023-Jun-29
TELECO. Parcial 1. 2023-Oct-20
TELECO. Parcial 2. 2023-Nov-17
TELECO. Parcial 3. 2023-Dic-22
TELECO. Extra. 2024-Jun-17
TELECO. Parcial 1. 2024-Oct-10
TELECO. Parcial 2. 2024-Nov-21
TELECO. Parcial 3. 2024-Dic-19
TELECO. Extra. 2025-Jun-17
TELECO. Parcial 1. 2025-Oct-10
TELECO. Parcial 2. 2025-Nov-13
TELECO. Parcial 3. 2026-Ene-21
TELECO. Extra. 2026-Jun-25
TELECO. Parcial 1. 2026-Oct-09
Robótica. Ordinario. 2020-Jun-1
Robótica. Extra. 2020-Jul-13
Robótica. Ordinario. 2021-Mayo-20
Robótica. Extra. 2021-Junio-16
Robótica. Parcial 1. 2022-Feb-25
Robótica. Parcial 2. 2022-Abril-1
Robótica. Parcial 3. 2022-Mayo-6
Robótica. Parcial 1. 2023-Feb-27
Robótica. Parcial 2. 2023-Mar-27
Robótica. Parcial 3. 2023-May-08
Robótica. Parcial 1. 2024-Feb-26
Robótica. Parcial 2. 2024-Mar-20
Robótica. Parcial 3. 2024-May-06
Robótica. Extra. 2024-Junio-24
Robótica. Parcial 1. 2025-Feb-25
Robótica. Parcial 2. 2025-Mar-31
Robótica. Parcial 3. 2025-May-19
Robótica. Parcial 1. 2026-Feb-23
Robótica. Parcial 2. 2026-Abr-13
Robótica. Parcial 3. 2026-May-11
Datos. Parcial 1. 2023-Oct-09
Datos. Parcial 2. 2023-Nov-15
Datos. Parcial 3. 2023-Dic-20
Datos. Parcial 1. 2024-Oct-09
Datos. Parcial 2. 2024-Nov-13
Datos. Parcial 3. 2025-Ene-17
Datos. Parcial 1. 2025-Oct-15
Datos. Parcial 2. 2025-Nov-19