13. Assembleur ARM utilisation de variables Flashcards
L’—– nous permet de donner un nom à des adresses
mémoires: ce sont les —–
L’assembleur nous permet de donner un nom à des adresses
mémoires: ce sont les variables
comment Déclarer une variable assignée (initialisée)
nom ASSIGNxx valeur
ASSIGNxx: xx indique la taille en bits. Par exemple:
* ASSIGN8: variable de 8 bits
* ASSIGN32: variable de 32 bits
* valeur: la valeur de la variable
ex
premiereValeur ASSIGN32 0x1
deuxiemeValeur ASSIGN32 0x2
troisiemeValeur ASSIGN32 0xABCDEF12
comment charger la valeur d’une variable
« Variante » de LDR:
LDR Rd, nomDeLaVariable
; Charger la valeur de premiereValeur dans R1
LDR R1, premiereValeur
ex
premiereValeur ASSIGN32 0x1
deuxiemeValeur ASSIGN32 0x2
troisiemeValeur ASSIGN32 0xABCDEF12
Charger l’adresse d’une variable
« Variante » de LDR:
LDR Rd, =nomDeLaVariable
la différence est le =
; Charger l’adresse de premiereValeur dans R1
LDR R1, =premiereValeur
premiereValeur ASSIGN32 0x1
deuxiemeValeur ASSIGN32 0x2
troisiemeValeur ASSIGN32 0xABCDEF12
Allouer une variable (réserve de l’espace mais ne lui assigne
pas de valeur):
nom ALLOCxx nombre
nom: nom de la variable
* ALLOCxx: xx indique la taille en bits. Par exemple:
* ALLOC8: variable de 8 bits
* ALLOC32: variable de 32 bits
* nombre: le nombre d’éléments à réserver
- exemple:
; Résultat (on ignore sa valeur a priori)
resultat ALLOC32
premiereValeur ALLOC32 1
deuxiemeValeur ALLOC32 1
troisiemeValeur ALLOC32 1
différence entre assigner et allouer
nom ASSIGNxx valeur
* assigne une VALEUR à un espace mémoire
* parallèle avec le standard du C:
* c’est une DEFINITION (on définit une valeur précise).
- nom ALLOCxx nombre
- alloue un NOMBRE d’espaces mémoire sans attribuer de valeur.
- parallèle avec le standard du C:
- c’est une DECLARATION (on déclare une variable sans définir de
valeur).
quel mot clef pour les tableaux
x3
chaine ASSIGN8 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x00
tableau ASSIGN32 0x12, 0x23
tableauAlloue ALLOC32 3
chaine désigne un tableau assigné de 6 octets
* tableau désigne un tableau assigné de (2 x 4 = 8) octets
* tableauAlloue désigne un tableau alloué de (3 x 4 = 12) octets
* Le nom du tableau « pointe » vers le premier octet de ce tableau.