2003.09.30
CASLU & COMETU
Lesson 1 COMETUの構成と命令の実行過程
|
|
|
2語命令の構成
形式の説明
2語長の命令の形式は以下のようになります.
命 令 部 (8ビット) | レジスタ部(4ビット)
| 修 飾 部 (4ビット) |
アドレス部 (16ビット) |
図で表すと次のようになります.
命令の各部には以下のような意味があります.
- 1語め(最初の16ビット)のうち,第15ビットから第8ビットの8ビットは命令部で,機械命令の種類を指定する.
- 同様に1語めの第7ビットから第4ビットの4ビットはレジスタ部で演算に使用されるレジスタを指定する.
- 1語めの残りの部分(第3ビットから第0ビットの4ビット)は修飾部でインデックス修飾を行うレジスタを指定する.
- 2語めの16ビットはアドレス部で,演算の対象となる番地,または数値を指定する.
命令によっては,レジスタ部には値を指定しないものもあります.そのようなときは0になります.修飾部も,インデックス修飾をしない場合は,0を入れておきます.
例
例えば,メモリからレジスタに値をロードするタイプの命令は2語長です.CASLUで書くと以下のような命令です.
LD GR1,AA
これを機械語表現にしてみましょう.
実は,これだけだと情報不足でです.プログラムの全体がどのようになっているかわからないと,AAというラベルのアドレスがわかりません.ここでは,AAというラベルがメモリの8番地に割り当てられたと仮定して話を進めます.
まず,命令部8ビット分をアセンブラ言語の仕様の参考資料(30ページ)の表で調べます.LD r1,adr,x という機械命令のOPです.(LD命令は2つありますが,命令語長が2の方です.)
主OPが1,副OPが0となっていますね.なので,この場合,命令部は10となります.
次に,レジスタ部はGR1なので1です.修飾部は指定がないので,0になります.
2語目はAAのアドレスである8になります.
従って,16進数では以下のようになります.
1 0 1 0
0 0 0 8
2進数で表すと,以下のようになります.
0001 0000 0001 0000
0000 0000 0000 1000