2

嗨必须编写这个循环:

for($6=10;$6!=0;$6--){ 
    $7=$6; 
}

但有一些条件。我只能使用BEQ并且必须假设每个寄存器的初始值是寄存器的编号。

如何仅使用 评估这种差异BEQ

我做了这个

main:
    add   $6,$5,$5
    for:
        add     $7,$6,$0
        sub     $6,$6,$1
        beq     $6,for

但我坚持验证。

4

1 回答 1

2
  1. 将 $6 设置为 10。当您要覆盖 $6 时,为什么要给它一个初始值 6?
  2. 输入您的循环并将 $7 设置为 $6。
  3. 如果 $6 等于 0,则递减 $6 并跳转到下一个标签,否则跳转回循环的开头。

编码:

li $6, 10
for:
    move $7, $6
    subi $6, $6, 1
    beq $6, $0, end
    j for
end:
于 2012-05-14T00:34:15.407 回答