0
0

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 1 year has passed since last update.

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

Last updated at Posted at 2022-07-20

お使いメモ レジスタ

お使いを頼まれた時はメモまたは伝言が用意される。
Aと言う店でBと言う商品を買ってこいと言われる。
このように単純なお使いでも暗黙の条件があることを意識しなければならない。

これをコンピュータに命令するときは
Aと言う命令をした場合、それを行う前に準備をする必要がある。
つまりAと言う命令には手順がB,C,D...があり、それらをしてAを行う。
それら手順を覚えておくためにレジスタというCPUの中にある記憶装置がある。

このレジスタで手順や実行を記憶しておく。
お使いの時のメモの役割がレジスタだ。

レジスタとは(記憶するもの/記憶された情報)

取り出した命令の情報」や「次はどの命令を取り出せばよいかの情報」を覚えておく必要があります。

レジスタの種類とそれぞれの役割

気づき

アドレス指定方法の違いだろうか?

プログラムカウンタ

実行するべき命令が入っているアドレスを記憶する

命令レジスタ

取り出した命令を一時的に記憶する

インデックス(指標)レジスタ

アドレス修飾に用いるためのレジスタで、連続したデータの取り出しに使うための増幅値を保持する。

気づき

  • 等間隔のデータを取り出すために保持するのか。
  • 配列は等間隔にすることによって配列であることを示しているのかもしれない。
    どうせならメモリの中で連続にすればいいのかもしれないと思ったが、それはコンピュータの性格上何かあるのだろう。
    簡単な命令でいろいろ手順があるのだからそれと関係していそうだ。
    今回は足を踏み入れすぎた。

疑問 連続したデータとは?

連続したデータの取り出しに使う増分値を記憶しておくものであり、配列など等間隔で連続して置かれた複数のデータに順番にアクセスする際に使用します。
出典 https://medium-company.com/%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%83%AC%E3%82%B8%E3%82%B9%E3%82%BF/

疑問 アドレス修飾(実行アドレスを決定する)

機械語命令の演算数(オペランド)にあるアドレス情報を利用して、実行するべき命令の対象となるデータアドレスを決定することである。
ちなみに、アドレス修飾の際、対象となるアドレスを計算する方式のことが、アドレス修飾方式と呼ばれる。
出典 https://japan.zdnet.com/glossary/exp/%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E4%BF%AE%E9%A3%BE/?s=4#:~:text=%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E4%BF%AE%E9%A3%BE%E3%81%A8%E3%81%AF%E3%80%81%E6%A9%9F%E6%A2%B0,%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E4%BF%AE%E9%A3%BE%E6%96%B9%E5%BC%8F%E3%81%A8%E5%91%BC%E3%81%B0%E3%82%8C%E3%82%8B%E3%80%82

気づき

説明の言葉の意味がわからない。
今後も出てくると思われるのでしっかり理解することが重要だと思う。
インデックスレジスタに関して説明があった。

インデックスレジスタ

アドレス指定方式の一種であるインデックスアドレス指定方式(指標アドレス指定方式)で使用するレジスタです。

アドレス指定方式

CPUが命令を実行する際、対象となるデータの在りかを指定する方法
CPUが実行する命令は下記の図のように「命令部」「オペランド部」に分かれています。
image.png
対象データの在りかを示すオペランド部にはさまざまな指定方法があります。

インデックスアドレス指定方式(指標アドレス指定方式)

オペランド部にインデックスレジスタと値が入り、オペランド部の値にインデックスレジスタの値を加算することで、実効アドレスを求める方式です。
image.png

実行アドレス

処理の対象となるアドレス
出典 https://masudahp.web.fc2.com/casl2/casl2030.html#:~:text=%E5%AE%9F%E5%8A%B9%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%AF%E3%80%81%E5%87%A6%E7%90%86,%E3%82%88%E3%81%86%E3%81%AB%E6%9B%B8%E3%81%84%E3%81%9F%E3%81%A8%E3%81%99%E3%82%8B%E3%80%82&text=ADDA%E3%81%AF%E7%AE%97%E8%A1%93%E5%8A%A0%E7%AE%97%E5%91%BD%E4%BB%A4,%E3%81%93%E3%81%A8%E3%82%92%E8%A1%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%80%82

等間隔で実行アドレスを取得するためのものなのか。

ベースレジスタ

プログラムの先頭アドレスを保持する。

アキュムレータ

演算の対象となる数や、演算結果を記憶する

汎用レジスタ

特に機能を限定していないレジスタ。
一時的な値の保持や、アキュムレータなどの代用に使ったりする。

CPUの中身

演算装置

  • 汎用トランジスタ
  • ALU(算術論理演算装置)

制御装置

  • 命令レジスタ
  • プログラムカウンタ
  • 命令デコーダ

気づき

CPUの中はいろいろな装置が付けられてるんだな。

出典 キタミ式イラストIT塾 基本情報技術者 令和03年

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?