プログラムカウンタ(命令アドレスレジスタ: PC)の機能と分岐時の動作

命令アドレスレジスタ(プログラムカウンタ: Program Counter) は、CPUが 次にフェッチ(読出し)して実行すべき命令が格納されている主記憶上のメモリアドレスを保持するレジスタ です。通常は命令を1つ読み出すごとに自動的に命令長分インクリメントされますが、JUMP命令やCALL命令、あるいは条件が成立した 条件分岐命令 が実行されると、分岐先の目的アドレスが命令アドレスレジスタに直接上書き(ロード)され、実行フローがジャンプします。したがって、正解は ア です。 イ: メモリ転送命令では、転送元・先アドレスは汎用レジスタやインデックスレジスタに設定され、命令アドレスレジスタには設定されません。 ウ: サブルーチン呼出し時(CALL命令)に戻りアドレスが退避されるのは「スタック領域(またはリンクレジスタ)」であり、命令バッファではありません。 エ: 命令アドレスレジスタが指す番地には「実行すべき命令そのもの(機械語コード)」が格納されています(間接参照ではありません)。

命令アドレスレジスタ(プログラムカウンタ)に関する記述として,適切なものはどれか。

出典令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問2
ア
条件分岐命令を実行すると,命令アドレスレジスタの内容が書き換えられることがある。
イ
転送命令では,転送元アドレス,転送先アドレス及び転送バイト数を全て命令アドレスレジスタにセットしてから転送を実行する。
ウ
分岐命令の実行前に,命令アドレスレジスタの内容が命令バッファに保存され,実行後に復帰される。
エ
命令アドレスレジスタで示された番地の主記憶には,実行すべき命令のアドレスが格納されている。