了解MIPS汇编代码

时间:2017-07-15 18:55:03

标签: assembly mips smips

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?

1 个答案:

答案 0 :(得分:1)

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