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

/* ==============================
*  TEST CODE
*  realizar el factorial de numero, mediante una funcion recursiva 
*  ==============================
*/
reset:
        mov r0,#10
        bl factorial

loop:   b loop
        
        .ltorg

/* ----------------------------------------------------------------------------*/
/* funcion factorial */
/* ----------------------------------------------------------------------------*/
factorial:
        push {r1,r2,lr}
        
        cmp r0,#1 
        beq salir
        mov r1,r0
        sub r0,r0,#1
        bl factorial
        mul r2,r0,r1
        mov r0,r2
salir:  
        pop {r1,r2,lr}
        mov pc,lr
/* fin función */

/* ==============================
*  CONTANTES
*  ==============================
*/
        .space 200
STACK:
        .balign 4
        .end

