CASL IIの命令は、3種類ある。プログラムを書く場合、これらがどのよう
になっているか、理解する必要がある。
命令の具体的な内容は、次回以降の授業で学習する。ここでは、簡単に概要を
述べる。
教科書のP.28〜P.35で説明している非実行文と書かれているものである。アセ
ンブラーという変換プログラムに対して、いろいろな指示を行う命令である。
COMET IIのCPUの動作の指示は行わない。したがって、この命令は機械語に変
換されて特定のビットパターン(1と0の組み合わせ)に変換されることはない。
CASL IIには、次の4個のアセンブラ命令がある。
|
START |
プログラムの先頭を定義 |
|
|
プログラムの実行開始番地を定義 |
|
|
他のプログラムで参照する入口名を定義 |
|
END |
プログラムの終わりを明示 |
|
DC |
領域を確保 |
|
DS |
定数を定義 |
ただし、
DC命令は、それに引き続く値にビットパターンに変換される。
DS命令はビットパターンに変換されないが、必要な領域を確保する。こ
の2つは、FORTRANの変数宣言と同じような働きをする。実際のプログラムでは、
データの値を定義することに使われる。
教科書のP.40〜P.82で説明している。この命令は、COMET IIのCCPUの動作の指
示を行う。そのため、この命令に対応した論理回路が、CPUの中に組み込まれ
ている。これら命令は、アセンブラーにより特定のビットパターンの機械語に
変換され、そのパターンに従い、論理回路が動作する。
実行時には、そのビットパターンが主記憶装置に格納されている。ビットパター
ンへの変換は、先々週の授業で説明したハンドアセンブラーと同じことをする。
CASL IIには、以下の28個の機械語命令がある(教科書のP.203)。
|
LD, ST, LAD |
データの移動 |
|
ADDA, SUBA |
算術演算 |
|
ADDL, SUBL, AND, OR, XOR |
論理演算 |
|
CPA, CPL |
比較演算 |
|
JPL, JMI, JNZ, JZE, JOV, JUMP |
分岐処理 |
|
PUSH, POP |
スタック操作 |
|
CALL, RET |
サブルーチンへの移動と戻り |
|
SVC, NOP |
その他 |
教科書のP.83〜P.86で説明している。マクロ命令とは、特定の機能を果たす、
いくつかの機械語命令の集まりに名前を付けたものである。この名前を指定す
るだけで、これらの命令の集まりが実行できる。これにより、頻繁に使われる
定形的な命令群をマクロ命令にすることにより、同じようなプログラムをいち
いち書くことを省くことができ、便利である。
多くの命令から構成されるため、アセンブラーにより変換されるビットパター
ンは非常に多くなる。
CASL IIには、以下の4個のマクロ命令がある(教科書のP.203)。
|
IN |
入力装置(キーボード)から、文字データを読み込む |
|
OUT |
出力装置(ディスプレイ)に、文字データを書き込む |
|
RPUSH |
汎用レジスターの内容を、GR1, GR2, ,GR7の順でスタックに格納 |
|
RPOP |
スタックの内容をGR7, GR6,
,GR0の順で汎用レジスターに格納 |
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年9月7日