Assembly 在mips中的if语句中使用函数的返回值

Assembly 在mips中的if语句中使用函数的返回值,assembly,comparison,mips,return-value,Assembly,Comparison,Mips,Return Value,如何在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()之外,我知道如何执行所有操作 多谢各位 编辑: 这是我的

如何在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

您不需要使用堆栈

请注意,要调用函数
sum
,需要寄存器
$a0
$a1
,但所需的值已经在这两个寄存器中。因此,您只需要调用函数,并且参数已经位于正确的位置

使用
jal
调用函数,使用
jr
从函数返回。您可以使用
slti
设置返回值


按照惯例,返回值将为
$v0
。你不需要这个堆栈,所以我需要用beq来比较$v0和一个包含12的临时var@杰斯特:谢谢你的参考链接。为了使用SLTI,我需要一个$s和一个imm(根据参考资料)。如果我将imm设置为12(使用li),我可以用$v0替换$s吗@smac89@user3142443是的,这正是你需要做的