Q&A5

2015.11.04 分
コンピュータアーキテクチャI コーナー
お願い:手書きレポートは,誤字脱字が目立ちます.ワープロレポートは変換ミスが目立ちます.
レポートは読み返して,そういう間違いを極力減らしてください.
(もちろん私も努力します.
)
1
質問と回答
1. 質問:演習 6 は講義中の解答を参考にして解きましたが,下記のように$t1,$t2 を使わずに書
いても正しいですか?(講義にて 2 行目が正しいことは分かりますが,3 行目 lw 命令も上書き
できますか?)
sll $t0, $s4, 2
add $t0, $s3, $t0
lw $t0, 0($t0)
add $s1, $s2, $t0
回答:結構です.$t0 は以降で使わないので,lw 命令で$t0 にロードして構いません.
(もし
使うことがあるなら,別のレジスタにロードすることになりますね.
)
2. 質問:教科書 2.6.1 の問題命令 b にて最後に$t1 の値を$s0 に写すときに$s0 に$t1 に 0 を加え
たものを代入する「addi $s0, $t1, 0」としましたが値を写すなど他の方法はありますか?
回答:lw 命令で$s0 にロードすれば上記の命令は不要ですが,それはさておき,レジスタの
内容をコピーする手段は,貴殿の書いた方法で結構です.他の手法としては,add $s0, $t1,
$zero があります.or $s0, $t1, $t1 でもよい.その他,色々考えてみてください.
おまけの問題:$zero レジスタを使わないで,1 命令でレジスタの値を 0 にする方法を考えて
みてください.
1