【機械語】プロセッサが理解する唯一の言語
今まで何度か出てきた「命令」は、日本語や英語で書かれたものではありません。JavaやCなど一般的なプログラミング言語の文ですら、プロセッサには理解できません。

【機械語】プロセッサが理解する唯一の言語
プロセッサが理解するのは、0と1だけでできたコマンド、つまり「機械語」の命令だけです。機械語の命令は「何を、どうする」というように、「動詞+目的語」という形式です。動詞に当たる部分はオペコード、目的語に当たる部分はオペランドと呼ばれます。
機械語の仕様は命令セットアーキテクチャと呼ばれ、そこに定義された振る舞いを実現できるように電子回路が設計されています。開発元ごとに、例えばインテルにはインテルの、ARMにはARMの命令セットアーキテクチャが存在します。
多種多様な方法で人間とやりとりしているように見えるプロセッサですが、実際には人間からの指示はすべて、最後は0と1だけでできた機械語に翻訳されてから、プロセッサによって実行されているのです。
プログラミング言語と機械語の関係
プロセッサが理解する機械語プログラムというのは、例えばこういう感じです。
(図省略)
人間がこれを書くのはかなりきついです。1行が1つの命令に対応しています。
そこで、機械語の命令を人間にわかりやすく直訳した「アセンブリ言語」が作られました。1行が1つの命令に対応しています。
(図省略)
図の説明(図は省略)
- multi, add, lw, sw, jrが動詞に相当するオペコード
- $2、$16などが目的語に当たるオペランドです。
- 「swap:」はラベルと言って、命令ではありません。
今では、人間の言語に近いプログラミング言語を使うのが一般的です。これはC言語で書かれたプログラムで、これを自動翻訳すると上のアセンブリ言語、そして機械語プログラムが生成できます。
プログラミングと電子回路の橋渡し、機械語仕様と命令セットアーキテクチャ

プログラミングと電子回路の橋渡し、機械語仕様と命令セットアーキテクチャ
プログラミングの世界
- コンピュータを使うには、何をするにもプログラミングが必要。プログラムが機械語に翻訳されて動作するところまではプログラミングの世界ですが、それより下のプロセッサ電子回路まで気にする必要はありません。
電子回路の世界
- 半導体工学や電気工学を駆使して開発されるプロセッサ。命令セットアーキテクチャに定められたとおりに機械語を実行する限り、プロセッサ開発会社は電子回路を自由に設計を変更できます。