22. Máscaras de bits e indicadores
Selecciona bits con AND y actívalos con OR.
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 13
AND 5
PRINT
OR 2
PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: Todos los bytes empiezan en cero
Solución de la predicción
Salida: 5, 7
2. Construir y comprobar
Lee un byte entre 0 y 255. Imprime únicamente sus bits 0 y 2 como una máscara numérica, usando AND 5.
Tipos de instrucción requeridos: INPUT, AND
Ejemplo de solución del reto
INPUT
AND 5
PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
7- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
5
Caso 2
- Entrada
10- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
0
Caso 3
- Entrada
20- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
4
Caso 4
- Entrada
255- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
5
3. Explicar la máquina
¿Qué selecciona la máscara 5?
Razonamiento y nota docente
00000101 selecciona los bits 0 y 2 y borra los demás. No es una resta numérica.
23. Alternar bits
Usa el cambio reversible de XOR para actualizar una opción guardada.
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
XOR 6
PRINT
XOR 6
PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: Todos los bytes empiezan en cero
Solución de la predicción
Salida: 44, 42
2. Construir y comprobar
Lee un byte. Alterna los bits 1 y 2, guarda el byte cambiado en la dirección 20 e imprímelo después de recuperarlo. Alterna esos bits otra vez, guarda el byte restaurado en la dirección 20 e imprime el valor restaurado.
Tipos de instrucción requeridos: INPUT, XOR, STORE, LOAD
Ejemplo de solución del reto
INPUT
XOR 6
STORE 20
LOAD [20]
PRINT
XOR 6
STORE 20
LOAD [20]
PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
0- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
6, 0- Memoria final esperada
20: 0- Lecturas de memoria requeridas
20
Caso 2
- Entrada
42- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
44, 42- Memoria final esperada
20: 42- Lecturas de memoria requeridas
20
Caso 3
- Entrada
255- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
249, 255- Memoria final esperada
20: 255- Lecturas de memoria requeridas
20
3. Explicar la máquina
¿Qué ocurre al alternar dos veces la misma máscara XOR?
Razonamiento y nota docente
Se recupera el original: 42 XOR 6 = 44 y después 44 XOR 6 = 42.
24. Bits con signo y el valor mayor
Comprende NOT y comprueba una diferencia con una máscara de signo.
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 255
NOT
PRINT
NOT
PRINT
HALT
Añadir entradas a la cola: Ninguno
Inicializar memoria: Todos los bytes empiezan en cero
Solución de la predicción
Salida: -256, 255
2. Construir y comprobar
Lee dos enteros, cada uno entre −10 000 y 10 000, e imprime el mayor. Usa una resta y la máscara de signo de 32 bits.
Tipos de instrucción requeridos: INPUT, SUB, AND, JUMP_IF_ZERO
Ejemplo de solución del reto
INPUT
COPY R0 R1
INPUT
COPY R0 R2
LOAD R1
SUB R2
AND -2147483648
JUMP_IF_ZERO first
LOAD R2
JUMP show
first: LOAD R1
show: PRINT
HALT
Casos reales del comprobador
Caso 1
- Entrada
5, 9- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
9
Caso 2
- Entrada
9, 5- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
9
Caso 3
- Entrada
7, 7- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
7
Caso 4
- Entrada
-3, 2- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
2
Caso 5
- Entrada
-8, -2- Memoria inicial
Todos los bytes empiezan en cero- Salida esperada
-2
3. Explicar la máquina
¿Por qué NOT 255 es −256 y no 0?
Razonamiento y nota docente
NOT invierte los 32 bits con signo. Para invertir solo el byte haría falta además la máscara 255.