在 mips 中的 if 语句中使用函数的 return 值
Use the return value of a function inside a if statement in mips
如何在 mips 中的另一个函数中使用一个函数的 return 值?我知道我必须使用堆栈,但我不确定如何使用。
例如,如果我有以下代码:
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
您不需要使用堆栈。
注意调用函数sum
,你需要寄存器$a0
和$a1
,但是你需要的值已经在这两个寄存器中了。所以你只需要调用函数,参数已经在正确的地方。
您使用 jal
调用函数,并使用 jr
到 return 从函数调用。您可以使用 slti
设置 return 值。
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html
如何在 mips 中的另一个函数中使用一个函数的 return 值?我知道我必须使用堆栈,但我不确定如何使用。
例如,如果我有以下代码:
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
您不需要使用堆栈。
注意调用函数sum
,你需要寄存器$a0
和$a1
,但是你需要的值已经在这两个寄存器中了。所以你只需要调用函数,参数已经在正确的地方。
您使用 jal
调用函数,并使用 jr
到 return 从函数调用。您可以使用 slti
设置 return 值。
http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html