7

私はコンピューター アーキテクチャの大学のコースを取っているので、アセンブリ言語は初めてです。私の質問は、擬似命令を使用せずに次のコードを C から MIPS アセンブリ言語に変換するにはどうすればよいですか?

B [8] = A [i-j]

i と j はレジスタ $s3 と $s4 に割り当てられ、A と B のベース アドレスはレジスタ $s6 と $s7 にあります。これまでのところ、私は持っています:

sub $t0, $s3, $s4
sll $t0, $t0, 2
lw $t1, $t0($s6)   #Is this line allright?
add $s5, $t1, $zero
sw $s5, 32($s7)

3 行目のアドレス メモリへのオフセットとしてレジスタ $t0 を使用するかどうかはわかりません。前もって感謝します。

4

1 に答える 1

12

いいえ。代わりに、$t0 を $s6 に追加して、必要なアドレスを計算します。

sub $t0, $s3, $s4
sll $t0, $t0, 2
add $t0, $t0, $s6
lw  $t1, 0($t0)
sw  $t1, 32($s7)
于 2013-10-12T00:32:48.917 に答える