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

Tableaux avec boucle

Revenons à la démonstration sur les tableaux du cours 11, mais cette fois accédons aux éléments d'un tableau grâce à une boucle. Rappel: il s'agit d'écrire un programme qui copie le contenu d'un tableau source vers un tableau destination. Nous pouvons assumer que nous connaissons à l'avance le nombre d'éléments à copier.

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 source ASSIGN32 0x48, 0x65, 0x6C SECTION CODE main ; Chargeons l'adresse de source LDR R0, =source ; Chargeons l'adresse de destination LDR R1, =destination ; Copions les éléments uns à uns ; Tout d'abord, nous devrons stocker le nombre d'éléments à copier. ; Nous utiliserons le registre R3. ; Contrairement à l'exemple dans les notes, nous allons décrémenter le ; compteur plutôt que de l'incrémenter. Cela nous permettra d'utiliser SUBS ; pour effectuer la comparaison et mettre à jour le compteur simultanément. MOV R3, #3 boucle ; Vérifions tout d'abord si nous avons terminé ; (au cas où 0 éléments devraient être copiés) SUBS R3, R3, #1 BLT finBoucle ; Effectuons la copie de la source vers la destination LDR R2, [R0], #4 STR R2, [R1], #4 ; Recommencer B boucle finBoucle fin B fin SECTION DATA destination ALLOC32 3

Instruction courante

Mémoire

Suivre PC
Cycle courant :