01 アセンブラCASL2対応のシミュレータ―とおススメ本と簡単なサンプルプログラム

この記事では、基本情報技術者試験(以下FE)のアセンブラ言語習得に欠かせない「CASLⅡ対応のオススメのシミュレーター」の紹介私の合格に直結した本の紹介をしております。

お急ぎの方には、先にこちらのWebシミュレーターと、合格に直結した本を紹介致します。

「プログラミング入門CASL2」浅井宗海先生 実教出版

2020年からのFEは、言語とアルゴリズムの配点が高くなりました。

その為、プログラミング未経験の事務職の私は非常に焦っていましたが、無事に一発で合格できました。

勉強は、「人に教えるフリをする【アウトプット】で身に付く」と聞いたことがあり、FEの学習中に、自分の理解を深めながらアウトプットとして、簡単なサンプルのプログラムを作ってそれを公開しておりました。

(「推し」がいる方は、その推しにプログラミング学習やFEで覚えたことを教えるフリをして勉強すると、更に楽しく勉強出来ると思います。)

合格後の今も、今後FE取得を目指す方のお役に立てればと思い、勉強中に書いたアセンブラの記事を加筆修正しております。

最初はプログラミング未経験で仕事でExcelを使うため、表計算で受験する予定でした。

しかし、表計算の学習モチベーションが上がらず、その上アルゴリズムも全く理解が出来なくて、悶々としていましたが、思い切って言語をアセンブラに切り替えた所、アセンブラの学習を通して、併せてアルゴリズムも理解することが出来ました。

関連記事:
基本情報技術者試験、プログラミング未経験者はアセンブラと表計算どっち!?

FEのアセンブラではCASLⅡ対応の学習環境で、シミュレータ―というもの
(Javaなどで言うエディター)を手に入れて、実際に動かしながら学ぶと、より良く理解出来ました。

私のような入門者でも使いやすいシミュレータ―はこちらです。

http://www.chiba-fjb.ac.jp/fjb_labo/casl/casl2.cgi

こちらのWEB版では、簡単な計算が出来ますが、INとOUTの命令が実行できないので、「ダウンロード」から入手しました。

ただ、ダウンロードなどの学習環境の構築の時間が惜しいと言う方は、こちらのWebシミュレーターの方が使いやすいかもしれません。

CASLシミュレータ (CASL II 対応)

この記事では、上記のWebシミュレーターを使って、簡単なお買い物を例にした、サンプルプログラムを掲載いたします。

ここから、アセンブラの簡単なサンプルを掲載致します!!

「Amazonの段ボール箱」と「楽天の段ボール箱」の2つの箱があったとします。
Amazonの箱を汎用レジスタGR0に当てて、楽天の箱をGR1に当てるイメージです。

AmazonのGR0に「消毒スプレー3本」入れます。
楽天のGR1に「消毒スプレー4本」入れます。
合計で7本です。

(新型コロナウイルスが2類から5類に下がった現代でも、消毒スプレーは欠かせませんので、サンプルプログラムの例と致しました。)

プログラムに「TEST」と言うラベルを付けて、開始のスタートとRET命令と終了のENDを用意します。
RETとは何かについては、こちらの外部記事をご覧下さい。
RPUSHとRPOPについてはこちらの外部記事をご覧下さい。

コードを書く注意点として、全角スペースは入れないようにお気を付けて下さい。
エラーの原因になります。
(これは他の言語でVSCodeなどのエディタでも良く言われます。)

ラベルのTESTは左端に書きます。
それ以降、左端に書くと命令ではなくラベルと判断されてしまいますので、そこもお気をつけ下さい。

最初は気をつけるところが沢山あって、大変だと思われるかも知れませんが、慣れれば大丈夫ですので、どうかご安心なさって下さい。

上記のシミュレーターでは、小文字で命令を書いても動作しましたが、FEの過去問は大文字になっておりますので、キーボードでShiftを押さなくても大文字が打てるようにした方が、私が学習していた時は混乱が減ってスムーズに学習が進みました。

TEST START
 RPUSH


 RPOP
 RET

 END

シミュレーターの画像です。

この、RPUSHからRPOPまでの間に、 Amazonと楽天の消毒スプレーを足した合計が7本になる命令を書いていきます。

今は細かいことは抜きにして、

Amazonの箱に消毒液が3本入っていて、
楽天の箱には4本入っていて、
楽天の消毒スプレーを全部Amazonの箱に移して、そのAmazonの箱に合計7本の消毒スプレーが入っているイメージの命令です。

コメントは「;」のセミコロンを使います。

TEST START
 RPUSH

 LD GR0,=3 ;GR0にAmazonの消毒液3本

 LD GR1,=4 ;GR1に楽天の消毒液4本

 ADDA GR0,GR1 ;全ての消毒液をAmazonに移す

 RPOP
 RET

 END

ソースの入力が終わりました。
ソースの枠の右下を斜め下方向にドラッグすると、ソースの枠が広がります。

このプログラムを実行するには、「アセンブル」ボタンを押して、ステップごとに実行するには、下記のボタンを押します。

まず、Amazonの箱GR0に「3」が入りました。

更にステップ実行していくと・・・

楽天の箱GR1に「4」が入りました。

加算命令ADDAが実行して、Amazonの箱に7本全部が入りました。

ここまでご精読頂き、言語をアセンブラにしよう!と決めた方にとっては、下記の本がかなりオススメで、私の合格に直結した本です。

「プログラミング入門CASL2」浅井宗海先生 実教出版

お疲れ様でした。
ここで一旦、写真で休憩を挟みます。

OLYMPUS DIGITAL CAMERA

代々木公園で撮影した薔薇です。


ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。

上手く動いたら、値などを好きなように変えて動かして見て下さい。

この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!

TEST START
 RPUSH

;GR0にAmazonの消毒液3本

;GR1に楽天の消毒液4本

;全ての消毒液をAmazonに移す

 RPOP
 RET

 END

皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・

代々木公園で撮影した紫陽花です。

仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!

こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。

※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪

写真素材素材【写真AC】

 

最後までご精読、誠にありがとうございました!!

自己紹介


アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ

アセンブラ過去問プログラムへ


プログラミング未経験者はアセンブラと表計算どっち!?



基本情報技術者試験トップへ

午前免除試験

午後試験のオススメ本

スコアレポート