0

因此,我对即将进行的 mips 测试有一个示例问题,需要澄清一下。

  1. 假设字数组A按此顺序存储0,1,2,3,4,5,6,7,8,9。假设 A 的起始地址当前在 $s0 中。在以下说明之后,$t1 中的值是多少?

原 $t0, $0, 6

p7L0: lw $t1, 0($s0)
sll $t1, $t1, 2
blt $t0, $t1, p7L1
addi $s0, $s0, 4 
j p7L0    

p7L1:

(a) 2 (b) 3
(c) 6 (d) 以上都不是。

在这个例子中,答案是 8。但我有点困惑它是如何得到的。在我的运行过程中,在命令 ori 中我得到 6。它进入 sll,结果为 0。由于 0 小于 6,它分支到 p7L1:

澄清?

4

1 回答 1

1

sll指令将 t1 乘以 4,因此每次循环的值将是 0、4、8,然后将进行分支,因为 6 < 8。因此答案是 8。

于 2013-10-16T20:50:00.627 回答