MIPS组装的双因子

时间:2014-02-04 15:28:52

标签: mips

我需要为:

编写MIPS递归函数
int factorial(int n){
if(n<=1) return 1;
else return n*(n-2)!!
}

n存储在参数寄存器$ a0

这可能是这样做的吗?

factorial: subi $sp, $sp, 8
sw $ra, 4($sp)
sw $a0, 0($sp)
slt $t0, $a0, 1
BEQ $t0, $zero, L1 ; n>1 goto L1
addi $v0, $zero, 1
add $sp, $sp, 8
JR $ra
L1: subi $a0, $a0, 2
jal factorial
lw $a0, 0($sp)
lw $ra, 4($sp)
addi $sp, $sp, 8
mult $v0,$a0,$v0
JR $ra

0 个答案:

没有答案