Aller au contenu

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