CPUの命令実行手段とレジスタ、機械語のアドレス指定方式


CPUの命令実行手段とレジスタ

 CPUが命令を実行するために取り出した情報は、レジスタと呼ばれるCPU内部の記憶装置に保持します。

 レジスタの種類とそれぞれの役割は以下の通り。

CPUの中がどんな感じになるかというと以下の図の通りになります。

図を見ていもわかりますが、あるレジスタで別のレジスタを代用したりとかもあるので、必ずしも上の表のレジスタが
すべてのっかっているというわけではない。

命令の実行手順は以下の通りになる。

①命令の取り出し(フェッチ)
 この手順で命令レジスタ、プログラムカウンタを使用します。
 1.取り出すべき命令がどこにあるかは、プログラムカウンタが知っている
   

 2.プログラムカウンタの示すアドレスを参照して命令を取り出し、それを命令レジスタに記憶させます。
  
 
 3.取り出しが終わったら、次の命令に備えてプログラムカウンタの値を1つ増加。
  

②命令の解読
 この手順では命令レジスタと命令デコーダを使用します。
 命令レジスタは以下の構成で出来ている。
 
 命令レジスタの命令部の中身が命令デコーダへと送られて命令デコーダはそれを解読して、必要な装置に制御信号を飛ばします。
 

③対象データ(オペランド)読み出し
この手順では凡庸レジスタと命令レジスタを使用します。
 ※ただしアドレスの指定方式にはいろんな種類があるので、オペランド部に直接「メモリのアドレス」そのものが期されているとは限りません。
  

④命令実行
 この手順では凡用レジスタとALUを使用します。
 ※以下の図は命令が演算処理だった場合となっております。

④命令実行が終わったら、また実行手順の①命令の取り出し(フェッチ)ン戻って一連の手順を繰り返します。

機械語のアドレス指定方式

 計算によって求めた主記憶装置上のアドレスを実行アドレス(もしくは有効アドレス)と呼ぶ
 指定方式は以下6種類がある

即値アドレス指定方式
オペランド部に、対象となるデータそのものが入っている方式

直接アドレス指定方式
オペランド部に記載してあるアドレスが、そのまま実行アドレスとして使える方式
 

間接アドレス指定方式
 オペランド部に記載してあるアドレスの中に「対象となるデータが入っている箇所を示すメモリアドレス」が記載されている。
 

インデックス(指標)アドレス指定方式
オペランド部の値に、インデックス(指標)レジスタの値を加算することで実行アドレスを求める。

 インデックスレジスタとは
 連続したアドレスを扱うときに用いるレジスタです。

ベースアドレス指定方式
オペランド部の値に、ベースレジスタの値を加算することで実行アドレスを求める。
 
 ベースレジスタとは
 プログラムがメモリ上にロードされたときの、戦闘アドレスを記憶しているレジスタ。

相対アドレス指定方式
 オペランドの値に、プログラムカウンタの値を加算することで実行アドレスを求める。
  

以上