Accueil Démo Exercices formatifs Travaux pratiques Simulation libre ❯
Sessions sauvegardées
|
MaximumDévelopper un fonction SECTION INTVEC B main ; Vous pouvez ajouter des variables pour modifier la taille du tableau et tester votre fonction tableau ASSIGN32 0xF3146A2A, 0xF65E02A3, 0x502B0A2C, 0xD53B0894, 0x0937AABA, 0xFAD3F6FB SECTION CODE ; paramètre de la fonction max ; Entrée ; R0 : adresse du tableau ; R1 : nombre d'élement ; Sortie ; R0 : maximum du tableau max LDR SP, =maPile ADD SP, SP, #0x28 ; On va au sommet de la pile PUSH {R1, R2, R3, LR} ; R3 va contenir notre maximum ; On l'initialise à la plus petite valeur entière permise (en complément-2). MOV R3, #0x80000000 boucle CMP R1, #0x00 BEQ finfonction LDR R2, [R0], #4 SUB R1, R1, #1 ; On décrémente le nombre d'élément CMP R2, R3 MOVGT R3, R2 ; On a un nouveau maximum B boucle finfonction MOV R0, R3 ; On met le maximum dans R0 POP {R1, R2, R3, LR} BX LR main LDR R0, =tableau ; Adresse de début du tableau MOV R1, #0x06 ; Nombre d'élément du tableau BL max LDR R2, =ecran STR R0, [R2] ; Écriture du max absolue à l'écran fin B fin SECTION DATA maPile ALLOC32 10; ecran ALLOC32 1;
|