0x30200000
AREA ave,CODE,READWRITE
code32
entry
start
ldr r0,= array ;r0 point to the 100 num
mov r1, #1
mov r2, #0
ldr sp,= stack_top
arrayinit
add r2, r1, #0
str r2, [r0], #4
add r1, r1, #1
cmp r1, #101
bne arrayinit
averageinit
ldr r0,= array
mov r1, #1
mov r2, #0 ;r2 point to the dividend beicu
mov r3, #0 ;r3 point to the ramainder yu
mov r4, #0 ;r4 point to the quotient shan
getsum
ldr r3, [r0], #4
add r2, r2, r3
add r1, r1, #1
cmp r1, #101
bne getsum
average
mov r1, #1
mov r3, #0
aveloop
movs r2, r2, lsl#1
addcs r3, r3, #1
subs r5, r3, #100
biccc r4, r4, #1
orrcs r4, r4, #1
movcs r3, r5
add r1, r1, #1
cmp r1, #33
movne r4, r4, lsl#1
movne r3, r3, lsl#1
bne aveloop
stop
b stop
ltorg
array space 100