コードをスタック ポインターからフレーム ポインターのみを使用するように変換する必要があります。私は MIPS を初めて使用します。
この再帰 C コードとその MIPS コードを以下に示します。スタック ポインターを使用していますが、フレーム ポインターを使用するように変更するにはどうすればよいですか?
ここに私のCコードがあります
int fact(int n)
{
if(n!=1)
return n*factorial(n-1);
}
int comb (int n, int k)
{
return fact (n) / fact (k) / fact (n - k);
}
ここに私のMIPSコード
comb:
sub $sp, $sp, 16
sw $ra , 0($sp)
sw $s0, 4($sp)
sw $a0, 8($sp)
sw $a1, 12($sp)
jal fact
move $s0, $v0
lw $a0, 12($sp)
jal fact
div $s0, $s0, $v0
lw $a0, 8($sp)
lw $a1, 12($sp)
sub $a0, $a0, $a1
jal fact
div $s0, $s0, $v0
move $v0, $s0
lw $ra, 0($sp)
lw $s0, 4($sp)
addi $sp, $sp, 16
jr $ra