RISC-V中这条指令执行结束时x12的值是多少? 没有 RARS

问题描述

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

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

解决方法

这是计数器 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;