-
Notifications
You must be signed in to change notification settings - Fork 21
Examen: Parcial 1:2023_10_09:Datos

- Tiempo: 50 minutos
- Descripción: Examen Parcial 1. Laboratorio. Grado de Ciencia e Ingeniería de Datos
- Fecha: 2023/Octubre/9
- Temario: Sesiones L1, L2, L3 y 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
La velocidad final de un avión, se calcula utilizando la velocidad obtenida mediante un sensor tipo tubo de pitot, cuyo valor viene reducido por un factor de 4, la velocidad del viento, y un valor de error constante de 3
Escribe un programa en ensamblador en el fichero filtro.asm, que contenga 3 variables en memoria denominadas, v1, v2, v3, situadas en ese orden en el segmento de datos (v1 está en la posición 0x10010000)
Dicho programa debe calcular la velocidad del avión utilizando la fórmula f = 4 * v1 - (v2 + 3). El resultado se debe almacenar en la varible v3. Las variables se deben inicilalizar con los siguientes valores: v1 = 10, v2 = 2, v3 = 0. Una vez realizado el cálculo, se debe iluminar la letra C en el display de 7 segmentos derechos para indicar que se ha realizado el Cálculo.
Como siempre ocurre al programar, existen infinitas soluciones. Pero en todas ellas se debe respetar la especificación
Este es el contenido del fichero filtro.asm:
#-- Programa que calcula la velocidad en base a la siguiente fórmula:
#-- f = 4 * v1 - (v2 + 3), el resultado se guarda en v3
#-- Declarar 3 variables en memoria denominadas, v1, v2, v3, situadas en ese orden en el segmento de datos
#-- Las variables se deben inicilalizar con los siguientes valores: v1 = 10, v2 = 2, v3 = 0
#-- Una vez realizado el cálculo, se debe iluminar la letra C en el display de 7 segmentos derechos
#-- para indicar que se ha realizado el Cálculo.
.eqv DISP_R 0xFFFF0010 #-- Dirección del display derecho
.eqv V1 0 #-- Offset de v1 a partir de la dirección de v1
.eqv V2 4 #-- Offset de v2 a partir de la dirección de v1
.eqv V3 8 #-- Offset de v3 a partir de la dirección de v1
.eqv LETRA_C 0x39 #-- Valor para iluminar la letra C
.data
#-- Declaración e inicialización de v1, v2 y v3
v1: .word 10
v2: .word 2
v3: .word 0
.text
# Carga de la dirección de v1 en x3
la x3, v1
#-- Carga del valor de v1 y v2 en x4 y x5 respectivamente
lw x4, V1(x3)
lw x5, V2(x3)
#-- Cálculo de la ecuación
add x6, x4, x4 #-- x6 = v1 x 2
add x6, x6, x6 #-- x6 = x6 x 2
addi x7, x5, 3 #-- x7 = x5 + 3
sub x8 x6, x7 #-- x8 = x6 + x7
#-- Guarda el resultado almacenado en x8 en v3
sw x8, V3(x3)
#-- Mostrar la letra C
li x10, DISP_R #-- Carga la dirección del display derecho
li x11 LETRA_C #-- Carga el valor de la letra C
sw x11, 0(x10) #-- Guarda en el MMIO del display derecho el valor de la letra C
#-- Terminar
li a7, 10
ecall
La evaluación del programa se ha hecho de la siguiente manera:
-
Estilo: comentarios, pseudoinstrucciones, eqv, etc. (1pto)
-
Variables: Definir variables en .data y leer/escribir correctamente (1pto)
-
Ecuación: Calcular correctamente la ecuación (1pto)
-
Optimización: 15 instrucciones o menos (1pto)
-
Display: Iluminar la letra C (1pto)
- Miguel Ángel de Miguel
- 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 🚧
Macros
Entrada/Salida a bajo 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
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
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
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