命令セットアーキテクチャ I


3.1.1 操作とオペランド

〇命令はひとつずつ順に実行される。

 

ソース1 ソース2 ソース3 ソース4 デスティネーション 命令の例
Register 1 Register 2     Register 3 加算・減算など
メモリアドレス       Register 3 メモリからRFへの転送
Register 3       メモリアドレス RFからメモリへの転送
PC(プログラムカウンター) 即値     PC PCの変更 (JUMP命令)
Register 1 Register 2 即値 PC(プログラムカウンター) PC PCの条件付変更
(BRANCH命令)

クイズ1:メモリからレジスタファイル(RF)もしくは、レジスタファイル(RF)からメモリへの転送命令では、メモリアドレスがソースオペランドの一つである。3.1.2の実際の例では、メモリアドレス=レジスタの値+即値 のように計算するが、これはどのようなメリットがあるのか?

 

3.1.2 命令の表現形式 (命令を32ビットのビット列でどのように表現するか?)

ソース1 ソース2 ソース3 ソース4 デスティネーション 命令の例
Register 1 Register 2     Register 3 加算・減算など
メモリアドレス       Register 3 メモリからRFへの転送
Register 3       メモリアドレス RFからメモリへの転送
PC(プログラムカウンター) 即値     PC PCの変更 (JUMP命令)
Register 1 Register 2 即値 PC(プログラムカウンター) PC PCの条件付変更
(BRANCH命令)
ソース1 ソース2 ソース3 ソース4 デスティネーション 命令の例 命令形式
Register 1 Register 2     Register 3 加算・減算など R型
メモリアドレス       Register 3 メモリからRFへの転送 I型
Register 3       メモリアドレス RFからメモリへの転送 I型
PC(プログラムカウンター) 即値     PC PCの変更 (JUMP命令) A型
Register 1 Register 2 即値 PC(プログラムカウンター) PC PCの条件付変更
(BRANCH命令)
I型

 

図3.1 命令形式

 

3.1.3 命令フィールド

図 3.2

 

 

クイズ2:レジスタファイルの大きさが64、命令セットの大きさが64の場合の命令フィールド構成案を作成せよ。

クイズ3:図3.2のA形式でJUMPできるメモリ空間はどこからどこまでか?

クイズ4:メモリアドレスがバイト(8ビット)ごとに、付けられているシステムでは、32ビット命令を示すPCの値は

0−>4−>8−>12…のように4づつ上昇します。これを利用して何かの改善はできるか?

クイズ5:32ビットアドレス空間の0番地から最大アドレス4G-1へJUMPしたければどうすればよいか?

3.1.4 アセンブリ言語

図 3.3

 


宿題3 学籍番号 名前 日付 を書いて 提出すること!

上記クイズすべてに解答せよ。

以上