Accueil
Démo
Exercices formatifs
Travaux pratiques
Simulation libre
Sessions sauvegardées

Exemple d'addition

Écrivons un programme qui additionne deux valeurs stockées en mémoire:

  • La première valeur est à une adresse de base.
  • La seconde valeur est à l’adresse mémoire suivante (après la première valeur).
  • Le résultat est écrit dans l’adresse mémoire suivante (après la seconde valeur).

Registre Généraux (User)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 (sp)
R14 (lr)
R15 (pc)

Registre Généraux (FIQ)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8 FIQ
R9 FIQ
R10 FIQ
R11 FIQ
R12 FIQ
R13 FIQ (sp)
R14 FIQ (lr)
R15 (pc)

Registre Généraux (IRQ)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 IRQ (sp)
R14 IRQ (lr)
R15 (pc)

Registre Généraux (SVC)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 SVC (sp)
R14 SVC (lr)
R15 (pc)

État courant

 CPSRSPSR
Negatif (N)
Zero (Z)
Retenue (C)
Dépassement (V)
Ignore IRQ
Ignore FIQ

Configurations

Interruptions

Activer
Type
 cycles
 cycles (premier)
Vitesse d'exécution :  ms

Français

SECTION INTVEC B main SECTION CODE main MOV R0, #0x1000 ; Adresse de la première valeur LDR R1, [R0] ; Lecture de la première valeur dans R1 ADD R0, R0, #4 ; Adresse de la deuxième valeur LDR R2, [R0] ; Lecture de la deuxième valeur dans R2 ADD R1, R1, R2 ; R1 = R1 + R2 ADD R0, R0, #4 ; Adresse du résultat STR R1, [R0] ; Écriture du résultat en mémoire fin B fin SECTION DATA ; Valeurs stockées en mémoire premiereValeur ASSIGN32 0x1 deuxiemeValeur ASSIGN32 0x2 ; Résultat (on ne connait pas sa valeur a priori) resultat ALLOC32 1

Instruction courante

Mémoire

Suivre PC
Cycle courant :