10. Logique conditionnelle : prendre une décision
Comparez des valeurs puis choisissez un chemin selon un indicateur mémorisé.
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 7
CMP 7
JUMP_IF_ZERO same
LOAD 0
JUMP show
same: LOAD 1
show: PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
2. Construire et vérifier
Lisez deux entiers. Affichez 1 s’ils sont égaux, sinon 0. Gérez les entrées égales et différentes.
Types d’instructions requis: INPUT, CMP, JUMP_IF_ZERO
Programme de départ
INPUT
COPY R0 R1
INPUT
CMP R1
#
HALT
Votre programme et vos notes
3. Expliquer la machine
Z peut-il être vrai alors que R0 est non nul ?
11. Pair ou impair
Classez une entrée avec un reste et un branchement.
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 -3
MOD 2
JUMP_IF_ZERO even
LOAD 0
JUMP show
even: LOAD 1
show: PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: Tous les octets sont initialement nuls
2. Construire et vérifier
Lisez un entier. Affichez 1 s’il est pair et 0 s’il est impair.
Types d’instructions requis: INPUT, MOD, JUMP_IF_ZERO
Programme de départ
INPUT
MOD 2
#
HALT
Votre programme et vos notes
3. Expliquer la machine
−3 est-il impair même si son résultat MOD 2 vaut −1 ?
12. Une décision fondée sur la mémoire
Prenez une décision à partir d’une donnée enregistrée et conservez le résultat.
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.
STORE 23 40
LOAD [40] R1
LOAD 23
CMP R1
JUMP_IF_ZERO match
LOAD 0
JUMP record
match: LOAD 1
record: STORE 41
PRINT
HALT
Ajouter les entrées à la file: Aucune
Initialiser la mémoire: 40: 23
2. Construire et vérifier
La mémoire 40 contient un code de billet fourni. Lisez une proposition, puis affichez et enregistrez à l’adresse 41 un 1 si elle correspond au code, sinon un 0.
Types d’instructions requis: INPUT, CMP, STORE, JUMP_IF_ZERO
Programme de départ
LOAD [40] R1
INPUT
CMP R1
#
HALT
Votre programme et vos notes
3. Expliquer la machine
Pourquoi le programme doit-il encore fonctionner quand la mémoire 40 change ?