.data
.text
.globl main
main:
li a0, 5
jal fact
li a7, 1
ecall
li a7, 10
ecall
fact:
li t0, 2
bge a0, t0, else
li a0, 1
jr ra
else:
addi sp, sp, -8
sw a0, 4(sp)
sw ra, 0(sp)
addi a0, a0, -1
jal fact
lw t0, 4(sp)
mul a0, a0, t0
lw ra, 0(sp)
addi sp, sp, 8
jr ra
Could I have a detailed explanation of what happens in each cycle? Thanks.