あと数日で試験がありますので、私の回答をチェックしていただければ幸いです。小さな Java コードを MIPS 命令に変換する必要がありますが、メモがありません。この種のことを行うのはこれが初めてです。
質問は次のとおりです。
While (save[i] != k) {
save[i] = v[i];
i=i+2;
}
a) 上記のコードは、配列 v の各 2 番目の要素を配列 save に割り当てる高レベルの Java プログラムです。アセンブラが配列 save と v のベースアドレスをそれぞれレジスタ $s2 と $s3 に格納すると仮定すると、上記の Java プログラムをアセンブリ言語コードに変換するよう求められます。注: 明示的に指定されていない変数には、別のレジスタを自由に使用できます。
そして、ここに試みがあります:
i = $t1
k = $t2
loop:
sll $t3, $t1, 2 //get the offset (i*4)
add $t4, $t3, $s2 //t4 is the address for save[i]
beq $t4, $t2, exit //check the while condition
add $t5, $t3, $s3 //t5 is the address for v[i]
sw $t4, $t5 //save[i] = v[i]
addi $t1, 2 //inc i
j loop
exit:
どんな助けでも大歓迎です。
編集:「bne」を「beq」に変更