0

私は 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を使用できるかどうかを理解しようとしています. どんな助けでも大歓迎です。

4

1 に答える 1

2

lwレジスタをインデックスとして呼び出すことはできません。レジスタの値が正しいと仮定すると、次の 2 つの手順で実行する必要があります。

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

各要素の長さが 4 バイトのワード配列にアクセスする場合は、インデックスに 4 を掛ける必要があることを忘れないでください。

于 2013-04-02T00:08:12.777 に答える