アセンブラでデスノート風のカウントダウン

この記事ではアセンブラ言語で、単純なループと、デクリメントを通してカウントダウンの処理が学べます。
ジョークを用いていますので、楽しく笑いを取り入れて、アセンブラの基礎を脳内に定着されます。

■ 関連記事 ■

基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
令和2年度(令和3年1月)合格報告

2020年からの基本情報技術者試験は、言語とアルゴリズムの配点が高くなりました。
なので、プログラミング未経験の事務員の私は、非常に焦っていましたが、無事合格できました。
学習中のアウトプットを少し編集してお届けしております。

またまた、変なCASL2の命令を思いついてしまいました。
こんなことやっていて、良いのかな?
こんなことして、遊んでいないで、マジメに勉強しないとね。

で、イヤなやつの名前を書いて、
寿命を5days、4days、3days、2daysまでカウントダウンして、
その後1-DAY!!、ど~~~~~ん!って出力する命令を作りました。

実行すると、まず、
デスノートって表示されます。

その後、ヤツの名は?と、表示されます。

懲らしめてやりたい奴の名前を書きます。

「GOKIBURI」と書きました。
ほんと、アイツら、ひとんちの敷地内に入りやがって、
土地はお金なんだよ!!
殺虫剤も金かかってんだよ、金返せ、このやろう!!!!

って、CASL2のプログラムの話に戻ります(;^_^A
で、「の余命は」と表示されます。

ここから5,4,3,2,とカウントされます。
2日までは、day”s”ですよね、複数形で。

で、ここから
プログラムの抜粋をしますが、

LOOP LD GR2,=’0′
ADDA GR2,GR1
ST GR2,DAYS
OUT DAYS,LEN4
SUBA GR1,=1
CPA GR1,=1 ←ココ!
JPL LOOP  ←ココも!

の、ココ!って書いてあるところ、ハイ注目(=^・^=)
余命5、4、3、2までは、余命(GR1)>1ですよね。
そこで、余命>1、つまり余命2日までだったら、
ループで繰り返すという命令にしました。
JPLで、1と比べてPLUSだったらLOOPへジャンプしています。

カウントダウンして、余命が1日になったらループを抜けます。

で、最後、笑ぅせぇるすまんの喪黒福造風に、
「ど~~~~~ん」と表示されます。

では、プログラムです。

TEST START
RPUSH

OUT NOTE,LEN
OUT MOJI1,LEN1
IN NAME,LEN2
OUT NAME,LEN2
LAD GR1,5
OUT JYUMYO,LEN3

LOOP LD GR2,=’0′
ADDA GR2,GR1
ST GR2,DAYS
OUT DAYS,LEN4
SUBA GR1,=1
CPA GR1,=1
JPL LOOP

OUT DAY1,LEN5
OUT DAY0,LEN6
RPOP
RET

NOTE DC ‘DEATH NOTE’
LEN DC 10
MOJI1 DC ‘YATSUNO NA HA?’
LEN1 DC 14
NAME DS 20
LEN2 DS 1
JYUMYO DC ‘NO YOMEI HA’
LEN3 DC 11
DAYS DC ‘ ‘
DAY2 DC ‘days’
LEN4 DC 5
DAY1 DC ‘1-DAY!!’
LEN5 DC 7
DAY0 DC ‘DooooooooN!!!’
LEN6 DC 13

END

お疲れ様でした。

関連記事:アロマでゴキブリを追い出せ!!

CASL2のおススメ本です。

基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
これからプログラミングを始める方へ