この記事では、アセンブラ言語で「多重ループ」を使った簡単なドット絵(市松模様)が学べます。
また、アセンブラの本の紹介もしています。
<<関連記事>>
基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
令和2年度(令和3年1月)合格報告
2020年からの基本情報技術者試験は、言語とアルゴリズムの配点が高くなりました。
なので、プログラミング未経験の事務員の私は、非常に焦っていましたが、無事合格できました。
学習中のアウトプットを少し編集してお届けしております。
COMET2のアセンブラのCASL2で、
簡単なドット絵を作ってみたくて、
市松模様を作りました。
もう少し私の勉強が進んだら、凝ったイラストが
書けるかもですが、今は市松模様だけでも
1時間以上かかってしまいました。
まだまだ勉強不足だな。
それで、「MOYOU」という配列に、
「8」を使って、こんな感じに出力しました。

一番外側のループで、GR1の値が偶数の時は、
「8 8 8」と模様を描き、
GR1が奇数の時は
「 8 8 」
と模様を描いていきます。
GR1の値で振り分けて、市松模様を描く
イメージ的は、こんな感じです。

GR1の値をラベルGUSUU(偶数)とKISUU(奇数)に
処理を振り分けています。
偶数か奇数かの判定は、GR1をGR4にコピーして、
右に1ビットシフトして、オーバーフローすれば
奇数、しなければ偶数にしています。
模様の「8」を格納する配列の添え字をGR2、
「8」という模様をGR3に格納、
GR5は、模様をお掃除するために、「 」(スペース)を
読み込むのに使い、掃除用の添え字をGR6にしています。
プログラムはこんな感じです。

TEST START
RPUSH
LAD GR1,0
LD GR3,=’8′
LAD GR4,0
LD GR5,=’ ‘
LOOP LAD GR2,1
LD GR4,GR1
SRL GR4,1
JOV KISUU
LAD GR2,0
GUSUU
CPA GR2,=4
JPL DASU
ST GR3,MOYOU,GR2
ADDA GR2,=2
JUMP GUSUU
KISUU
CPA GR2,=4
JPL DASU
ST GR3,MOYOU,GR2
ADDA GR2,=2
JUMP KISUU
DASU OUT MOYOU,LEN
ADDA GR1,=1
LAD GR6,0
CPA GR1,=5
JZE FIN
SOUJI
ST GR5,MOYOU,GR6
ADDA GR6,=1
CPA GR6,=5
JPL LOOP
JUMP SOUJI
FIN
RPOP
RET
LEN DC 5
MOYOU DC ‘ ‘;半角スペース5こ
END
とても、とても、
多重ループの勉強になりました。
もっと頑張って、とにかく頑張る!!
だって、何の才能もない発達障害(ASD+ADHD)だもん( ;∀;)
ご精読ありがとうございました。
この記事を書くのに勉強になった本を紹介します。
多分この記事を読んで面白かったと思われた方は、
きっとハマると思います。
◆アルゴリズム問題がちゃんと解ける本
アルゴリズム学習の定番。
アルゴリズムが苦手で何とかしたい方におススメ
◆アルゴリズムはじめの一歩完全攻略
実際に作って学べます。
Javaを使っています。
私はJava初めてでしたが、
それでも、ハッシュ関数の所までは、
どうにかついていけました。
もっと頑張ります。
◆速習言語CASL2
CASL2、何それ、テーマパークの絶叫マシーン
みたいな名前だね、ぐらいだった私でも、入門書として楽しく読めた本です。
◆プログラミング入門CASL2
入門が卒業出来たら、ガシガシ例題解いて、
演習問題を解いて、力を付けたいという時に
読む本です。