Repository navigation
Examen: Parcial 1:2026_10_21:GISAM

- Tiempo: 50 minutos
- Descripción: Examen Parcial 1. Laboratorio. Grado en Ingeniería de Sistemas Audiovisuales y Multimedia
- Fecha: 2026/Oct/21
- 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 expresion.s, que calcule la siguiente expresion:
f = a + b + c + d + 0x80
Donde a, b, c, d y f son cinco variables almacenadas en memoria, consecutivamente, siendo a la primera variable del segmento de datos
Los valores iniciales del segmento de datos son 2, 4, 0x20, 0x40 y 0, que se corresponden con las 5 variables anteriores
El programa debe leer las variables a,b,c y d de memoria, evaluar la expresión y almacenar el resultado en la variable f
Conseguirás este bonus si envías el valor de f al display de 7 segmentos derecho e indicas en los comentarios del programa lo que aparece en él
#-- Solucion
#-- BONUS: Direccion del display de 7 segmentos derecho
.eqv DISP_R 0xFFFF0010
.data
a: .word 2 #-- Especificaciones
b: .word 4 #-- Especificaciones
c: .word 0x20 #-- Especificaciones
d: .word 0x40 #-- Especificaciones
f: .word 0 #-- Especificaciones
.text
#-- x1: Puntero de acceso a memoria
la x1, a
#-- f = a + b + c + d + 0x80
#-- x10 x5 x6 x7 x8
#-- Lectura de las variables:a, b, c y d de memoria
lw x5, 0(x1)
lw x6, 4(x1)
lw x7, 8(x1)
lw x8, 12(x1)
#-- Calcular la expresion f = a + b + c + d + 0x80
#-- x10 = x5 + x6 + x7 + x8 + 0x80
add x10, x5, x6
add x10, x10, x7
add x10, x10, x8
addi x10, x10, 0x80
#-- Almacenar el resultado en f
sw x10, 16(x1)
#-- BONUS!
#-- Escribir f en el display de 7 segmentos
#-- Metermos en x1 la direccion del display
li x1, DISP_R
sw x10, 0(x1)
#-- En el display de 7 segmentos aparece "4."
#-- (el dígito 4 y el punto)
#-- Terminar
li a7, 10
ecall🚧 TODO 🚧
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. Se quitan puntos según los errores encontrados:
- Violación de especificaciones: -0.5
- Programa no ensambla: -0.5
- Error en tiempo de ejecución al pasar las pruebas: Runtime error: -0.5
- Retraso en la entrega: -0.5
- No hay segmento de código: -0.5
- Variable no contiene el valor correcto: -0.5
- El programa no termina (-0.5): No se llama al servicio exit del sistema operativo para terminar el programa de forma controlada
-
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... Se restan puntos por errores encontrados en el código:
- No hay instrucción sw para escribir en variable (-0.5)
- Registros inicializados con CONSTANTES cuando el enunciado pide leerlos de memoria (variables) (-0.5)
- Código sin sentido (-0.5): Se ha introducido una instrucción, o directiva, que no tiene relación con el enunciado y no se da una explicación explícita de porqué se ha puesto
- Comentario contradictorio (-0.5): La instrucción hace una cosa, pero en los comentarios se indica otra distinta
- Comentarios no coherentes (-0.5): Se indica algo en los comentarios que no tiene nada que ver con el código que se está escribiendo
- Uso de un registro NO inicializado (-0.5)
- Violacion de especificaciones (-0.5)
- Dato inventado (-0.5). El código añade algo, o supone algo que no tiene sentido según lo que dice el enunciado
- Error en calculos (-0.5)
- No hay comentarios, o son muy escasos (-0.5)
- Ismael Gómez Talal
- 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