アドレス修飾について
概要
命令レジスタに取り出してくる命令は以下の2つの要素で構成されている。
上図の「オペランド部」に入っているデータまたはアドレスから「何らかの計算」によってアドレスを求める方式を「アドレス修飾」という。
また、計算によって求めたメモリ上のアドレスを「実効アドレス」という。
指定方式一覧
即値アドレス指定方式
オペランド部に対象となるデータそのものが入っている。
直接アドレス指定方式
オペランド部に記載してあるアドレスがそのまま「実効アドレス」となる。
間接アドレス指定方式
オペランド部に記載してあるアドレスの中に「実効アドレス」が記されている。
インデックスアドレス指定方式
オペランド部の値に「インデックスレジスタ」の値を加算することで実行アドレスを求める。
インデックスレジスタの値を増減させることで、等間隔で並ぶアドレスに「同じ命令」を繰り返す事ができる!
ベースアドレス指定方式
オペランド部の値に「ベースレジスタ」の値を加算することで実行アドレスを求める。
めんどくさい方法だがオペランド部に先頭のアドレスからの「差分」を持たせる事で、メモリ上のどこの場所にロードされても、命令を変えなくて済む!!
相対アドレス指定方式
オペランド部の値に「プログラムカウンタ」の値を加算する事で実効アドレスを求める。
ベースレジスタを持たないCPUでベースレジスタ指定方式と同じようにしたい時に使用する。