如何在mips的另一个函数中使用函数的返回值?我知道我必须使用堆栈,但我不确定如何。
例如,如果我有以下代码:
int is_more_than_a_dozen(int a, int b) {
if (sum(a, b) > 12)
return 1;
else
return 0;
}
int sum(int a, int b) {
return a + b;
}
除了在if语句中调用函数sum()之外,我知道如何做所有事情。
谢谢
编辑:
这是我的总和功能:
sum:
add $v0, $a0, $a1
jr $ra
答案 0 :(得分:2)
您不需要使用堆栈。
请注意,要调用函数sum
,您需要寄存器$a0
和$a1
,但您需要的值已经存在于这两个寄存器中。所以你只需要调用函数,参数已经在正确的位置。
使用jal
调用函数,jr
从函数返回。您可以使用slti
设置返回值。
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html