- 命令は、4種類のアセンブラ命令(START,END,DS,DC)、 4種類のマクロ命令(IN,OUT)および機械語命令(COMETⅡの命令)からなる。 その仕様を次に示す。
-命令の種類 ラベル 命令コード オペランド 機能
-アセンブラ命令 ラベル START [実行開始番地] プログラムの先頭を定義
-プログラムの実行開始番地を定義
-他のプログラムで参照する入口名を定義
-
-END
-プログラムの終わりを明示
-[ラベル] DS 語数 領域を確保
-[ラベル] DC 定数[,定数]・・・ 定数を定義
-マクロ命令 [ラベル] IN 入力領域,入力文字長領域 入力装置から文字データを入力
-[ラベル] OUT 出力領域,出力文字長領域 出力装置へ文字データを出力
-[ラベル] RPUSH
-GRの内容をスタックに格納
-[ラベル] RPOP
-スタックの内容をGRに格納
-機械語命令 [ラベル] (「1.2 命令」を参照)
-2.3 アセンブラ命令
-
- アセンブラ命令は、アセンブラの制御などを行う。
-(1)
-START [実行開始番地]
- START命令は、プログラムの先頭を定義する。
- 実行開始番地は、そのプログラム内で定義されたラベルでしていする。 指定がある場合はその番地から、省略した場合はSTART命令の次の命令から、実行を開始する。
- また、この命令につけられたラベルは、他のプログラムから入口名として参照できる。
-(2)
-END
- END命令は、プログラムの終わりを定義する。
-(3)
-DS 語数
- DS命令は、指定した語数の領域を確保する。
- 語数は、10進定数(≧0)で指定する。語数を0とした場合、領域は確保しないが、ラベルは有効である。
-(4)
-DC 定数[,定数]・・・
- DC命令は、定数で指定したデータを(連続する)語に格納する。
- 定数には、10進定数、16進定数、文字定数、アドレス定数の4種類がある。
-定数の種類 書き方 命令の説明
-10進定数 n nで指定した10進数値を、1語の2進数データとして格納する。 ただし、nが-32768~32767の範囲にないときは、その下位16ビットを格納する。
-16進定数 #h hは4桁の16進数(16進数字は0~9,A~F)とする。 hで指定した16進数値を1語の2進数データとして格納する(0000≦h≦FFFF)。
-文字定数 ’文字列’ 文字列の文字数(>0)分の連続する領域を確保し、最初の文字は第1語の下位8ビットに、 2番目の文字は第2語の下位8ビットに、・・・と順次文字データとして格納する。 各語の上位8ビットには0のビットが入る。
-文字列には、間隔および任意の図形文字を書くことができる。 ただし、アポストロフィ(’)は2個続けて書く。
-アドレス定数 ラベル ラベルに対応するアドレスを1語の2進数データとして格納する。
-2.4 マクロ命令
-
- マクロ命令は、あらかじめ定義された命令群とオペランドの情報によって、 目的の機能を果たす命令群を生成する(語数は不定)。
-(1)
-IN 入力領域,入力文字長領域
- IN命令は、あらかじめ割り当てた入力装置から、1レコードの文字データを読み込む。
- 入力領域は、256語長の作業域のラベルであり、この領域の先頭から、 1文字を1語に対応させて順次入力される。レコードの区切り符号(キーボ-ド入力の復帰符号など)は、 格納しない。格納の形式は、DC命令の文字定数と同じである。入力データが256文字に満たない場合、 入力領域の残りの部分は実行前のデータを保持する。入力データが256文字を超える場合、 以降の文字は無視される。
- 入力文字長領域は、1語長の領域のラベルであり、入力された文字の長さ(≧0)が2進数で格納される。 ファイルの終わり(end of file)を検出した場合は、-1が格納される。
- IN命令を実行すると、GRの内容は保存されるが、FRの内容は不定となる。
-(2)
-OUT 出力領域,出力文字長領域
- OUT命令は、あらかじめ割り当てた出力装置に、文字データを、1レコードとして書き出す。
- 出力領域は、出力しようとするデータが1文字1語で格納されている領域のラベルである。 格納の形式は、DC命令の文字定数と同じであるが、 上位8ビットは、OSが無視するので0でなくてもよい。
- 出力文字長領域は、1語長の領域のラベルであり、 出力しようとする文字の長さ(≧0)を2進数で格納しておく。
- OUT命令を実行すると、GRの内容は保存されるが、FRの内容は不定となる。
-(3)
-RPUSH
- RPUSH命令は、GRの内容を、GR1、GR2、・・・、GR7の順でスタックに格納する。
-(4)
-RPOP
- RPOP命令は、スタックの内容を順次取り出し、GR7、GR6、・・・、GR1の順でGRに格納する。
-2.5 機械語命令
-
- 機械語命令のオペランドは、次の形式で記述する。
-r,r1,r2 GRは、記号GR0~GR7で指定する。
-x 指標レジスタとして用いるGRは、記号GR1~GR7で指定する。
-adr アドレスは、10進定数、16進定数、アドレス定数又はリテラルで指定する。
-リテラルは、ひとつの10進定数、16進定数又は文字定数の前に等号(=)を付けて 記述する。CASL IIは、等号の後の定数をオペランドとするDC命令を生成し、 そのアドレスをadrの値とする。
-2.6 その他
-
-アセンブラによって生成される命令語や領域の相対位置は、アセンブラ言語での記述順序とする。 ただし、リテラルから生成されるDC命令は、END命令の直前にまとめて配置される。
-生成された命令語、領域は、主記憶上で連続した領域を占める。
+命令は,4種類のアセンブラ命令(START,END,DS,DC), 4種類のマクロ命令(IN,OUT)および機械語命令(COMET IIの命令)からなる。 その仕様を次に示す。
+
+@multitable @columnfractions .20 .10 .10 .30 .30
+@headitem 命令の種類 @tab ラベル @tab 命令コード @tab オペランド @tab 機能
+@item アセンブラ命令 @tab ラベル @tab START @tab [実行開始番地] @tab プログラムの先頭を定義 @* プログラムの実行開始番地を定義 @* 他のプログラムで参照する入口名を定義
+@item @tab @tab END @tab @tab プログラムの終わりを明示
+@item @tab [ラベル] @tab DS @tab 語数 @tab 領域を確保
+@item @tab [ラベル] @tab DC @tab 定数[,定数]・・・ @tab 定数を定義
+@item マクロ命令 @tab [ラベル] @tab IN @tab 入力領域,入力文字長領域 @tab 入力装置から文字データを入力
+@item @tab [ラベル] @tab OUT @tab 出力領域,出力文字長領域 @tab 出力装置へ文字データを出力
+@item @tab [ラベル] @tab RPUSH @tab @tab GRの内容をスタックに格納
+@item @tab [ラベル] @tab RPOP @tab @tab スタックの内容をGRに格納
+@item 機械語命令 @tab [ラベル] @tab (「1.2 命令」を参照)
+@end multitable