Explorons plusieurs façons de modifier la séquence d'exécution d'un programme via des modifications au registre PC.
Questions et réponses:
Qu'est-ce que MOV PC, #0x88 fait? On saute à l'adresse 0x88, soit deux instructions plus loin que l'instruction courante (qui est à l'adresse 0x80).
Qu'est-ce que ADD PC, PC, #-4 fait? Elle soustrait 4 à PC, et place le résultat dans PC. La prochaine instruction à être exécutée est donc l'instruction suivante (l'instruction courante + 8 - 4 = l'instruction suivante).
Qu'est-ce que LDR PC, [R0] fait? La valeur de la mémoire à l'adresse 0x4 (valeur dans R0) est 0x9C, ce qui est deux instructions plus loin. La prochaine instruction à être exécutée est donc deux instructions plus loin.
Qu'est-ce que MOV R0, #0 fait? On saute à l'adresse 0x0, soit à l'instruction B main au tout début du programme. Et on recommence!
Activer
Type
cycles
cycles (premier)
Vitesse d'exécution : ms
Français
SECTION INTVEC
B main
adresse ASSIGN32 0x9C
SECTION CODE
main
; Qu'est-ce que cette instruction fait?
MOV PC, #0x88
MOV R0, #0
; Qu'est-ce que cette instruction fait?
ADD PC, PC, #-4
MOV R0, #0
; Qu'est-ce que ces deux instructions font?
LDR R0, =adresse
LDR PC, [R0]
MOV R0, #0
; Qu'est-ce que ces deux instructions font?
MOV R0, #0
BX R0
SECTION DATA