#CPUの命令実行手段とレジスタ
CPUが命令を実行するために取り出した情報は、レジスタと呼ばれるCPU内部の記憶装置に保持します。
CPUの中がどんな感じになるかというと以下の図の通りになります。
図を見ていもわかりますが、あるレジスタで別のレジスタを代用したりとかもあるので、必ずしも上の表のレジスタが
すべてのっかっているというわけではない。
命令の実行手順は以下の通りになる。
①命令の取り出し(フェッチ)
この手順で命令レジスタ、プログラムカウンタを使用します。
1.取り出すべき命令がどこにあるかは、プログラムカウンタが知っている
2.プログラムカウンタの示すアドレスを参照して命令を取り出し、それを命令レジスタに記憶させます。
3.取り出しが終わったら、次の命令に備えてプログラムカウンタの値を1つ増加。
②命令の解読
この手順では命令レジスタと命令デコーダを使用します。
命令レジスタは以下の構成で出来ている。
命令レジスタの命令部の中身が命令デコーダへと送られて命令デコーダはそれを解読して、必要な装置に制御信号を飛ばします。
③対象データ(オペランド)読み出し
この手順では凡庸レジスタと命令レジスタを使用します。
※ただしアドレスの指定方式にはいろんな種類があるので、オペランド部に直接「メモリのアドレス」そのものが期されているとは限りません。
④命令実行
この手順では凡用レジスタとALUを使用します。
※以下の図は命令が演算処理だった場合となっております。
④命令実行が終わったら、また実行手順の①命令の取り出し(フェッチ)ン戻って一連の手順を繰り返します。
#機械語のアドレス指定方式
計算によって求めた主記憶装置上のアドレスを**実行アドレス(もしくは有効アドレス)**と呼ぶ
指定方式は以下6種類がある
即値アドレス指定方式
オペランド部に、対象となるデータそのものが入っている方式
直接アドレス指定方式
オペランド部に記載してあるアドレスが、そのまま実行アドレスとして使える方式
間接アドレス指定方式
オペランド部に記載してあるアドレスの中に**「対象となるデータが入っている箇所を示すメモリアドレス」**が記載されている。
インデックス(指標)アドレス指定方式
オペランド部の値に、インデックス(指標)レジスタの値を加算することで実行アドレスを求める。
インデックスレジスタとは
連続したアドレスを扱うときに用いるレジスタです。
ベースアドレス指定方式
オペランド部の値に、ベースレジスタの値を加算することで実行アドレスを求める。
ベースレジスタとは
プログラムがメモリ上にロードされたときの、戦闘アドレスを記憶しているレジスタ。
相対アドレス指定方式
オペランドの値に、プログラムカウンタの値を加算することで実行アドレスを求める。
#以上