【问题标题】:What is the value x12 at the end of the execution of this instruction in RISC-V? (WITHOUT RARS)在 RISC-V 中这条指令执行结束时 x12 的值是多少? (没有 RARS)
【发布时间】:2021-09-24 13:52:31
【问题描述】:

我需要知道 x12 的值是多少,知道 x13=10(不使用 rars) 这些是代码行

loop:
blt x13,x0,EXIT
addi x13,x13, -1
addi x12,x12,2
jal x0, loop
exit:

【问题讨论】:

  • 不要只要求我们解决您的家庭作业或测验问题。您可以阅读手册中的每条说明。如果您对某事感到困惑,请改为询问。使用 RARS 有什么问题?可以上网问,不能用RARS?
  • 嗨 Erik,使用 rars 并没有什么问题,但我确实有一位老师没有给我们任何阅读 RISC-V 手册的基础,而且好像这还不够他没有我们使用 rars。我只是想了解我必须如何进行练习。就是这样。
  • 手册在线,有问题可以看下。 RARS 是免费的,你可以用它来补充你的理解。 不展示你的尝试来寻求家庭作业或测验问题的解决方案是这里的主题。
  • 好吧,对不起,我的错。

标签: c++ architecture riscv instruction-set risc


【解决方案1】:

这是带有 x13 计数器的循环。因此,您进行 11 次迭代,每次迭代将 x12 增加 2。

如果 x12 初始化为 0,则循环后它将等于 22。

下面是您的代码的 C 等效代码。

while(1) {
    if (x13 < 0)
        break;
    x13 -= 1;
    x12 += 2;
}

for (int x13 = 10; x13 >= 0; x13--)
    x12 += 2;

【讨论】:

  • 只是为了确定,为什么要迭代 11 次?
  • x13 blt x0 时退出循环,即 x13
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2014-12-10
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多