0

我们应该根据给定的“伪代码”在 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; }
     }
}
4

1 回答 1

2

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

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

于 2012-10-23T17:37:35.697 回答