令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
テクノロジ/コンピュータ構成要素命令アドレスレジスタ(プログラムカウンタ)に関する記述として,適切なものはどれか。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
- ア条件分岐命令を実行すると,命令アドレスレジスタの内容が書き換えられることがある。
- イ転送命令では,転送元アドレス,転送先アドレス及び転送バイト数を全て命令アドレスレジスタにセットしてから転送を実行する。
- ウ分岐命令の実行前に,命令アドレスレジスタの内容が命令バッファに保存され,実行後に復帰される。
- エ命令アドレスレジスタで示された番地の主記憶には,実行すべき命令のアドレスが格納されている。
正解:ア
解説
命令アドレスレジスタ(プログラムカウンタ,PC)は,次に実行すべき命令が格納されている主記憶上の番地を保持するレジスタです。通常は命令を 1 個実行するたびに自動的に加算されますが,条件分岐命令が実行され,かつ分岐条件が成立した場合には,分岐先の命令番地が新たにセットされるため,命令アドレスレジスタの内容が書き換えられます。
選択肢ごとの解説
- ア正しい。条件分岐命令の実行によって分岐が成立すると,命令アドレスレジスタの内容は分岐先の番地に書き換えられます。
- イ誤り。転送元アドレス,転送先アドレス,転送バイト数は,DMA コントローラーなど転送を制御する専用のレジスタにセットされるものであり,命令アドレスレジスタにセットされるものではありません。
- ウ誤り。分岐命令の実行前後で命令アドレスレジスタの内容を命令バッファに退避・復帰するのは,サブルーチンコールや割込み処理の際にスタックへ戻り番地を退避する動作に近く,単純な分岐命令の説明としては適切ではありません。
- エ誤り。命令アドレスレジスタ自体に,実行すべき命令が格納されている主記憶の番地が入っているのであり,「その番地の主記憶に命令のアドレスが格納されている」という二重の間接参照の説明は誤りです。