多重ループでドット、市松模様をお絵かき(=^・^=)

この記事では、アセンブラ言語で「多重ループ」を使った簡単なドット絵(市松模様)が学べます。
また、アセンブラの本の紹介もしています。

<<関連記事>>

基本情報技術者試験トップへ
アセンブラ自作サンプルへ
アセンブラ過去問プログラムへ
令和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
入門が卒業出来たら、ガシガシ例題解いて、
演習問題を解いて、力を付けたいという時に
読む本です。

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