0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

図51.png

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

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

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

#以上

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?