Loading section01/Lec15/fact_inclass.s 0 → 100644 +27 −0 Original line number Diff line number Diff line .text li $a0, 10 jal fact move $s0, $v0 li $v0, 10 syscall fact: addi $sp, $sp, -12 #Allocate space for return, arg, result sw $ra, 0($sp) sw $a0, 4($sp) li $t0, 1 bge $a0, $t0, ELSE #If arg >= 1 sw $t0, 8($sp) j END ELSE: addi $a0, $a0, -1 #n-1 jal fact lw $a0, 4($sp) #Load arg mul $t0, $a0, $v0 # t0 = arg * returnValue sw $t0, 8($sp) # result = t0 END: lw $v0, 8($sp) #Set return register = return lw $ra, 0($sp) #Load return address addi $sp, $sp, 12 #Deallocate stack jr $ra No newline at end of file Loading
section01/Lec15/fact_inclass.s 0 → 100644 +27 −0 Original line number Diff line number Diff line .text li $a0, 10 jal fact move $s0, $v0 li $v0, 10 syscall fact: addi $sp, $sp, -12 #Allocate space for return, arg, result sw $ra, 0($sp) sw $a0, 4($sp) li $t0, 1 bge $a0, $t0, ELSE #If arg >= 1 sw $t0, 8($sp) j END ELSE: addi $a0, $a0, -1 #n-1 jal fact lw $a0, 4($sp) #Load arg mul $t0, $a0, $v0 # t0 = arg * returnValue sw $t0, 8($sp) # result = t0 END: lw $v0, 8($sp) #Set return register = return lw $ra, 0($sp) #Load return address addi $sp, $sp, 12 #Deallocate stack jr $ra No newline at end of file