【问题标题】:MIPS basic lw queryMIPS 基本 lw 查询
【发布时间】:2013-04-01 23:59:30
【问题描述】:

我正在做一个任务,我试图在 C++ 和 MIPS 之间进行转换,我有一个问题要求我转换 B[8] = A[i-3] i、A 和 B 是分别存储在注册表 $s0、$s4 和 $s5 中。我坚持的部分是如何将 i-3 存储到 A[] 中。有没有可能做这样的事情?:

lw $t0, 32($s5)
addi $t1, $s0, -3
lw $t2, $t1($s4)
sw $t0, 0($t2)

我对 MIPS 还是有点陌生​​,主要是想弄清楚你是否可以以这种方式使用 lw。任何帮助将不胜感激。

【问题讨论】:

    标签: assembly mips


    【解决方案1】:

    您不能使用寄存器作为索引来调用lw。假设寄存器中的值是正确的,则需要分两步执行:

    add $t1, $t1, $s4
    lw $t2, 0($t1)
    

    不要忘记,在访问每个元素为 4 个字节长的单词数组时,需要将索引乘以 4。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2019-08-07
      • 2021-10-31
      相关资源
      最近更新 更多