正答1
解説
正解は1です。
スタックポインタ(SP:Stack Pointer)は、スタック領域の最上位(最後にデータを積んだ位置)のアドレスを保持するレジスタです。
サブルーチン呼出しや割込みのときに、戻り先アドレスやレジスタの内容を退避・復元するために使います。
【選択肢別解説】
1:○ サブルーチン呼出し時には、戻り先アドレスやレジスタの内容がスタックに積まれます。
スタックポインタはその格納先メモリのアドレスを示すので、適切な説明です。
2:× 次に読み出す機械語命令のアドレスを保持するのは、プログラムカウンタ(PC:Program Counter)です。
スタックポインタではありません。
3:× メモリから読み出された機械語命令を保持するのは、命令レジスタです。
スタックポインタは命令そのものではなく、アドレスを保持します。
4:× 割込みの許可状態や演算結果の状態(ゼロ、桁上がり、符号など)を保持するのは、フラグレジスタ(ステータスレジスタ)です。
【ポイント】
CPU内の主なレジスタは、役割で区別して覚えます。
プログラムカウンタは次の命令のアドレス、命令レジスタは実行中の命令を保持します。
スタックポインタはスタックの最上位アドレス、フラグレジスタは演算結果の状態を保持します。