CPUが実行できる命令の種類を「命令セット」と言います。命令セットを知ると,CPUの実際の動作が見え,コンピュータの理解がぐっと深まります。今回も,なんでキャットがTデスクと一緒にアセンブラの世界をご案内しましょう。

矢沢 久雄グレープシティ

なんでキャット(以下,キャット):TデスクはC言語とJavaができるそうだけど,マスターするのにどのくらい時間がかかったのかニャ?

Tデスク:だらだら勉強したので,C言語は半年,Javaは1年ほどかかりました。

キャット:それじゃあもしも集中して勉強したら,何日で文法をマスターできると思うかニャ?

Tデスク:教材を見ながら1日8時間勉強するとして,C言語なら7日間,Javaなら14日間くらいかかるかな。

キャット:ふ~ん,ずいぶん文法が多いんだ。

Tデスク:キャットさんの得意なアセンブラをマスターするには,どのくらい時間がかかりますか?

キャット:そうだニャ~,文法だけなら10秒もあれば十分だニャ。

Tデスク:ええっ,本当ですか!

キャット:文法が,単純なんだ。英語の命令文と同じ「命令 目的語」という構文だけしかない(図1)。命令は「~せよ」という動作を表し,目的語は「…を」という動作の対象を表すニャ。

図1●アセンブラの構文は基本的に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大装置
図2●コンピュータの5大装置
コンピュータには,入力,記憶,演算,出力,制御という5つの動作を行う各装置がある。太い矢印はデータの流れを表し,破線の矢印は制御していること表す

 アセンブラは,コンピュータの内部の動作をそのまま記述するプログラミング言語だ。したがって,アセンブラで使われる命令の種類は,コンピュータの5大装置にあわせて5種類に分類することができる。この連載で取り上げているCOMETIIという仮想のCPUには28種類の命令があり,表1のように分類できる。なお,「記憶」という意味合いの命令はない。メモリに書き込む(出力する)ST命令が,メモリへの記憶も意味しているからだ。

表1●COMMETIIの命令セットの分類
表1●COMMETIIの命令セットの分類
命令の数は28ある。コンピュータの5大装置に合わせて命令の種類を分類した