Write and assembly language code to calculate a factorial of n number using a recursion.
.global main
main:
mov r0,#5 // 5 is the number that I want to calculate the factorial
mov r1,r0
factorial:
cmp r1,#1
beq end
sub r1,r1,#1 // n-1
push {ip,lr} // save the lr
bl factorial
mul r0,r1,r0 // multiply r0 * n-1
pop {ip,lr}
end:
bx lr