//====================================================================== // VARIABLES GLOBALES .data tab: .word 1,2,3,4,5 resultat: .word 0 //====================================================================== // PROGRAMME .text .thumb .syntax unified .global main, average, sum_tab main: ldr r0,=tab mov r1,#5 bl average // Appel fonction average ldr r1,=resultat str r0,[r1] // resultat <- acc theend: b theend //----------------------------------------------------------------------- average: mov r7,r1 // sauvegarde r1 bl sum_tab sdiv r0,r0,r7 mov pc,lr //----------------------------------------------------------------------- sum_tab: mov r4,#0 // R3 <- 0 LOOP: ldr r5,[r0] // val <- tab[R2] add r4,r4,r5 // acc <- acc+val add r0,r0,#4 // R0++ subs r1,r1,#1 // compteur -- bne LOOP // PC <- PC - 12 mov r0,r4 mov pc,lr //======================================================================