アドレッシングモード
コンピュータ・アーキテクチャが異なれば、それぞれに独自のアドレッシングモードが存在する。複雑なアドレッシングモードには、使用する命令数やレジスタの削減といった利点がある。一方、単純なアドレッシングモードだけにすることには、CPUの命令パイプラインの設計が容易になるという利点があるとされる。
RISCでは一般にアドレッシングモードが少なく単純だが、DECのVAXなどのCISCでは1ダース以上のアドレッシングモードを備え、その一部は非常に複雑である。IBM System/360 は3種類のアドレッシングモードしか持たなかったが、System/390ではいくつか追加された。
アドレッシングモードが少ない場合(例えばRISCや IBM System/390)、命令コード側にオペランドの意味を規定する情報が含まれている。しかしアドレッシングモードが豊富なアーキテクチャでは命令フォーマット内に命令コードとは別にアドレッシングモードを指定するフィールドが存在する。DEC VAX はほとんど全ての命令で複数のメモリオペランドを指定でき、オペランド指定フィールドの先頭数ビットで、そのオペランドのアドレッシングモードを指定することになっている。アドレッシングモードを指定するビット列をオペコードから分離した命令セットは「直交性が高い」と言われる。
豊富なアドレッシングモードを持つコンピュータであっても、実際のプログラムは、90%は単純なアドレッシングモードで構成される。これは高水準言語のコンパイラが生成したコードを調査した結果であり、コンパイラ自体の限界を反映したものである。
命令内に直接書かれている値を意味する。演算命令などのオペランドとしてそのまま使われる。以下に列挙するものは命令内に直接書かれアドレッシングモードでメモリアドレス指定に使われる値である。 直接アドレス アドレスを命令内で直接指定する場合に使われる。例えば大域変数のアドレスやライブラリ関数のアドレスなどは直接アドレスで指定されることが多い(ただし、ダイナミックリンクされるライブラリのアドレス指定はその限りではない)。 ディスプレースメント/オフセット 何らかのベースアドレスからのオフセットを示す値である。
なお、インデックスレジスタはその性格上、必ずしもメモリアドレス全体を表せるビット幅を持つ必要はないが、一般的にはアドレス全体を表すことができるため、ベースポインタとの役割分担があいまいとなっている。
アドレッシングモード(Addressing Mode)は、CPUの命令セットアーキテクチャ(ISA)において、命令のオペランド部(演算の対象となるデータのこと)を表すための方法のことである。一般に、プロセッサの命令において、オペランドとその結果を出力する場所が必要である。アドレッシングモードは、結果を出力する場所をオペランドと同じ場所とし、オペランドの領域に結果を書き戻す方法である。これによって、命令での場所の指定が最小限に抑えられる。そのため、狭義のアドレッシングモードでは、オペランドとして使用すべきメモリ領域を指定する。しかし、広義には、レジスタを指定したり、値が命令のオペランドとして直接与えられたりする場合も含まれる。
プログラミングの観点では、アドレッシングモードはコンパイラ開発を行う時やアセンブリ言語を利用する際に重視される。