Vous êtes sur la page 1sur 3

Architecture matérielle :

Séquence 2
TD assembleur

Exercice 1 : Traduire les instructions suivantes :


Instructions Traductions
STR R3,125 Stocke 125 dans la ram en R3
ADD R0, R1, R2 Ajouter les valeurs R1 et R2 et résultat dans R0
SUB R1, R0, #32 Soustraire valeur #32 de la valeur R0 et placer resultat dans R1
LDR R3, 147 Charger dans le cpu en R3 le contenu 147
ADD R0, R1, #23 Ajouter les valeur R1 et #23 et résultat dans R0
MOV R2, R1 Déplacer valeur R1 Dans R2
SUB R0, #75, #18 Soustraire valeur #18 de la valeur #75 et résultat en R0
MOV R1, #23 Deplacer valeur #23 en R1
CMP #42, R3 Comparer valeur #42 et R3
CMP R2, R1 Comparer R2 R1, si R2>R1, allez dans else
BGT else

CMP R3, #18 Comparer R3 et #18, si R3=#18 allez dans 89


BEQ 89

CMP #80, R1 Comparer #80 et R1, si #80 différent de R1, allez dans endif
BNE endif

Exercice 2 : Ecrire en assembleur les instructions suivantes :


Instructions Traductions
ADD R3,RO,R1 Additionne la valeur stockée dans le registre R0 et la valeur stockée dans le registre R1, le
résultat est stocké dans le registre R3.

CMP RO, R1 Compare la valeur stockée dans le registre R0 et la valeur stockée dans le registre R1.

MOV R2, 65 Place le nombre 65 dans le registre R2.

SUB R1, 128,R0 Soustrait le nombre 128 de la valeur stockée dans le registre R0, place le résultat dans le
registre R1.

LDR R1, 78 Charge la valeur de la mémoire d'adresse 78 dans le registre R1.

STR 125, R3 Stocke la valeur du registre R3 à l’adresse mémoire 125.

MOV R3, R1 Déplace la valeur du registre 1 dans le registre 3.

CMP, R0,42 Si la valeur stockée dans le registre R0 est différente de 42 alors la prochaine instruction à
exécuter se situe à l’adresse mémoire 85.
BNE, 85
CMP,R3,23 La prochaine instruction à exécuter se situe au niveau else du programme si la valeur
stockée dans le registre R0 est plus petit que 23.

BLT else

HALT Stoppe le programme.

La prochaine instruction à exécuter se situe en mémoire vive à l’adresse 478. Si la valeur


stockée dans le registre R1 est égale 24 alors la prochaine instruction à exécuter se situe
à l’adresse mémoire 85.

Y. Coudert - Lycée Le Bon Sauveur Le Vésinet – 1ère spécialité NSI


D’après document de S. Guillaud et C. Roblain du lycée Talma de Brunoy
1
Architecture matérielle :
Séquence 2
TD assembleur

Exercice 3 : Traduire la séquence suivante :


Comparer valeur RAM 4 et valeur #18.
Si RAM4 est supérieur à valeur #18
Allez dans monLabel
Déplacer #14 dans RAM 0
Stopper le programme
Dans monLabel : Déplacer #18 dans R0
Stopper programme

À quoi sert le premier HALT ? Il sert a arrêter le programme et se déplacer dans monLabel

Exercice 4 : Voici un programme en python traduit en langage assembleur.

n° adress opérations,
contenu
ligne e comparaisons
1 R0 deplacer 4
2 30 stocke R0
3 R0 déplacer 8
75 Stocke R0
4
RO
5 Charger Adresse 30
Else Comparer 10
6
RO Si différent 9
7

8 RO Déplacer R0
9 75 Stocker R0
1) Remplir le tableau ci-contre permettant
d'analyser ligne par ligne le programme en Endif Prochaine
10 instruction :endif
assembleur.
else Sinon
11
2) Établir une correspondance entre les lignes du (etiquette)
programme en Python et les lignes du programme 12 R0 Charger Adresse 30
en assembleur. 13 R0 Additioner 1
Les variables sont représentés par RAM 0, les
14 30 Stocker R0
contenus sont les valeurs précédés d’un #
Le if est ici « CMP », 15 Endif Dans endif 6
16 R0 Déplacer R0
3) À quoi sert la ligne "B endif" ? À quoi
17 23 Stocker
correspondent les adresses mémoires 23, 75 et 30
Ceci indique que la prochaine instruction se 18 stopper
déroulera dans la partie B endif ?

Y. Coudert - Lycée Le Bon Sauveur Le Vésinet – 1ère spécialité NSI


D’après document de S. Guillaud et C. Roblain du lycée Talma de Brunoy
2
Exercice 5 :
Que fait le programme suivant ? Le traduire en Python.
MOV R0, # 48
STR R0, 8
SUB R1,R0,#37
STR R1, 9

Exercice 6 : On suppose qu'une valeur est déjà dans la case mémoire 0 et une autre dans la case
mémoire 1. Écrire un programme qui lit la valeur de la mémoire 1 puis la compare à celle de la mémoire 0
et si elle est plus grande ou égale, écrit cette valeur dans la case mémoire 2.

Y. Coudert - Lycée Le Bon Sauveur Le Vésinet – 1ère spécialité NSI


D’après document de S. Guillaud et C. Roblain du lycée Talma de Brunoy
3

Vous aimerez peut-être aussi