Adloun

NSI (première) · Chapitre 9 · Exercice de TD

Écrire un programme machine qui additionne le contenu des cases 30 à…

Machines, systèmes et réseaux · Von Neumann et langage machine · niveau 3 (difficile)

Énoncé

Écrire un programme machine qui additionne le contenu des cases à et range le résultat en . Indication : une boucle et un compteur.

Corrigé

Ce que le jeu d'instructions permet réellement. Une boucle demande de lire une case dont l'adresse change à chaque tour. Or CHARGE R, adr exige une adresse écrite en toutes lettres dans l'instruction. Avec le jeu d'instructions du chapitre tel quel, la boucle est impossible : il faut dérouler.


CHARGE R1, 30
CHARGE R2, 31
AJOUTE R1, R2
CHARGE R2, 32
AJOUTE R1, R2
CHARGE R2, 33
AJOUTE R1, R2
CHARGE R2, 34
AJOUTE R1, R2
RANGE  R1, 35

Dix instructions, dix pas d'exécution. Avec , on obtient .

La boucle, et ce qu'elle coûte. Pour la boucle demandée par l'indication, il manque une instruction — l'adressage indirect : CHARGEIND R1, R2 charge dans R1 le contenu de la case dont l'adresse est dans R2. Tout processeur réel en possède une. Avec elle, et trois constantes rangées en mémoire (, , , ) :


        CHARGE    R1, 80    ; total   <- 0
        CHARGE    R2, 81    ; adresse <- 30
        CHARGE    R3, 82    ; reste   <- 5
        CHARGE    R5, 83    ; la constante 1
boucle: SAUTESI   R3, fin
        CHARGEIND R4, R2    ; R4 <- contenu de la case d'adresse R2
        AJOUTE    R1, R4    ; total <- total + valeur
        AJOUTE    R2, R5    ; adresse suivante
        SOUSTRAIT R3, R5    ; une valeur de moins a lire
        SAUTE     boucle
fin:    RANGE     R1, 35

Onze instructions écrites, pas exécutés sur cinq valeurs — plus long que le déroulé. L'intérêt n'est pas la vitesse : c'est que le même programme somme cases en changeant un seul nombre, .

Contrôle : avec , on retrouve ; avec cinq , on obtient .

Piège : croire qu'il suffit d'écrire CHARGE R2, R3 pour lire « la case numéro R3 ». C'est justement la différence entre une adresse constante, gravée dans l'instruction, et une adresse calculée. Constater qu'elle manque vaut mieux que l'inventer.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →