今回こちらの記事で解説するのは、アセンブラ言語をマスターするための”準備と勉強”についてです。
以前当サイトでアセンブラ言語の”コツ”を解説しましたが、

アセンブラ言語の場合、本当に重要なのは準備と勉強です。
だからこそ今回解説するアセンブラ言語の”準備と勉強”で、万全の用意をして試験に挑んでください。
目次
アセンブラ言語は、命令文が少なく、できる事が限られている言語であるため、
他のプログラムより内容が単純です。
しかし少ない命令文を駆使する形でプログラムが作られているため、プログラムを読む受験者も、アセンブラの基礎をしっかりと把握しておく必要があります。
そのため覚えるべき命令文や構文といった基礎的な内容は、完璧にして試験に挑みましょう。

アセンブラって教えられる人が減っている分野だよな。簡単で覚えやすいから、内容を説明できる人は一定数いるとは思うが…

試験対策という観点になると、内容が簡単なだけに、本腰を入れて教えてくれる人は少ないかもね

ただ内容が簡単と言っても、油断していい問題じゃない。むしろ配点が高く設定されているから、他の分野より念入りに勉強した方が良いと思うぞ
アセンブラの問題を解くための準備と勉強
・命令文は予め完全に把握しておく

アセンブラの問題を解くための大前提として、アセンブラで使う命令文は一通り把握しておく必要があります。
もしかしたら人によっては、

アセンブラなんて余裕だから
問題用紙に書いてある仕様書を読めば良いや
と考える人もいます。
もちろんアセンブラの命令文は数も他の言語に比べて少なく、覚えるべき内容も非常に簡単です。
ただ私は、アセンブラの命令文を仕様書で確認するぐらいならば、他の問題を解く時間の方が重要だと考えます。
アセンブラの場合、命令文を覚えるだけなら、ものの数時間で済む内容であるため、アセンブラの命令文はできる限り覚えてから試験に臨むようにしましょう。
ちなみに試験のアセンブラ言語で必要になる命令文は、
たったの28語。
しかも似たような内容が多いため、覚えるだけなら数時間も掛からない程となっています。
だからこそアセンブラ言語で試験に挑む場合は、命令文の把握を完ぺきにしておいてください。

点取り問題のアセンブラで、試験時間を浪費して、点数も低いなんて状況は、正直言ってかなり合格から遠い状況だよ

そんな事態にならないためにも、命令文ぐらいは覚えていった方が無難だぞ
・フラグレジスタの内容を把握しておく

アセンブラには、フラグレジスタという他のプログラミング言語ではあまり見ない、少し特殊な要素があります。
先に説明した命令文と同じくアセンブラの基礎とも呼べる要素であり、処理自体もレジスタに入っている内容も非常に単純です。
ただCPAといった比較演算命令やJPLといった分岐命令を使用する際には、ほぼ確実に使用(参照)する重要な要素でもあります。
またアセンブラの問題では、
ほぼ確実にフラグレジスタの内容が解答に関わってくるため、
フラグレジスタの処理を必ず理解しておきましょう。
特に初心者や未経験者の人は、このフラグレジスタの処理や内容で混乱する可能性があるため、できる限り内容を把握しておくようにしてください。

フラグレジスタには、「OF」「SF」「ZF」といった3つの要素があるね

それぞれ演算命令の結果によって、設定される値が違う

もちろん参照するレジスタによって、処理が変わってくるから、しっかりと内容を把握しておく必要があるね
・一文字違いの命令文に注意

アセンブラの命令文には、似たような名前が沢山あります。
演算命令のADDAやADDL、比較演算命令のCPAやCPLといった具合です。
どの命令文もローマ字1文字違いではありますが、たった1文字の違いで、処理内容が大きく違ってくるため注意が必要と言えるでしょう。
また試験においても、AやLといった一文字違いの内容を狙い撃ちにしたような問題が出題されます。
例えば、平成22年春期に出題された問題の中では、以下のような選択肢が出されました。

出典:基本情報技術者試験 平成22年春期 午後試験 問12より抜粋
上記のような選択肢が出題された場合、アセンブラに使われている命令文を把握していないと、
選択肢を絞り込むことすら困難と言えるでしょう。

個人的に気をつけるべき命令文は、シフト演算命令のSLAやSLLだな。試験でもよく出題される命令文だ

算術や論理が絡む命令文は、解答を入れる前に、念には念を入れて、仕様書で命令文を確認した方が良いかもね。

試験時間を浪費するのも嫌だが、問題を間違えるのはもっと嫌だからな
・命令文は複数の書き方に慣れておく

アセンブラにおいては、命令文における複数の書き方についても慣れておく必要があります。
例えば、データを読み込む命令のLD。
以下のようなプログラムを書いたとすると、


書き方によって、処理の内容や参照する内容が違うため注意が必要です。
ちなみに仕様書を見ても、一目見ただけでは理解するのが難しいパターンが多いため、できる限り複数の書き方に慣れておいた方が良いと言えるでしょう。

プログラムというのは、作る人の数だけ色々な書き方があると思った方が良いね

だからこそアセンブラを勉強する時も、シミュレータを使い実践してみた方が良い。

以下のリンクにシミュレータの導入についての解説をしているから、気になる人はチェックしてみてね

・ビット計算の学習は完璧に

アセンブラの問題を解く上でビット計算の勉強は必須です。
理由は、アセンブラというプログラミング言語を動かす上で、ビット計算が欠かせない要素となっているからです。
計算をするにもビットの知識が必要、数字列を数値に変えるのにもビットの知識が必要、
アセンブラの場合、何をするにしてもビットの知識が必要になります。
またビットの知識に関しては、
問題用紙に載っている仕様書だけで内容を把握するのは至難の業であるため、必ず予習をして試験に挑むようにしましょう。

アセンブラでは、ビット列を使った計算が頻出するからね。絶対にビットの知識が必要だよ

とは言っても、ビットの知識に関しては、午前試験で出題されるレベルの知識を持っておけば十分だ。

ちなみに以下のページでは、アセンブラと関係性が深い、ハードウェアの問題を解くコツや問題傾向を解説しているよ


ビット計算を練習するにはもってこいな分野だから、是非とも合わせて勉強してくれ
・「ビット反転」と「ビットシフト」に要警戒

アセンブラの問題を解く上で、絶対に避けられない処理があります。
それが「ビット反転」と「ビットシフト」です。
「ビット反転」と「ビットシフト」は、アセンブラにおいて、複雑な処理をやろうと思ったら、必ず登場する処理です。
そのため基本情報技術者試験にて、アセンブラ言語を選ぶならば、必ず学ぶべき内容となっています。
ちなみに「ビット反転」と「ビットシフト」の処理は、以下のようなパターンがあります。
またビット反転(その1)におけるGR1を利用した処理は、ビットマスクと言ってビット反転には欠かせない要素です。



「ビット反転」と「ビットシフト」と共に、必ず覚えておくようにしましょう。

アセンブラに慣れていない人が躓きやすいのが、今回解説した「ビット反転」と「ビットシフト」、そして「ビットマスク」だよな

どの内容も試験において高頻度で出題されるから、よく勉強しておいてね
・文字の符号表を軽く頭に入れておく

アセンブラでは、数字と数値の扱いが違うという点をご存知でしょうか?
数字の場合は文字として、数値の場合は値として、アセンブラの場合は扱いが違います。
また基本情報技術者試験におけるアセンブラの問題では、数字を数値に変換するような問題が出題されます。
そしてその時に使われるのが、文字の符号表です。
文字の符号表を使った数値変換には、
GR0には、’1’が入っていると想定
といった方法を用います。
この方法は、数字の’0’のアドレスが#0030という点に着目している方法です。
つまり、
‘0’ = #0030
‘1’ = #0031
#0031 – #0030 = 1
という形になっています。
ちなみにこの数字を数値に変換する方法は、頻繁に出題されるロジックではありません。
ただ上記のロジックをその場で読み解くのは、それなりに時間が掛かるため原理だけでも覚えておくようにしましょう。

数字を数値に変換するのは、アセンブラでよくやる処理だよね

数字を数値に変換する方法は他にも方法はあるぞ。例えば、AND GR0,= #000Fのような感じだな

ビット列の下位4ビットに着目した方法だね

そうだ。もしかしたら試験で出題されるかも知れないから覚えておくと良いぞ
・過去問題の復習がかなり有効

アセンブラは、命令文が少なく、できる事が限られている言語です。
そのため試験に出題される問題も、ビット列の変換や操作、日数割出や単純な計算といった簡単な問題に偏りがちになっています。
つまりアセンブラは似たような問題が出題されやすいため、過去問題の復習がかなり有効です。
アセンブラの問題に慣れるという点でも有効であるため、是非とも過去問題をやり込んで点数UPに勤めてください。

アセンブラにおいても、過去問題の復習は有効な勉強方法なんだね

ただアセンブラにおいて過去問題の復習をする際には、命令文を把握しておく、ビットを使った計算を把握しておく、といったポイントが必要になる。

だからいきなり過去問題の復習をしたところで、効果は薄いってことだね

アセンブラの問題が他の言語に比べて簡単だとしても、気と手を抜くのは間違いだぞ!
まとめ
今回は基本情報技術者試験におけるアセンブラ言語の”勉強と準備”について解説しました。
- 大前提として命令文の内容は完全に把握しておく
- フラグレジスタの内容を把握しておく
- 一文字違いの命令文に注意
- 命令文は複数の書き方に慣れておく
- ビット計算の学習は完璧に
- 最も注意すべき処理は「ビット反転」と「ビットシフト」
- 文字の符号表を軽くでも良いので把握しておく
- 過去問題の復習がかなり有効
アセンブラ言語という言語は、誰にでも習得可能な簡単な言語です。
ただ簡単なだけに、命令文やビット計算といった基礎的な要素を完璧にしておかないと、せっかくの点取り問題を取り逃すことにもなるため注意してください。
ちなみに冒頭でもリンクを貼りましたが、当サイトでは、アセンブラの問題を答える”コツ”についても解説しています。

是非とも今回解説した”勉強と準備”と一緒に参考にして、アセンブラで満点を狙ってください。
また以下の参考書は、種類が少ないアセンブラの参考書の中でも、丁寧で分かりやすい説明が特長となっているおすすめの参考書です。

アセンブラの基礎から本番を模した問題まで、一通りの内容が揃っている参考書となっています。
コメント