ざっくりCPU~アドレス指定方式~
CPUについての記事↓
https://note.com/shimo_study_log/n/nf210626e69cd
アドレス指定方式
前回の記事でコンピュータが1つの命令を実行する流れ(命令実行サイクル)について記述しました。
コンピュータのCPUは主記憶装置にある命令を1つずつ取り出して、解読し実行を行なっています。
取り出しの際に、主記憶から取り出され、命令レジスタに命令部とアドレス部(オペランド部)が格納されると説明しました。
そのアドレス部の値から処理対象のデータが格納されている実効アドレスを求める方式をアドレス指定方式といいます。
アドレス指定方式には、
・即値アドレス指定方式
・直接アドレス指定方式
・関節アドレス指定方式
・相対アドレス指定方式
・指標アドレス指定方式
・基底アドレス指定方式
があります。
即値アドレス指定方式
命令レジスタのアドレス部にデータそのものを格納している方式。
主記憶へアクセスを必要としないため高速処理される。
レジスタを主記憶よりも容量が小さいためデータの大きさが限られる。
直接アドレス指定方式
命令レジスタのアドレス部の値を実効アドレスとする方式。
主記憶の実行アドレスを参照してデータを取得する。
即値より大きなデータを利用出来る。
関節アドレス指定方式
命令レジスタのアドレス部の値が示すアドレスに格納されている値を実効アドレスとする方法。
相対アドレス指定方式
命令レジスタのアドレス部の値と命令アドレスレジスタ(プログラムカウンタ)の合計値を実効アドレスとする方式。
指標アドレス指定方式(インデックスアドレス指定方式)
命令レジスタのアドレス部にインデックスレジスタが加わりインデックスレジスタの値とアドレス部の合計値を実効アドレスとする方法。
インデックスレジスタに基準値のアドレスを格納し同じ数を加算する事で配列などの連続したデータに繰り返し同じ命令を適用させる場合に利用します。
基底アドレス指定方式(ベースアドレス指定方式)
命令レジスタのアドレス部の値とベースレジスタの値の合計値を実効アドレスとする方式。
ベースレジスタにはプログラムを主記憶(メモリ)上にロードした時の先頭のアドレスが記憶される。
先頭のアドレスが約束されるため基底アドレス指定方式では、プログラムが主記憶(メモリ)のどこにロードされても、プログラムを変える事なく同じようにデータにアクセスする事が出来る。