10.マクロ命令
機械語命令を組み合わせて、あらかじめ定義されている命令をマクロ命令といいます。 |
|||
(1)IN命令 入力命令 |
|||
記述方法 |
|||
ラベル |
IN |
入力データ格納アドレス,入力文字数格納アドレス |
|
入力する命令です。CASL2000ではキーボードから入力します。 1つ目のアドレスから入力文字が格納されていきます。 数を入力した場合には、数字(文字)として取り扱われますので注意が必要です。 例.入力した1桁の数字を数値に変換する。 |
|||
PROG_IN |
START |
|
|
|
IN |
DATA,SUU ;文字を入力 |
|
|
LD |
GR0,DATA |
|
|
SUBA |
GR0,HENKAN ;数字から数値へ変換 |
|
|
ST |
GR0,ANS |
|
|
RET |
|
|
DATA |
DS |
1 |
|
SUU |
DS |
1 |
|
ANS |
DS |
1 |
|
HENKAN |
DC |
#0030 ;変換用データ |
|
|
END |
|
|
(2)OUT命令 出力命令。 |
|||
記述方法 |
|||
ラベル |
OUT |
出力データ格納アドレス,出力文字数 |
|
出力する命令です。 出力データ格納アドレスから格納されているデータを出力文字数で指定した数分出力します。 例.入力した文字列を出力する。 |
|||
PROG_OUT |
START |
|
|
|
IN |
DATA,SUU ;入力 |
|
|
OUT |
DATA,SUU ;入力したデータをそのまま出力 |
|
|
RET |
|
|
DATA |
DS |
20 |
|
SUU |
DS |
1 |
|
|
END |
|
|
(3)RPUSH命令 GRの中身をスタックへ格納する命令。 |
|||
記述方法 |
|||
ラベル |
RPUSH |
|
|
GRの内容をGR1,GR2,…,GR7の順序で、スタックに格納する命令です。 |
|||
(4)RPOP命令 スタックの内容をGRへ格納する命令。 |
|||
記述方法 |
|||
ラベル |
RPOP |
|
|
スタックの内容を、GR7,GR6,…,GR1の順序で格納していく命令です。 例.レジスタの内容を一時的に待避させ、元に戻す。 |
|||
RPUSHPOP |
START |
|
|
|
RPUSH |
|
|
|
RPOP |
|
|
|
RET |
|
|
|
END |
|
|
|
|
|
|