.text
.arm
.global _start
_start:
        b reset
        b loop
        b loop
        b loop
        b loop
        nop
        b loop
        b loop

/* ==============================
*  TEST CODE
*  ==============================
*/
reset:  ldr sp,=STACK 
        ldr r1,=VECTOR
        mov r2,#16
        mov r3,#0
        mov r4,#0
        mov r5,#0
        mov r6,#0

otro:   ldr r0,[r1],#4          @ suma todo los elementos en r3
        add r3,r0
        subs r2,#1
        bne otro     
 
        mov r3,r3, asr #4        @ calcula promedio
        
        ldr r1,=VECTOR
        mov r2,#16
        mov r7,r1

otro2:  ldr r0,[r1]

        sub r5,r0,r3            @ calcula r5 = abs(r0-r3)
        cmp r5,#0
        rsbmi r5,#0

        cmp r7,r1               @ carga como menor al primer valor del vector
        beq primero

        cmp r4,r5               @ actualiza al menor 
        ble nomenor
primero:mov r4,r5
        mov r6,r0
        
nomenor:
        add r1,#4
        subs r2,#1
        bne otro2
            
loop:   b loop


VECTOR: .word 1000,-1000,234,-234,100,-90,-10,200,-100,-100,20,80,100,200,-400,160
.balign 4
      .space(200)
STACK:

        .end

