Accueil Démo Exercices formatifs Travaux pratiques Simulation libre ❯
Sessions sauvegardées
|
Valeur absolue avec fonction et boucleEn utilisant la fonction valeurAbsolue, parcourir tous les éléments de la variable SECTION INTVEC B main SECTION CODE main ; Préparer la pile LDR SP, =pile ADD SP, SP, #16 ; Charger l'adresse de la variable tableau LDR R1, =tableau ; Écrire le code ici debutBoucle ; Charger l'élément de tableau LDR R0, [R1] ; Vérifier si on a terminé (si l'élément est à 0) CMP R0, #0 BEQ finBoucle ; Calculer la valeur absolue de l'élément BL valeurAbsolue ; Stocker le résultat dans le tableau STR R0, [R1] ; Passer à l'élément suivant ADD R1, R1, #4 ; Boucler B debutBoucle finBoucle fin B fin ; fonction qui calcule la valeur absolue valeurAbsolue PUSH {R1} ; Code qui implémente la valeur absolue : CMP R0, #0 BLT negatif ; il est déjà positif, donc il n'y a rien à faire B finValeurAbsolue negatif ; il est négatif, donc multiplier par -1 MOV R1, #-1 MUL R0, R0, R1 finValeurAbsolue ; fin de la fonction POP {R1} BX LR SECTION DATA tableau ASSIGN32 -1, 2, -10, 5, 0 pile ALLOC32 4
|