令和3年度 秋期 午前Ⅱ 問2
プロセッサ
命令アドレスレジスタの問題
命令アドレスレジスタ(プログラムカウンタ)に関する記述として,適切なものはどれか。
- ア条件分岐命令を実行すると,命令アドレスレジスタの内容が書き換えられることがある。
- イ転送命令では,転送元アドレス,転送先アドレス及び転送バイト数を全て命令アドレスレジスタにセットしてから転送を実行する。
- ウ分岐命令の実行前に,命令アドレスレジスタの内容が命令バッファに保存され,実行後に復帰される。
- エ命令アドレスレジスタで示された番地の主記憶には,実行すべき命令のアドレスが格納されている。
答えと解説を見る
✓ これが正解ア条件分岐命令を実行すると,命令アドレスレジスタの内容が書き換えられることがある。
解説
分岐が成立すると、命令アドレスレジスタは分岐先へ書き換わります。
命令アドレスレジスタ(プログラムカウンタ)は、次に実行する命令が置かれている主記憶のアドレスを保持するレジスタです。命令を一つ取り出すたびに次の命令の位置へ進むので、通常は書かれた順に命令が実行されます。条件分岐命令を実行して分岐の条件が成り立つと、次に実行する命令の位置が分岐先に変わるため、このレジスタの内容が分岐先のアドレスに書き換えられます。条件が成り立たなければ順番どおりに進むので、書き換えられることがある、という表現がちょうど当てはまります。このレジスタが指しているのは命令そのものの位置だ、と押さえると他の記述の誤りが見えてきます。
ほかの選択肢はなぜ違うのか
- イ転送命令では,転送元アドレス,転送先アド…:転送元や転送先のアドレス、転送バイト数は、転送命令が扱うデータの指定であって、次に実行する命令の位置ではありません。それらをまとめて命令アドレスレジスタに入れるという記述は、役割の違うレジスタと取り違えています。
- ウ分岐命令の実行前に,命令アドレスレジスタ…:分岐の前に内容を保存して実行後に戻してしまうと、分岐先へ移った意味がなくなります。分岐命令は、このレジスタの内容を分岐先に変えることで実行の流れを変えるものであり、元に戻す動作は含まれません。
- エ命令アドレスレジスタで示された番地の主記…:このレジスタが指す番地には、次に実行すべき命令そのものが格納されています。そこにさらに命令のアドレスが入っているとすると、もう一段たどる間接的な参照になり、このレジスタの説明とは合いません。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)