めざせ4004! IC24個で電卓用CPUを作ってみた: Chapter 2-2 間接参照とは?
先ほどの落第プログラムは、普通なら以下のように配列の添字を変数にして、ループと間接参照を使って配列にアクセスするのが普通です。
あるいはポインタを使って間接参照を行ってもよいでしょう。
いずれにせよ表3のCPUには間接参照に相当する機能がありませんので、このようなプログラムを実行することは出来ません。それでは話になりませんので、RAMの容量を拡大するなら間接参照のための機能も同時に実装する必要があります。
一般的なCPUでは間接参照を実現するためにインデクスレジスタを搭載しています。インデックスレジスタに格納されている数値がRAMのアドレスを示したり、目的のアドレスまでのオフセットを示したりします。 例えばZilog社のZ80はIXレジスタとIYレジスタの2つのインデックスレジスタがあります。さらにHレジスタとLレジスタを結合させて3個目のインデックスレジスタとして使うこともできます。
MotorolaのMC6809やMOS Technologyの6502にもインデックスレジスタがあり、多少の機能の違いはあるもののRAMのアドレスを指し示すことができます。これらと同様なインデックスレジスタをEX4-2024にも搭載します。