アドレッシングモード
何らかの実効アドレスがメモリ上の領域を示していて、そこに別のメモリ領域のアドレスが格納されていて、さらにその先にまでたどってメモリの内容をとってくるような場合を多重メモリ間接という。例えばMC68020などは二重メモリ間接までは実装していた。その際、いったんメモリアクセスして取ってきたアドレス値にさらにインデックスレジスタやディスプレースメントを加算して第二の実行アドレスを計算するモードが存在した。
TRONCHIPでは「多段間接モード」を持つ。1段の間接参照操作の中で、インデックスレジスタのスケーリングと加算、オフセットの加算、メモリの間接参照、の3動作を行い、これを任意の段数反復することが可能であった。
DEC の PDP-10では、アドレスが18ビット幅でワード長が36ビットであるため、ワード内にポインタとフラグを含めることができる。メモリに格納するワードの中の、間接メモリ参照を許可するフラグを設定することによって自動的に多重メモリ間接が可能であった。この場合、ポインタがループを形成していると永久にループをたどり続けるため、注意が必要である。一般にワード長がアドレス長より長い場合、このような多重間接が可能で、他にも IBM 1620、データゼネラルNovaなどがある。Novaの多重メモリ間接から間接スレッデッドコードの発想が生まれた。
プログラムカウンタをベースレジスタとして、オフセット値も加えてロード命令の実効アドレスとするアドレッシングモード。「ベース+オフセット」の特殊ケースである。x86-64は、位置独立コードのためにRIP(プログラムカウンタ)相対のアドレッシングをサポートしている。ARMアーキテクチャとVAXはどちらもPCが汎用レジスタファイルに含まれており、PC相対アドレッシングが可能である。これらは定数をリテラルプールと呼ばれるテキスト内の領域(サブルーチンの直前か直後)に配置し、PC相対でそれをロードするようなコードを生成する。PC相対の分岐命令はPC以外のレジスタは更新されないが、PC相対のロード命令ではデータレジスタにロード結果が格納される。