CPUはレジスタに記憶されちる命令を命令アドレジスタの手順に従って実行していきます.その命令のアドレス部から処理対象のデータが格納されているアドレスを特定する方式のことをアドレス指定方式と呼ぶ.
レジスタ
レジスタとはCPU内部にある,命令の格納に使用される高速な記憶装置のこと.一般的に数十バイト程度の小容量であることが多い.
レジスタの種類 | 機能 |
---|---|
命令レジスタ | 実行する命令を格納 |
命令アドレジスタ (プログラムカウンタ) | 次の命令のアドレスを格納 |
指標レジスタ (インデックスレジスタ) | 基準となるアドレスを格納 指標アドレス指定方式で使用 |
基底レジスタ (ベースレジスタ) | 基準となるアドレスを格納 基底アドレス指定方式で使用 |
累算器 (アキュムレータ) | 演算の対象やその結果を格納 |
汎用レジスタ | 演算の対象やその結果を格納 その他の目的にも汎用的に格納 |
命令語(機械語)
プログラムとはコンピュータで実行できる命令が集まったもの.この命令は数字の列で記述されており,この文字列を命令後(機械語)という.数字の列というのも0と1で構成されており,人間が理解しにくい言語となっている(人間が理解しにく言語を低水準の言語という).
機械語は低水準の言語ではあるが,コンピュータのあらゆる機能を利用することができ,高速で動作する.ハードウェアを動かすデバイスドライバや,OSの基盤の開発に適している.一方で機械語は複雑で大規模な開発には向かず,人間が理解しやすい言語(高水準言語)で開発される.
機械語の命令語は命令部とアドレス部に別れている.場合によってはアドレス部がないものや,アドレス部が複数存在する命令後もある.
コンピュータの命令実行サイクル
コンピュータが命令を日取る実行する場合CPUと記憶装置と制御装置間で7つの手順を踏んで実行されます.今から実行される命令のアドレスがプログラムカウンタ(命令アドレジスタ)に格納されている.
手順 | 説明 |
---|---|
①プログラムカウンタから命令を実行する | 実行する命令をプログラムカウンタから取り出す |
②命令を取り出す | プログラムカウンタから命令を参照し,命令が格納されている主記憶装置上のアドレスを取得する.そのアドレスから命令を取り出し,命令レジスタ(命令語)に格納する.同時にプログラムカウンタに次の命令のアドレスを格納する. |
③命令を解析する | 命令語の命令部をデコーダーで解析し,演算装置に指示を出す |
④実行アドレスの取得 | 命令語のアドレス部をアドレスレジスタに送信し,データの実行アドレスを取得する |
⑤処理対象のデータ送信する | 処理対象のデータを取り出し,演算装置に送る |
⑥命令を実行する | 演算装置で処理対象のデータと解析された命令から,命令を実行する |
⑦結果の格納 | 処理結果を主記憶装置に格納する |
主記憶にアクセスする時のアドレス指定方式
コンピュータ上にある主記憶装置からプログラムを解読し実行する.アドレス指定方式とは命令語のアドレス部からプログラムが格納されている有効アドレスを求める方式になります.
即値アドレス指定方式
命令語のアドレス部に直接データを格納しているアドレス指定方式
メモリへのアクセスが一切ないため高速
直接アドレス指定方式
命令語のアドレス部に実行アドレスを指定するアドレス方式
間接アドレス指定方式
命令語のアドレス部が示すアドレスに実行アドレスが指定されているアドレス指定方式
相対アドレス指定方式
命令語のアドレス部の値と命令アドレジスタの和を実行アドレスとする方式
指標アドレス指定方式
命令語のアドレス部の値と指標レジスタの和を実行アドレスとする方式(インデックスアドレス指定方式)
基底アドレス指定方式
命令語のアドレス部の値と基底レジスタの和を実行アドレスとする方式(ベースアドレス指定方式)
コメント