【问题标题】:How would one 'return' a value in Assembly/LC-3?如何在 Assembly/LC-3 中“返回”一个值?
【发布时间】:2012-10-23 00:13:28
【问题描述】:

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

【问题讨论】:

  • 这很接近家庭作业问题,找到你的实际问题并提出这个问题,而不是“帮我解决这个问题......”。
  • 我建议您在这里简单地问一个看似真正的问题:“如何在 Assembly/LC-3 中‘返回’一个值?”我们不需要/不想知道你在做什么样的作业。
  • 首先,这只是作业的一部分,其次,我把它放在那里只是为了表明我在询问“返回”值时的意思。

标签: assembly return lc3


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-10-08
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多