ベースレジスタ
ベースレジスタ(英:base register)とは、レジスタの一種でプログラムをメモリ上にロードした時の先頭のアドレスを記憶しておくためのものです。
レジスタとは
レジスタ(英:register)とは、CPU内部にある記憶装置のことです。
CPUは次のような手順で命令を順番に処理します。命令を取り出して解読、解読した結果から対象データを読み出して命令を実行するという流れです。
このとき「取り出した命令の情報」や「次はどの命令を取り出せばよいかの情報」を覚えておく必要があります。この役割を果たすのがCPU内部にあるレジスタです。
スポンサーリンク
ベースレジスタとは
ベースレジスタとは、プログラムをメモリ上にロードした時の先頭のアドレスを記憶しておくためのレジスタです。
ベースレジスタを使うことで、プログラムがメモリ上のどの位置にロードされても、命令を変えることなく実行できるというメリットがあります。
例えば、次の図のようにプログラムをメモリ上にロードしたとき「1001」~「2000」のアドレスを使用したとします。このときベースレジスタには、先頭のアドレスである「1001」を記憶します。
再び同じプログラムをメモリ上にロードした時、今度は「801」~「1800」のアドレスを使用したとします。このときベースレジスタには、先頭のアドレスである「801」を記憶します。
ベースレジスタは、ベースアドレス指定方式(基底アドレス指定方式)と呼ばれる方式で使用します。ベースアドレス指定方式は、命令のオペランド部にベースレジスタの値を加算することで、対象データの位置を求める手法です。
命令のオペランド部に「1」が入っている場合は、前者は「1」+「1001」(ベースレジスタの値)=「1002」、後者は「1」+「801」(ベースレジスタの値)=「802」と、どちらもプログラムがロードされた位置から2番目の値を参照しているのがわかります。