• 締切済み

命令

lw r1,0(r4) 上記のような命令を実行したとします。レジスタ群r4には32ビット00000000000000000000000000100100が入っています。これは10進数にすると36なので0(r4)=0+36=36になります。 そしてメインメモリのアドレス36番地には10000001111111111111111111111111が入っていてこれをレジスタ群r1に移動します。 けれどもレジスタ群r1には00000000000000000000000000011000が最初から入っています。 ここで質問なんですがこの場合アドレス36番地の値と最初から入っていたレジスタ群r1の値は足さなければならないのですか? それともアドレス36番地の値をそのままレジスタ群r1につっこんでもいいのでしょうか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

lw だから上書き

ogihs
質問者

お礼

つまりr1に0(r4)をそのままいれればいいんですね。分かりました、どうもありがとうございました

  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

ごめん、何を聞きたいのかよく分からない。 足さなければならないも何も、 ロード命令で加算はできないでしょう? 加算したいならadd系の命令を使うのでは。

ogihs
質問者

補足

すいません、確かに分かりにくすぎる質問かと思います。自分も質問の仕方に困りました。 僕が知りたいのは、lw r1,0(r4)の命令を実行したときに0(r4)の値0000・・・00100100をr1に移動するにあたって、r1には最初から0000・・・00011000の32ビットのデータが入ってるんですけどそれに関係なく0(r4)の値をそのままr1入れれるか、ということです。 まだ質問が分かりにくいですかね・・?