14. arm adressage Flashcards

1
Q

comment décaler les bit à gauche

A

LSL (Logical Shift Left):
* décale vers la gauche
* mets des « 0 » à droite
* équivaut à multiplier un entier par 2

LSL R0, R0, #1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

comment décaler les bits NON SIGNÉS à droite

A

LSR (Logical Shift Right):
* décale vers la droite
* mets des « 0 » à gauche
* équivaut à diviser un entier non-signé par 2

LSR R0, R0, #1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

comment décaler les bits SIGNÉS à droite

A

ASR (Arithmetic Shift Right):
* décale vers la droite
* mets le bit de signe à gauche
* équivaut à diviser un entier signé par 2

ASR R0, R0, #1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

comment déplacer les données

A

L’instruction
MOV Rn Op
met l’opérande Op dans le registre Rn

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

3 choix pour l’opérande du mov

A

1.Constante: toujours précédée du symbole #
2.Registre
3.Registre décalé
* Le décalage est fait avant l’opération

MOV R0, #1234 ; R0 ⃪ 1234
MOV R0, R1 ; R0 ⃪ R1
MOV R0, R1, ASR #2 ; R0 ⃪ (R1 / 4)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

comment accéder à la mémoire (2 instructions)

A

LDR (LoaD Register) lit la mémoire et met la valeur lue dans un registre.
* STR (STore Register) met la valeur d’un registre dans la mémoire.

LDR Rd, [Rb, Offset]
STR Rs, [Rb, Offset]

Rd et Rs décrivent le registre de destination ou de source
* Offset représente un décalage par rapport au registre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Pour calculer l’adresse, on

A

Pour calculer l’adresse, on additionne Rb et Offset

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

On peut modifier le registre Rb avant le calcul
d’accès mémoire (pre-indexing)

A

symbole « ! »
LDR R1, [R0, #4]! ; R0 ⃪ R0 + 4, R1 ⃪ Memoire[R0]
STR R1, [R0, #4]! ; R0 ⃪ R0 + 4, Memoire[R0] ⃪ R1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

On peut modifier le registre Rb après le calcul
d’accès mémoire (post-indexing)

A

en dehors des []
LDR R1, [R0], #4 ; R1 ⃪ Memoire[R0], R0 ⃪ R0 + 4
STR R1, [R0], #4 ; Memoire[R0] ⃪ R1, R0 ⃪ R0 + 4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

différence entre MOV et LDR/STR

A

MOV: déplacements entre des registres seulement
LDR/STR: déplacements entre le CPU et la mémoire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly