0

A,B,C 是长度为 6 的数组,基地址在寄存器中找到,如下所示:

A=[0 1 2 3 4  5], Base = $t0
B=[1 3 5 7 9 11]  Base = $t1
C=[0 5 2 6 3  8]  Base = $t2

现在对于代码本身:

add $t4, $zero, $zero
Loop: add $t5, $t4, $t1
      lw $t6, 0($t5)
      add $t5, $t4, $t2
      lw $t7, 0($t5)
      or $t6, $t6, $t7
      add $t5, $t4, $t0
      sw $t6, 0($t5)
      addi $t4, $t4, 4
      slti $t5, $t4, 20
      bne $t5, $zero, Loop

我的问题是:

1.) 当添加 $t4 和 $t1 时,我们是否在每个 B[i] 中添加零?

2.) 在 mips 中添加数组时,假设add $t6, $t0,$t1我们在做什么:

  • A[i]+B[i] 用于所有索引,然后 $t6 是一个新数组?
  • 或者我们只是在做 A[0]+B[0]?

3.) 你究竟如何在数组上使用 OR?

4

1 回答 1

1
  1. 不,因为t4不会保持为零。这也是指针算术,不处理值。
  2. 您通常不会这样做,添加地址通常没有意义。代码中没有这样的东西。
  3. 我不明白那个问题。您将其应用于循环中的项目。这意味着什么,取决于数组包含的内容。
于 2017-07-15T18:59:20.153 回答