我们应该根据我们给出的'伪代码'在LC3程序集中创建程序。
我如何'返回'汇编中的值?
感谢任何和所有帮助。
伪码:
int brandonacci(int n) {
if (n <= -16) {
return -n/3 + 8;
}
else {
int c1 = brandonacci(n - 2);
int c2 = brandonacci(n - 7);
return c1 / 2 - 2 * c2 - 3; }
}
}
答案 0 :(得分:2)
通常,在LC3程序集中,您将使用您选择的寄存器返回一个值。
这意味着您将执行JSR或JSRR来调用子例程/函数,将值存储在结尾的寄存器中,以及RET。由于我们知道这些指令仅使用R7寄存器,因此我们可以使用其他寄存器。