CPUが実行できる命令の種類を「命令セット」と言います。命令セットを知ると,CPUの実際の動作が見え,コンピュータの理解がぐっと深まります。今回も,なんでキャットがTデスクと一緒にアセンブラの世界をご案内しましょう。
矢沢 久雄/グレープシティ
なんでキャット(以下,キャット):TデスクはC言語とJavaができるそうだけど,マスターするのにどのくらい時間がかかったのかニャ?
Tデスク:だらだら勉強したので,C言語は半年,Javaは1年ほどかかりました。
キャット:それじゃあもしも集中して勉強したら,何日で文法をマスターできると思うかニャ?
Tデスク:教材を見ながら1日8時間勉強するとして,C言語なら7日間,Javaなら14日間くらいかかるかな。
キャット:ふ~ん,ずいぶん文法が多いんだ。
Tデスク:キャットさんの得意なアセンブラをマスターするには,どのくらい時間がかかりますか?
キャット:そうだニャ~,文法だけなら10秒もあれば十分だニャ。
Tデスク:ええっ,本当ですか!
キャット:文法が,単純なんだ。英語の命令文と同じ「命令 目的語」という構文だけしかない(図1)。命令は「~せよ」という動作を表し,目的語は「…を」という動作の対象を表すニャ。
図1●アセンブラの構文は基本的に1つしかない アセンブラの文法はCやJavaに比べて単純で分かりやすい |
Tデスク:はぁ(あ然)。
キャット:それにCOMETIIというCPUなら,命令の種類が全部で28個しかないので,がんばって勉強すれば1日でマスターできるニャ。
Tデスク:たった28個の命令だけでプログラムが作れるのですか?
キャット:もちろんだニャ。それに,命令の種類を知ればCPUの生の動作の種類が見え,コンピュータの正体をつかんだような嬉しい気分になれるはずだニャ。
Tデスク:ぜひ,教えてください(今回もカツオ節を差し出す)!
キャット:OK! OK! それじゃあ,28個の命令を一気に説明するニャ。
命令は5大装置の動作に相当
コンピュータの構成要素は,入力装置,演算装置,出力装置,記憶装置,制御装置の5つに分類でき,これらを「コンピュータの5大装置」と呼ぶ。具体的には,CPUが演算装置と制御装置,メモリが記憶装置,そしてI/Oが入力装置と出力装置の役割を担っている。
コンピュータの5大装置は,コンピュータの動作の種類がデータの入力,データの演算,データの出力,データやプログラムの記憶,そしてプログラムの流れの制御に分類できることを意味している。図2は,個々の装置の関係を示したものだ。
図2●コンピュータの5大装置 コンピュータには,入力,記憶,演算,出力,制御という5つの動作を行う各装置がある。太い矢印はデータの流れを表し,破線の矢印は制御していること表す |
アセンブラは,コンピュータの内部の動作をそのまま記述するプログラミング言語だ。したがって,アセンブラで使われる命令の種類は,コンピュータの5大装置にあわせて5種類に分類することができる。この連載で取り上げているCOMETIIという仮想のCPUには28種類の命令があり,表1のように分類できる。なお,「記憶」という意味合いの命令はない。メモリに書き込む(出力する)ST命令が,メモリへの記憶も意味しているからだ。
表1●COMMETIIの命令セットの分類 命令の数は28ある。コンピュータの5大装置に合わせて命令の種類を分類した |