アドレスレジスタ 【address register】 メモリアドレスレジスタ / MAR / Memory Address Register
概要
アドレスレジスタ(address register)とは、CPU(MPU/マイクロプロセッサ)内部でデータを保持するレジスタの一種で、メインメモリ上の番地(メモリアドレス)を指定するために用意されたもの。CPU内部には制御回路や演算回路から直にデータの読み書きができる高速な記憶回路であるレジスタが数個から数十個用意されており、機能や用途が分かれている。アドレスレジスタはこのうちメモリ上の位置を指定するデータを記録するためのものである。
狭義にはアドレス値自体を保持するレジスタを指し、「メモリアドレスレジスタ」と呼ぶが、CPUが対応しているアドレス指定方式により、「ベースレジスタ」「インデックスレジスタ」「スタックポインタ」「ベースポインタ」「プログラムカウンタ」など複数の異なるレジスタに分かれている場合もある。
CPUは命令を実行する際にアドレスレジスタの値をアドレスバスに発信し、メモリ上の特定の位置からデータの読み込みや書き出しを行う。演算命令などで自由に内容を処理することはできないことが多いが、「次のデータの位置に進む」「一つ前のデータに戻る」といった簡単な加減算などは用意されていることがある。
レジスタの種類としては他に、演算対象の値やメモリ上のデータの複製などを記録しておく「データレジスタ」や、用途が決まっていない「汎用レジスタ」などがある。通常、アドレスレジスタとデータレジスタは互いに代用することはできないが、一部の命令などで汎用レジスタをアドレスレジスタの代わりに使うことは可能な場合がある。
(2022.6.7更新)