前回のアドレスを指定する方法の残り3つを説明します。
まずは、インデックス(指標)アドレス指定。
オペランド部(アドレス部)にインデックスレジスタの番地が書いてあり、
その番地の値とアドレス部の値を足して実効アドレスとします。
この指定だと配列等の連続したデータを繰り返し実行する場合に効果が
あります。その場合はインデックスレジスタの値を増減させて処理します。
次のベース(基底)アドレス指定。
これは主記憶装置(メモリ)にロードされた先頭アドレスをベースレジスタ
が記録していますので、その値とアドレス部の値を足して実効アドレスと
します。
この指定は主記憶装置(メモリ)のどこにでもロードして実行できるように
するのでマルチプログラミングの際には必要となります。
最後に相対アドレス指定(自己相対アドレス指定)。
良く見ると、ベース(基底)アドレス指定と同じ機能であり、違いはプログ
ラムカウンタの値を足すか、ベースレジスタの値を足すかだけです。
じゃあ、片方要らないんじゃないかと思いますが、実はベースレジスタが
ないコンピュータがありますので、その場合はプログラムカウンタが重宝
されるのです。
鳥としての本能に目覚めたプログラムカウンタに狙われる命令レジスタは
この後で何とか助けられました。