こんにちは JAYLOGです。
今回は基本情報技術者試験の午後問題のアセンブラ言語対策についてお話しします。
基本情報の午後試験でアセンブラ言語を選ぶ方は、基本的にはプログラミング経験者が多いと思います。
とは言っても、未経験者でもチャレンジする人も多いと思いますのでそういう方にもわかるようにしたいと思います。

この記事を読むメリットは。。
・一見難しいように見えるアセンブラ言語が適切な対策をすればそんな難しものではないということが分かります。また、午後問題のプログラミング言語の中で得点源を目指すことが可能です。
プログラム言語の種類と難易度
基本情報技術者試験で出題されるプログラミング言語は下記の5言語になります。
- C
- COBOL
- アセンブラ
- java
- 表計算
難易度的にはアセンブラ<表計算<COBOL<C言語<javaの順に難易度が上がっていきます。
なので、他の解説サイトでも表計算 or アセンブラ推しのものが多いですね。
ただ今後IT技術者としてやっていくのであれば、個人的には表計算以外の言語を受けることも視野に入れた方ががいいと思います。
今回はアセンブラ言語にスポットを当てたいと思います。
※2020年の春期よりCOBOLが廃止、pythonの導入が決定しました。
アセンブラの傾向と特徴
傾向と特徴は下記になります。
- 比較的難易度が低い
- プログラム量が少ない
- 2進数に関する知識が必要
比較的難易度が低い
他のプログラミング言語と比較して難易度が低く点数を稼ぎやすいです。
というのは、アセンブラとして出題されるCASLIIは構文も1種類しかなく、命令コードも20種類程度と、対応するべき内容が限られているからです。
ですので必然的に理解するべき内容も限られてくるので対策しやすい言語とも言えます。
プログラム量が少ない
アセンブラはjavaのコード量に対しておおよそ50〜80%程度に抑えられております。
読む量が少なくてすみますので、時間的に余裕ができます。
また、CASLIIはサブプログラムも少ないという特徴があります。
その為、上から下に処理を読み進められますので。処理としての難易度も低くあまりプログラム経験がない方もチャレンジしやすいです。
2進数に関する知識が必要
CASLIIはコンピュータ内部に直接指令を出す言語であるので、2進数が分からないと解けない問題があります。
(コンピュータは命令やデータを2進数で管理しています。)
午前問題で2進数や6進数などの基数、基数変換の問題がありますがこれらに対応できる位の力が欲しいところです。
基数変換は慣れるまで面倒なので、試験でも飛ばしてしまう人が多いです。
この点はアセンブラの難しいところですね。
もし、アセンブラを受ける人は念のため午前の基数、基数変換の対策も一緒にやった方がいいですね。
アセンブラ試験対策
試験対策はこれが必要です。
- コンピュータの基本的な作りを知る
- プログラム構造を知る
- 命令コードを知る
- 問題演習をする
コンピュータの基本構造を知る
アセンブラはコンピュータに組み込まれて動く言語なのでコンピュータの構造を知る必要があります。
具体的には下記のようなハードウェア構成を指します。
- CPU
- メモリ
- 入出力インタフェース
- 入出力装置
またCPUのデータを格納するレジスタやメモリのプログラムをロードする場所であるアドレスについても理解した方がいいです。
プログラム構造を知る
アセンブラの構文は命令コード オペランドで構成されているとても単純なものです。
命令コードは次のテーマで記載します。オペランドとは命令する対象を表します。
オペランドとして指定できるものはCPUやメモリになります。
命令コードを知る
命令コードとは処理の内容を指示するコードです。例えば足し算するのであれば『ADDA』、CPUからメモリにコピーするなら『PUSH』となります。
この命令コードは全部で20種類程度しかないので覚えた方が早いです。
命令コードは大きく分けて2つあります。
一つ目は演算系の命令コードです。これは四則演算や比較などを指します。
CPUでおこないます。
二つ目は制御系の命令コードです。これはジャンプやサブルーチンが相当します。
構文と命令コードさえ押さえてしまえばあとは実践あるのみです。
問題演習をする
問題集を使って実際に問題を解いていきます。問題を解くときは実際にトレースしながら解いていきましょう。
時間は気にしなくていいので正確に解くよう心がけてください。
もし、アセンブラ用の本が必要であれば、プログラミング入門 CASL2-(アセンブラ)情報処理技術者テキストがオススメです。
CASLIIを扱っている中で最も丁寧な解説書です。
というのも、一行一行説明があることまた、図解やフローチャートがあるのでビジュアルとして理解しやすいです。
またトレース表もあるので、処理を読む練習も出来ます。
基本情報の勉強の仕方はこちらをご覧ください。
おすすめの書籍はこちらです。
アセンブラ受験時のコツ
アセンブラの試験時のコツについてです。
- 時間内に収まるか目を通す
- ケアレスミスしない
- ロードされる内容に注意する
時間内に収まるか目を通す
まず、事前に計画を立てた時間内に収まるか全体を見て考えましょう。
必要に応じて濃淡をつけていく必要があります。
これは、他の設問に影響を与えてしまわないようにする予防策でもあります。また、回答中でも時間には気を使う必要があるのを忘れないようにしてください。
ケアレスミスしない
問題の後半は前半の回答を元に答えていく事になります。ですので前半のケアレスミスは避けたいところです。
ケアレスミスを防ぐには落ち着いて解く事も大事ですが、下記のことにも気をつけてください。
- トレースを正確にする。
- 設問に答える為に前後の文も読む
ロードされる内容に気をつける
これは、ケアレスミスをしない為のコツの1つです。
レジスタに登録されている内容に気をつけましょう。
登録されているのは1つではなく複数の場合もあるからです。この場合プログラムで使用される回数が増えて、難しくなります。
ですので解答する時に間違えやすくなります。
最初にロードの内容に注意しましょう。
さいごに
いかがでしたでしょうか。プログラミングは慣れるのに多少の時間が必要です。
ただ、ITに従事するからには表計算以外の選択もできるようになればいいなと思い紹介させていただきました。
表計算以外のプログラムミングで点数を稼ぎやすいのが、このアセンブラになります。
サブプログラムが少ないので比較的読みやすいので、プログラムに慣れるという点でもオススメです。
また、今後ITを目指す学生さんは就活でアピールできたり、入社後のプログラム研修が少しは理解しやすくなると思います。
ほかの午後試験対策を確認したい方はこちら
■java言語
■表計算
■C言語
■アルゴリズム全般