.globl fac1 ##################################################################### # Returns factorial of parameter. # # Pre: # $a0 stores N # Post: # $v0 stores N! # # Modifies: $t0, $t1, $v0, $a0 # fac1: li $t0, 1 # check for base case bgt $a0, $t0, recurse li $v0, 1 # if so, set $v0 jr $ra # and return recurse: move $t1, $a0 # save N addi $a0, $a0, -1 # calc N-1 for recursive call jal fac1 # calc (N-1)! mul $v0, $v0, $t1 # multiply that by N jr $ra # and return