平成23年特別試験午後問題  問12

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ゆりさん  
(No.1)
プログラム1の7行目、GR7にGR5(結果の領域アドレス)+0を格納している場所は何を格納しているんでしょうか?
1回目は結果領域には何も入っていないので0000だと思ったのですが、その後GR7に格納されていないため2回目以降も0000で変わらず、それだと8行目で右シフトする意味がよく分かりません。
2022.05.04 21:59
chihiroさん 
FE プラチナマイスター
(No.2)
>1回目は結果領域には何も入っていないので0000だと思ったのですが、その後GR7に格納されていないため2回目以降も0000で変わらず、それだと8行目で右シフトする意味がよく分かりません。
初回は確かにそうですが、例えばGR6に格納された内容の15ビット目が1だった場合、
・9行目の左シフトでOFが1になる
・10行目でONに飛ばされる(OFが1だから)
・12行目でGR7と#8000との論理和をとる
・13行目でGR7の内容を(GR5+0)番地に格納
となるので、16行目でLOOP2に戻って再び8行目を実行するときにはGR7は8000になっています。プログラム1の16行目までの処理は、GR1+(0,1,2,…,15)番地の内容のnビット目を、GR2+(15-n)番地の0,1,2,…,15ビット目に写す処理になっています。図1をもとにトレースすると処理の流れがわかると思います。
2022.05.05 00:32
ゆりさん  
(No.3)
返信遅くなりましてすみません!
回答ありがとうございます、わかりやすかったです。再度トレースしてみます…!!
2022.05.08 11:37

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop