Soluciones para docentes

Memoria de bytes

Recoge cuatro tipos de evidencia: predicción del estado relevante; comportamiento en casos variados, incluidos los límites; explicación apoyada en la traza y el estado; y corrección razonada de una discrepancia. Valora cada aspecto como inicial, con apoyo o autónomo, en papel o mediante el proceso aprobado del centro. Superar un reto demuestra un comportamiento de la máquina, no la autoría ni un dominio completo. Acepta programas correctos equivalentes; las soluciones públicas son modelos, no las únicas respuestas posibles.

Material didáctico público. Las soluciones son ejemplos; otros programas correctos equivalentes pueden superar las comprobaciones.

7. Memoria: el cuaderno del ordenador

Guarda un byte y recupéralo de verdad después de sobrescribir R0.

Abrir esta lección →

1. Predecir y trazar

Antes de ejecutar el programa de prueba, predice su salida y traza las tres primeras instrucciones ejecutadas. Sigue los registros, indicadores o memoria relevantes. Después avanza paso a paso para comparar.

LOAD 42
STORE 0
LOAD 99
STORE 1
LOAD 0
LOAD [0]
PRINT
LOAD [1]
PRINT
HALT

Añadir entradas a la cola: Ninguno

Inicializar memoria: Todos los bytes empiezan en cero

Solución de la predicción

Salida: 42, 99

InstrucciónPC antesPC despuésR0 antesR0 despuésEstado relevanteSalida
LOAD01042{"registers":[42,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}Ninguno
STORE124242{"registers":[42,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[0]}Ninguno
LOAD234299{"registers":[99,0,0,0,0,0,0,0],"flags":{"zero":false,"negative":false,"overflow":false},"sp":255,"stack":[],"callStack":[],"loopStack":[],"memoryReads":[],"memoryWrites":[]}Ninguno

2. Construir y comprobar

Lee una entrada de un byte (0–255), guárdala en la dirección de memoria 10, pon R0 en cero y después recupera el byte de memoria e imprímelo.

Tipos de instrucción requeridos: INPUT, STORE, LOAD

Ejemplo de solución del reto

INPUT
STORE 10
LOAD 0
LOAD [10]
PRINT
HALT

Casos reales del comprobador

Caso 1
Entrada
9
Memoria inicial
Todos los bytes empiezan en cero
Salida esperada
9
Memoria final esperada
10: 9
Lecturas de memoria requeridas
10
Caso 2
Entrada
42
Memoria inicial
Todos los bytes empiezan en cero
Salida esperada
42
Memoria final esperada
10: 42
Lecturas de memoria requeridas
10
Caso 3
Entrada
127
Memoria inicial
Todos los bytes empiezan en cero
Salida esperada
127
Memoria final esperada
10: 127
Lecturas de memoria requeridas
10

3. Explicar la máquina

¿Qué código lee la memoria 10 y qué código carga el número 10?

Razonamiento y nota docente

LOAD [10] lee el byte; LOAD 10 carga el literal. STORE y la lectura posterior conservan el byte aunque se sobrescriba R0.