MIPS递迴小程式 求大神帮忙
C code:
int fact (int n)
{
if (n < 1) return f;
else return n * fact(n - 1);
}
1.请将上述程式改成一个完整的组语程式,假设int fact (int n)的n设为5,整数输入值存取于暂存器$a0,答案存取于暂存器$a1,将改完的程式放在QtSpim上执行。(此题须附上程式的组合语言、QtSpim执行结果的截图)(20%)
2.假设输入值为5时,表示出每次函数呼叫后堆叠的内容(10%)
3.堆叠的读取方式为何?(10%)
4.假设输入值为7,并且请将此题的程式改成非递迴的运算形式(使用组合语言),然后在QtSpim上执行。(此题须附上程式的组合语言、QtSpim执行结果的截图、解说组合语言程式如何运作与演算法)(20%)
5.请用MIPS组合语言写出费波那西数列(Fibonacci),整数输入值存取于暂存器$a0,整数输入为10(即第10项),结果存取于暂存器$s2,将改完的程式放在QtSpim上执行。(此题须附上程式的组合语言、QtSpim执行结果的截图、解说组合语言程式如何运作与演算法)(可使用递迴或其他方法)(40%)
组合语言程式附档名为 “.s”
程式终止方法可参考syscall