Assembleur: quelques instructions☘
Attention
Nous n'allons pas vous apprendre à programmer en assembleur: les instructions ci-dessous sont uniquement des exemples permettant de comprendre l'essentiel du fonctionnement.
LDR☘
LDR R1,78
Signification
Place la valeur stockée à l'adresse mémoire 78 dans le registre R1 (par souci de simplification, nous continuons à utiliser des adresses mémoire codées en base 10)
Note
LD pour load
STR☘
STR R3,125
Signification
Place la valeur stockée dans le registre R3 en mémoire vive à l'adresse 125
Note
ST pour storage
ADD☘
ADD R1,R0,#128
Signification
Additionne le nombre 128 (une valeur immédiate est identifiée grâce au symbole #) et la valeur stockée dans le registre R0, place le résultat dans le registre R1
ADD☘
ADD R0,R1,R2
Signification
Additionne la valeur stockée dans le registre R1 et la valeur stockée dans le registre R2, place le résultat dans le registre R0
SUB☘
SUB R1,R0,#128
Signification
Soustrait le nombre 128 de la valeur stockée dans le registre R0, place le résultat dans le registre R1
SUB☘
SUB R0,R1,R2
Signification
Soustrait la valeur stockée dans le registre R2 de la valeur stockée dans le registre R1, place le résultat dans le registre R0
MOV☘
MOV R1, #23
Signification
Place le nombre 23 dans le registre R1
MOV☘
MOV R0, R3
Signification
Place la valeur stockée dans le registre R3 dans le registre R0
B☘
B 45
Signification
Nous avons une structure de rupture de séquence, la prochaine instruction à exécuter se situe en mémoire vive à l'adresse 45
Note
B pour break
CMP☘
CMP R0, #23
Signification
Compare la valeur stockée dans le registre R0 et le nombre 23. Cette instruction CMP doit précéder une instruction de branchement conditionnel BEQ, BNE, BGT, BLT (voir ci-dessous)
Note
CMP pour compare.
NE: not equal, EQ: equal, GT: greater than, LT: less than.
CMP☘
CMP R0, R1
Signification
Compare la valeur stockée dans le registre R0 et la valeur stockée dans le registre R1.
CMP☘
CMP R0, #23
BEQ 78
Signification
La prochaine instruction à exécuter se situe à l'adresse mémoire 78 si la valeur stockée dans le registre R0 est égale à 23
CMP☘
CMP R0, #23
BNE 78
Signification
La prochaine instruction à exécuter se situe à l'adresse mémoire 78 si la valeur stockée dans le registre R0 n'est pas égale à 23
CMP☘
CMP R0, #23
BGT 78
Signification
La prochaine instruction à exécuter se situe à l'adresse mémoire 78 si la valeur stockée dans le registre R0 est plus grand que 23
CMP☘
CMP R0, #23
BLT 78
Signification
La prochaine instruction à exécuter se situe à l'adresse mémoire 78 si la valeur stockée dans le registre R0 est plus petit que 23
HALT☘
HALT
Signification
Arrête l'exécution du programme