Assembly 在mips中的if语句中使用函数的返回值
如何在mips中的另一个函数中使用函数的返回值?我知道我必须使用堆栈,但我不知道如何使用 例如,如果我有以下代码: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()之外,我知道如何执行所有操作 多谢各位 编辑: 这是我的
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是的,这正是你需要做的