如何在Assembly / LC-3中“返回”一个值?

时间:2012-10-23 00:13:29

标签: assembly return lc3

我们应该根据我们给出的'伪代码'在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; }
     }
}

1 个答案:

答案 0 :(得分:2)

通常,在LC3程序集中,您将使用您选择的寄存器返回一个值。

这意味着您将执行JSR或JSRR来调用子例程/函数,将值存储在结尾的寄存器中,以及RET。由于我们知道这些指令仅使用R7寄存器,因此我们可以使用其他寄存器。