エンベデッドシステムスペシャリスト試験 令和3年度 秋期 午前II 問2
命令アドレスレジスタ(プログラムカウンタ)に関する記述として、適切なものはどれか。
選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
命令アドレスレジスタ、すなわちプログラムカウンタは、次に取り出して実行する命令のアドレスを保持するレジスタです。通常は命令を取り出すたびに、次の命令を指すように値が増加します。一方、条件分岐命令では、条件が成立して分岐すると、次に実行すべき命令が順番どおりの番地ではなく分岐先になります。このとき、プログラムカウンタには分岐先アドレスが設定されるので、アが適切です。条件が成立しなければ、そのまま後続命令を指します。
イの説明は誤りです。データ転送に必要な転送元、転送先、転送量は、汎用レジスタ、専用レジスタ、命令のオペランド、DMAコントローラのレジスタなどに設定します。プログラムカウンタは命令位置を示すものであり、これら全てを格納するものではありません。
ウの説明は誤りです。分岐命令のたびにプログラムカウンタを命令バッファへ保存し、実行後に復帰するわけではありません。サブルーチン呼出しでは戻りアドレスをスタックやリンクレジスタへ保存することがありますが、通常の分岐とは別の仕組みです。
エの説明は誤りです。プログラムカウンタが示す主記憶の番地には、原則として実行対象となる命令そのものが格納されています。そこに実行すべき命令のアドレスが格納されている、という説明では一段階余計です。
【ポイント】 プログラムカウンタは「次に実行する命令が置かれた番地」を保持します。 逐次実行では値が順次進み、分岐、呼出し、割込みなどでは別のアドレスへ変更されます。 戻りアドレスの保存先とプログラムカウンタを混同しないことが重要です。
出典:令和3年度 秋期 エンベデッドシステムスペシャリスト試験 午前II 問2
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる