〇命令はひとつずつ順に実行される。
· オペランド : 操作の対象
ソース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の実際の例では、メモリアドレス=レジスタの値+即値 のように計算するが、これはどのようなメリットがあるのか?
ソース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の条件付変更 |
I型 |
図3.1 命令形式
図 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.3
宿題3 学籍番号 名前 日付 を書いて 提出すること!
(1)
LW, SW命令ではメモリアドレスの計算は (レジスタ値)+dpl であった
単に、dplのみを使う場合、単に(レジスタ値)を使う場合と比較して、 (レジスタ値)+dpl を使うメリットを述べよ。
(2) レジスタファイルの大きさが64ワード(64X32ビット)、命令セットの大きさが64の場合の、命令フィールドの構成案を示せ。
(3) AタイプのJUMP命令で、JUMPできるメモリ空間はどこから、どこまでか?
(4)
メモリアドレスがバイト(8ビット)ごとに付けられているシステムでは、32ビット長命令のアドレスを示すPCの値は
0−>4−>8−>12、のように分岐しない場合は、4ずつ上昇する。
これを利用して、上記(3)のメモリ空間を拡大する方法を述べよ。
(5)
32ビットのアドレス空間0から4G-1 (Gはギガであり2の30乗)番地の最大アドレスにJR命令を使わずに、J(JUMP命令)だけで
JUMPしたければどのような工夫をすればよいか?
(6) MEM(2108)=MEM(2100)−MEM(2104)なる計算するアセンブラプログラムを示せ。ただし、MEM(2108)とはアドレス2108番地のメモリ内のデータを示す。
以上