この記事では、基本情報技術者試験(以下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シミュレーターの方が使いやすいかもしれません。
この記事では、上記の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」浅井宗海先生 実教出版
お疲れ様でした。
ここで一旦、写真で休憩を挟みます。
代々木公園で撮影した薔薇です。
ここから、復習&アウトプットタイムです!!
下記のコードをシミュレーターにコピペして、コメントを頼りに先ほどのコードを覚えているか入力して見て下さい。
上手く動いたら、値などを好きなように変えて動かして見て下さい。
この復習は学習直後は勿論、明日など少し日を開けて行うと、更に効果的です!!
TEST START
RPUSH
;GR0にAmazonの消毒液3本
;GR1に楽天の消毒液4本
;全ての消毒液をAmazonに移す
RPOP
RET
END
皆さま、大変お疲れ様でした。
この記事最後のブレイクタイムPhotoは・・・
代々木公園で撮影した紫陽花です。
仕事や勉強のリフレッシュに、趣味で写真を撮っておりますので、宜しかったら フォトストック写真ACさん の投稿もご覧頂けますと、大変嬉しい限りでございます!!
こちら、無料の「ダウンロードユーザー」に登録して頂けると、無料で写真のダウンロードが可能になります。
※ 先にGoogleアカウントを作成して頂くと、登録が ラク です♪
最後までご精読、誠にありがとうございました!!
自己紹介
アセンブラ自作サンプルとFE出題範囲のアリゴリズムへ
アセンブラ過去問プログラムへ
プログラミング未経験者はアセンブラと表計算どっち!?
基本情報技術者試験トップへ
午前免除試験
午後試験のオススメ本
スコアレポート