Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fac:
- # save registers
- addi $sp, $sp, -8
- sw $s0, 0($sp)
- sw $ra, 4($sp)
- # save n
- add $s0, $0, $a0
- # if n == 1, return 1
- bne $a0, 1, notOne
- addi $v0, $v0, 1
- j end
- # not 1, return n*fac(n-1)
- notOne:
- # get fac(n-1)
- addi $a0, $a0, -1
- jal fac
- # multiply
- mult $s0, $v0
- # get result (ignore high bits)
- mflo $v0
- end:
- # load registers again
- lw $s0, 0($sp)
- lw $ra, 4($sp)
- addi $sp, $sp, 8
- jr $ra
Add Comment
Please, Sign In to add comment