わかりやすく 機械語 命令 とは
ここまで、計算する回路、記憶する回路、アドレスを順に見てきました。では、これらの部品に「これをして」とどうやって命じるのでしょうか。コンピュータがわかる言葉、命令に出会うときです。
命令は「何を」と「どこに」
コンピュータに出す命令は、とても単純です。
「何をせよ」と「どこに・どこを」の二つの部分があれば十分です。
たとえば「足せ、3番と7番を」という具合です。
何を(足せ) + どこを(3番と7番)。
人の言葉にすると「3番のマスと7番のマスを足して」になります。
短くてはっきりしています。
コンピュータはこうした小さな命令を一つずつ受け取って実行し、その一つひとつを命令と呼びます。
命令も0と1で書く
ところがコンピュータは、日本語も英語も知らず、0と1しかわかりません。
そこで命令も0と1で書きます。
前の部分には何をするかを、後ろの部分にはどこにするかを、決まった場所に決まった形で入れるのです。
前の4ビットは命令の種類、後ろは対象のアドレス。
私たちの目にはただの0と1の並びでも、コンピュータにとっては「3番と7番を足せ」という完璧な文です。
決まった場所を見れば、意味が正確に読み取れます。
知っている単語はほんのわずか
驚く事実が一つあります。コンピュータが知っている命令は、思ったより少ないのです。
値を持ってこい、値を保存しろ、足せ、別の場所へ飛べ、といった基本の命令がいくつかあるだけです。
この小さな単語帳で、すべてをこなします。
こうした単純な命令を数えきれないほど組み合わせて、ゲームも動画も作ります。
単語が少なくてもかまいません。
短い単語で長い物語が書けるように、このいくつかの命令を何百万回も組み合わせれば、できないことはほとんどありません。
コンピュータが命令を読むしくみ
では、コンピュータはこの0と1をどうやって読むのでしょうか。
決まった場所で区切って見るのです。
前の部分を見て「足せということだな」、後ろの部分を見て「3番と7番だな」とわかります。
こうして区切って読むことを解読と呼びます。
下の「解読する」ボタンを押すと、場所ごとの意味が現れます。
決まった場所で区切って、意味を読み取ります。
決まった場所に、決まった意味があります。
だからコンピュータは、0と1を見ただけで、何をどこにするかを正確に割り出せるのです。
約束があるからこそできることです。
命令をつなげるとプログラムになる
命令一つは小さくても、次々とつなげれば何かを成し遂げます。
「5番の値を持ってこい、6番の値を持ってこい、二つを足して7番に保存しろ」、この3行で足し算のプログラムになります。
実行ボタンを押すと、1行ずつ進みます。
3行のミニプログラム。
いま見たものが、コンピュータが働くいちばん底の層です。
私たちが使うあらゆるプログラムは、結局こうした命令が何百万個も集まってできています。
次のレッスンでは、足し算以外の引き算や比較がどこで行われるのかを見ていきます。