Accueil Démo Exercices formatifs Travaux pratiques Simulation libre ❯
Sessions sauvegardées
|
PuissanceDéveloppez la fonction ; Merci à Kevin Jobin pour sa solution! SECTION INTVEC B main SECTION CODE main LDR SP, =maPile ADD SP, SP, #40 ; valeurs de test: essayons de calculer 2^3 MOV R0, #2 MOV R1, #3 ; appel de la fonction puissance BL Puissance ; test qui verifie si le résultat est bien 8 (2**3) ASSERT R0=8 B fin Puissance ; paramètres: R0 = base, R1 = exposant ; retourne: R0 <= R0 ** R1 ; sauvegarde des valeurs des registres PUSH {R1, R2} ; cas spécial où l'exposant = 0, peu importe la base, le résultat est 1 CMP R1, #0 MOVEQ R0, #1 BEQ finFonction ; on sauvegarde notre base dans R2 MOV R2, R0 boucle ; on décrémente R1 et on vérifie si on a terminé SUBS R1, R1, #1 BEQ finFonction MUL R0, R0, R2 B boucle finFonction POP {R1, R2} BX LR fin B fin SECTION DATA maPile ALLOC32 10
|