TEST START
RPUSH
LAD GR1,1;GR1に1を読み込む
;<<市松模様の描画ループ>>
LOOP LD GR2,GR1;GR2にGR1をコピー
SRL GR2,1;GR2を右に1ビットシフト
JOV ODD;オーバーフローしたら奇数なので、ODDに分岐する
EVEN OUT EVENA,LEN;偶数だったら「 X X 」を出力
JUMP SKIP;奇数の出力をスキップする
ODD OUT ODDA,LEN;奇数だったら「X X X」を出力
SKIP LAD GR1,1,GR1;GR1をインクリメント
CPL GR1,=5;GR1を5と比較
JPL FIN;5を超えた場合はFINへ分岐
JUMP LOOP;ループ先頭へ分岐
FIN RPOP
RET
EVENA DC ' X X '
ODDA DC 'X X X'
LEN DC 5
END
TEST START
RPUSH
LAD GR1,1;GR1に1を読み込む
;<<市松模様の描画ループ>>
;GR2にGR1をコピー
;GR2を右に1ビットシフト
;オーバーフローしたら奇数なので、ODDに分岐する
;偶数だったら「 X X 」を出力
;奇数の出力をスキップする
;奇数だったら「X X X」を出力
;GR1をインクリメント
;GR1を5と比較
;5を超えた場合はFINへ分岐
;ループ先頭へ分岐
FIN RPOP
RET
EVENA DC ' X X '
ODDA DC 'X X X'
LEN DC 5
END
TEST START
RPUSH
LAD GR1,1;GR1に1を設定
;<< ここからループ >>
LOOP LD GR2,GR1;GR2にGR1の数を読み込む
ADDL GR2,='0';GR2の値に文字コード「'0'」を加算
ST GR2,SARA;GR2の値をSARAに格納
OUT SARA,LEN;皿の枚数を出力
LAD GR1,1,GR1;GR1をインクリメント
CPL GR1,=10;GR1が10まで達したのか比較(ループを続けるか否かの判断)
JMI LOOP;GR1が10未満であれば、ループは続行
OUT MOJI,LEN2;「サラ割れた」のメッセージ出力
RPOP
RET
SARA DS 1;皿に文字数1枠を確保する
TANI DC 'MA-I';皿の単位の数え方は「枚(まーい)」
LEN DC 5;1枚は「1MA-I」と5文字で表示
MOJI DC 'SARA WARETA!';「皿割れた」の文字列
LEN2 DC 12;上記の皿の文字列の字数
END
TEST START
RPUSH
;GR1に1を設定
;<< ここからループ >>
;GR2にGR1の数を読み込む
;GR2の値に文字コード「'0'」を加算
;GR2の値をSARAに格納
;皿の枚数を出力
;GR1をインクリメント
;GR1が10まで達したのか比較(ループを続けるか否かの判断)
;GR1が10未満であれば、ループは続行
;「サラ割れた」のメッセージ出力
RPOP
RET
SARA DS 1;皿に文字数1枠を確保する
TANI DC 'MA-I';皿の単位の数え方は「枚(まーい)」
LEN DC 5;1枚は「1MA-I」と5文字で表示
MOJI DC 'SARA WARETA!';「皿割れた」の文字列
LEN2 DC 12;上記の皿の文字列の字数
END