22. Masques de bits et indicateurs
Sélectionnez des bits avec AND et activez-les avec OR.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
LOAD 13
AND 5
PRINT
OR 2
PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
Corrigé de la prédiction d’essai
Sortie: 5, 7
2. Construire et vérifier
Lisez un octet de 0 à 255. Affichez uniquement ses bits 0 et 2 sous forme de masque numérique, avec AND 5.
Types d’instructions requis: INPUT, AND
Exemple de solution du défi
INPUT
AND 5
PRINT
HALT
Cas réels du vérificateur
Cas 1
- Entrée
7- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
5
Cas 2
- Entrée
10- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
0
Cas 3
- Entrée
20- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
4
Cas 4
- Entrée
255- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
5
3. Expliquer la machine
Que sélectionne le masque 5 ?
Raisonnement et note pédagogique
Le binaire 00000101 sélectionne les bits 0 et 2 et efface les autres. Il ne soustrait pas numériquement d’autres valeurs.
23. Basculer des bits
Utilisez la transformation réversible de XOR pour modifier un réglage enregistré.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
LOAD 42
XOR 6
PRINT
XOR 6
PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
Corrigé de la prédiction d’essai
Sortie: 44, 42
2. Construire et vérifier
Lisez un octet. Basculez les bits 1 et 2, enregistrez l’octet modifié à l’adresse 20 et affichez-le après relecture. Basculez à nouveau ces bits, sauvegardez l’octet restauré à l’adresse 20 et affichez sa valeur.
Types d’instructions requis: INPUT, XOR, STORE, LOAD
Exemple de solution du défi
INPUT
XOR 6
STORE 20
LOAD [20]
PRINT
XOR 6
STORE 20
LOAD [20]
PRINT
HALT
Cas réels du vérificateur
Cas 1
- Entrée
0- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
6, 0- Mémoire finale attendue
20: 0- Lectures mémoire requises
20
Cas 2
- Entrée
42- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
44, 42- Mémoire finale attendue
20: 42- Lectures mémoire requises
20
Cas 3
- Entrée
255- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
249, 255- Mémoire finale attendue
20: 255- Lectures mémoire requises
20
3. Expliquer la machine
Que se passe-t-il après deux bascules avec le même masque XOR ?
Raisonnement et note pédagogique
La valeur initiale revient : 42 XOR 6 = 44, puis 44 XOR 6 = 42.
24. Bits signés et valeur maximale
Comprenez NOT et testez une différence signée avec un masque de signe.
Ouvrir cette leçon →
1. Prévoir et tracer
Avant d’exécuter le programme d’essai, prévoyez sa sortie et tracez les trois premières instructions exécutées. Suivez les registres, les indicateurs ou la mémoire pertinents, selon le besoin. Avancez ensuite pas à pas pour comparer.
LOAD 255
NOT
PRINT
NOT
PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
Corrigé de la prédiction d’essai
Sortie: -256, 255
2. Construire et vérifier
Lisez deux entiers, chacun de −10 000 à 10 000, et affichez le plus grand. Utilisez une soustraction et le masque de signe sur 32 bits.
Types d’instructions requis: INPUT, SUB, AND, JUMP_IF_ZERO
Exemple de solution du défi
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
Cas réels du vérificateur
Cas 1
- Entrée
5, 9- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
9
Cas 2
- Entrée
9, 5- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
9
Cas 3
- Entrée
7, 7- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
7
Cas 4
- Entrée
-3, 2- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
2
Cas 5
- Entrée
-8, -2- Mémoire initiale
Tous les octets sont initialement nuls- Sortie attendue
-2
3. Expliquer la machine
Pourquoi NOT 255 vaut-il −256 plutôt que 0 ?
Raisonnement et note pédagogique
NOT inverse les 32 bits signés. Un complément limité à un octet nécessiterait un masque 255 distinct.