CPUの動作原理
レジスタ
→レジスタは、CPUに内蔵されている高速な記憶装置です。レジスタには、次のようなものがあり、命令の実行時に使用します。
命令レジスタ:実行命令を格納する。
命令アドレスジスタ(プログラムカウンタ):次に実行する命令のアドレスを格納する。
指標レジスタ(インデックスレジスタ):基準となるアドレスを格納する。指標アドレス指定方法で使用する。
基底レジスタ(ペースレジスタ):基準となるアドレスを格納する。規定アドレス指定方法で使用する。
アキュムレータ(累算器):演算対象や演算結果を格納する。
汎用レジスタ:演算対象や演算結果を格納する。そのほか各種の目的に使用する。
命令語
→プログラムは、コンピュータに行わせる命令が集まったものです。プログラム言語で技術あれた命令は、最終的にコンピュータが理解できる1と0の機械語(命令語)に変換され、解読・実行されます。
機械語の命令語は、命令部とアドレス部(オペランド部)で構成され、命令によっては、アドレス部がないものや、アドレス部が複数あるものもあります。
命令実行サイクル
コンピュータが一つの命令を実行するとき、次の①から⑥までのような段階(ステージ)で進んで行きます。
命令アドレスレジスタ(プログラムカウンタ)には、これから実行する命令が格納されている主記憶のアドレスが保持されています。
①命令の取り出し:命令アドレスレジスタ(プログラムあカウンタ)を参照して、命令が格納されている主記憶上のアドレスを取得する。取得したアドレスから命令を取り出し(命令フェッチ)、命令レジスタに格納する。この時、命令アドレスレジスタには、次の命令のアドレスをセットする。
②命令の解読:命令レジスタの命令部は、デコーダ(解読器)で解読され、演算装置に表示を出す。
③実効あどれす計算:命令レジスタのアドレス部の値は、アドレスレジスタに送られ、処理対象のデータが格納されているアドレス(実効アドレス)を計算する。
④オペランドの取り出し:処理対象のデータを取り出し、演算装置に送る。
⑤命令実行:演算装置で演算を実行する。
⑥演算結果の格納:演算結果を格納する。
まとめたら、命令実行サイクルは命令の取り出し→命令の解読→実効アドレス計算→オペランドの取り出し→命令の実行→演算結果の格納となります。
アドレス指定方法
コンピュータは、主記憶上にあるプログラムの命令を一つずつ取り出して、解読・実行しています。
アドレス指定方法は、命令のアドレス部の値から処理対象のデータが格納されている実効アドレス(有効アドレス)を求める
方法です。アドレス修飾とも呼ばれています。
即値アドレス指定方法
即値アドレス指定方法は、命令のアドレス部にデータそのものを格納している方法です。
直接アドレス指定方法
直接アドレス指定方法は、命令のアドレス部の値を、実効アドレスとする方法です。
間接アドレス指定方法
間接アドレス指定方法は、命令のアドレス部の値が示すアドレスに格納されている値を、実効アドレスとする方法です。
相対アドレス指定方法
相対アドレス指定方法は、命令のアドレス部の値と指標レジスタの値の和を実効アドレスとする方法です。
指標アドレス指定方法
指標アドレス指定方法は、命令のアドレス部の値と指標レジスタの値の和を、実効アドレスとする方法です。
インデックスアドレス指定方法とも呼ばれています。
基底アドレス指定方法
基底アドレス指定方法は、命令のアドレス部の値と規定レジスタの値の和を、実効アドレスとする方法です。
ベースアドレス指定方法とも呼ばれています。
まとめると
即値:命令のアドレス部の値はデータそのもの
直接:アドレス部の値→実効アドレス
間接:アドレス部の値が示すアドレスに格納されている値→実効アドレス
相対:アドレスの値+プログラムカウンタの値→実効アドレス
指標:アドレス部の値+指標レジスタの値→実効アドレス
基底:アドレス部の値+基底レジスタの値→実効アドレス