seegongsik
構造

わかりやすく 機械語 命令 とは

ここまで、計算する回路、記憶する回路、アドレスを順に見てきました。では、これらの部品に「これをして」とどうやって命じるのでしょうか。コンピュータがわかる言葉、命令に出会うときです。

01

命令は「何を」と「どこに」

コンピュータに出す命令は、とても単純です。
「何をせよ」と「どこに・どこを」の二つの部分があれば十分です。
たとえば「足せ、3番と7番を」という具合です。

足せ
3番 + 7番

何を(足せ) + どこを(3番と7番)。

人の言葉にすると「3番のマスと7番のマスを足して」になります。
短くてはっきりしています。
コンピュータはこうした小さな命令を一つずつ受け取って実行し、その一つひとつを命令と呼びます。

02

命令も0と1で書く

ところがコンピュータは、日本語も英語も知らず、0と1しかわかりません。
そこで命令も0と1で書きます。
前の部分には何をするかを、後ろの部分にはどこにするかを、決まった場所に決まった形で入れるのです。

何を (足せ)
0010
どこ (3番)
0011
どこ (7番)
0111

前の4ビットは命令の種類、後ろは対象のアドレス。

私たちの目にはただの0と1の並びでも、コンピュータにとっては「3番と7番を足せ」という完璧な文です。
決まった場所を見れば、意味が正確に読み取れます。

03

知っている単語はほんのわずか

驚く事実が一つあります。コンピュータが知っている命令は、思ったより少ないのです。
値を持ってこい、値を保存しろ、足せ、別の場所へ飛べ、といった基本の命令がいくつかあるだけです。
この小さな単語帳で、すべてをこなします。

もってこい
メモリの どこかのマスから 値を 取り出します
しまえ
値を メモリの どこかのマスに 入れます
たせ
二つの値を たします (加算器が はたらきます)
とべ
決まった べつの命令へ ジャンプします

こうした単純な命令を数えきれないほど組み合わせて、ゲームも動画も作ります。

単語が少なくてもかまいません。
短い単語で長い物語が書けるように、このいくつかの命令を何百万回も組み合わせれば、できないことはほとんどありません。

04

コンピュータが命令を読むしくみ

では、コンピュータはこの0と1をどうやって読むのでしょうか。
決まった場所で区切って見るのです。
前の部分を見て「足せということだな」、後ろの部分を見て「3番と7番だな」とわかります。
こうして区切って読むことを解読と呼びます。
下の「解読する」ボタンを押すと、場所ごとの意味が現れます。

0010 0011 0111
何を
足せ
どこ
3番
どこ
7番

決まった場所で区切って、意味を読み取ります。

決まった場所に、決まった意味があります。
だからコンピュータは、0と1を見ただけで、何をどこにするかを正確に割り出せるのです。
約束があるからこそできることです。

05

命令をつなげるとプログラムになる

命令一つは小さくても、次々とつなげれば何かを成し遂げます。
「5番の値を持ってこい、6番の値を持ってこい、二つを足して7番に保存しろ」、この3行で足し算のプログラムになります。
実行ボタンを押すと、1行ずつ進みます。

1持ってこい 5番5番の値(10)を取り出す
2持ってこい 6番6番の値(7)を取り出す
3足して7番に保存しろ10 + 7 = 17
5番
10
6番
7
7番
0
実行を押すと1行ずつ進みます

3行のミニプログラム。

いま見たものが、コンピュータが働くいちばん底の層です。
私たちが使うあらゆるプログラムは、結局こうした命令が何百万個も集まってできています。
次のレッスンでは、足し算以外の引き算や比較がどこで行われるのかを見ていきます。

一言でいうと命令とは、「何をどこに」を0と1で書いた、機械がわかるいちばん小さな言葉です。わずかな基本命令を次々とつなげたもの、それがプログラムなのです。
← 構造
このページがお役に立ったなら支援する