Skip to content

Examen: Parcial 1:2025_10_15:Datos

Miguel edited this page Oct 20, 2025 · 2 revisions

Examen Parcial 1: 2025-10-15. Ciencia e Ingeniería de Datos

  • Tiempo: 50 minutos
  • Descripción: Examen Parcial 1. Laboratorio. Grado de Ciencia e Ingeniería de Datos
  • Fecha: 2024/Octubre/9
  • Temario: Sesiones L1, L2, L3 y L4

Contenido

Enunciado

El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un programa

Test (5 ptos)

  • Realizado a través de Aula virtual
  • 10 preguntas tipo test
  • Las respuesats incorrectas restan un 33% del valor de la pregunta
  • Solución disponible en Aula virtual

Programa (5 ptos)

Enunciado

Escribir un programa en rars que, cíclicamente, vaya encenciendo los segmentos exteriores del display derecho y apagando los del izquierdo. Se mantendrá también una variable como contador del nº ciclo actual (no se destinará ningún registro de forma exclusiva para guardar la dirección de la variable ni su contenido).

La secuencia seguida sería por tanto:

secuencia

Observaciones:

  • Nótese que el segmento a es 1, el b es 2, el c es 4 y así sucesivamente (se va doblando).

  • Si tuvieramos encendidos ya varios segmentos (por ejemplo, a y b, que significaría 1 + 2 = 3), para añadir el segmento c solo sería necesario sumar 4 (3 + 4 = 7). Para quitar un segmento, entonces restaríamos (ej.: 7 – 4 = 3; hemos apagado el segmento c).

  • Para hacer este ejercicio, se necesita utilizar un salto condicional. Se recomienda usar beq (branch if equal, esto es, saltar si son iguales), que apareció en dos ejercicios de L1. Se pone un ejemplo (si x1 = x2, se salta a la etiqueta seguir, en caso contrario, se continúa en la siguiente línea):

# Ejemplo: si x1 = x2, se salta a la etiqueta seguir
beq x1, x2, seguir
addi x3, x3, 1    # si no son iguales, se ejecuta esta instrucción
seguir:
    # ...

Notas:

  • El código que se entregue debe compilar. En caso contrario, el ejercicio se calificará con 0.

  • Tal y como se ha hecho en el Laboratorio, es recomendable que vaya haciendo alguna prueba mientras codifica en vez de hacer todo el ejercicio y luego probar.

  • Si ve que no le da tiempo a hacer todo el ejercicio, intente hacer al menos una parte del mismo (y que ésta funcione).

  • Un de los aspectos que se calificarán será la claridad del código. Es importante que se ajuste a lo indicado en el curso virtual, en Contenidos->Laboratorio->Comentarios y organización del código.

Solución al programa

Como siempre ocurre al programar, existen infinitas soluciones. Pero en todas ellas se debe respetar la especificación

Este es el contenido del programa:

#  Programa: cicloDisplay.asm
# Propósito: Cíclicamente, enciende los segmentos exteriores del display derecho y
#            apaga los del izquierdo. Mantiene una variable contador del nº ciclo actual.
#     Autor: Javier Macías del Campo
#     Fecha: 04/10/2025
	
	.eqv BASE_DISP 0xFFFF0010  #Direccion base de acceso a los displays  
	.eqv DISP_R 0	   #Desplazamiento display derecho
	.eqv DISP_L 1	   #Desplazamiento display izquierdo
	.eqv SEG_G 0x40	   #Segmento g del display encendido (en binario: 0100 0000)
	.eqv SEG_A_F 0x3F  #Segmentos del a al f del display encendidos (en binario: 0011 1111)
	
	.data		
ciclo:	.word 0	 #variable indica el nº ciclo en el que se está

	.text
	li x1, BASE_DISP
	li x4, SEG_G
	
inicio:	
	#actualizamos la variable del nº de ciclo
	la x2, ciclo
	lw x3, 0(x2)
	addi x3, x3, 1
	sw x3, 0(x2)
	
	#inicializamos 
	li x2, 1  #contador del segmento, inicializado a 1 (segmento A)
	li x3, 0  #acumulador segmentos encendidos display derecho (empezamos por todo apagado)
	li x5, SEG_A_F   #acumulador segmentos encendidos display izquierdo (empezamos por A a F encendidos)
        
cont:
	sb x3, DISP_R(x1)
	sb x5, DISP_L(x1)
	
	beq x2, x4, inicio    #si tocara el segmento G, hemos terminado un ciclo
	add x3, x3, x2        #"encendemos" otro segmento más en el display derecho
	sub x5, x5, x2        #"apagamos" otro segmento más en el display izquierdo
	add x2, x2, x2        #siguiente segmento
	j cont
	
	#finalización programa (puesto por seguridad: no debería llegar aquí)
	li a7, 10
	ecall

Autores

  • Miguel Ángel de Miguel
  • Javier Macías

Licencia

Enlaces

Página principal


Sesiones de Prácticas

P1: Simulador RARs

L1: El simulador RARs
L2: Calculando expresiones
L3: Práctica 1-3. Variables

P2: E/S mapeada. Llamadas al sistema

L4: Pract 2-1. E/S mapeada
L5: Práctica 2-2: Inst. ecall
L6: Prác 2-3: Cadenas

P3: Bucles y Saltos condicionales

L7: Práct 3-1: Bucles y saltos
L8: Práct 3-2: Cadenas II

P4: Subrutinas

L9: Pract 4-1: Subrut. Nivel-1
L10: Pract 4-2: La pila
L11: Pract 4-3: Recursividad

P5: Memoria Dinámica

L12: Pract 5-1. Heap. Listas

VÍDEO DE DESPEDIDA

SESIONES ADICIONALES

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

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

Ejercicios de examen

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

Clone this wiki locally