🧠 CPUが実際に実行するコードとは?~機械語とアセンブリの世界~

私たちが普段使っているパソコンやスマートフォンの中では、さまざまなアプリやサービスが動いています。
その“最終的な実行”を担っているのがCPU(中央演算処理装置)です。では、そのCPUが実際に読み取って動かす「コード」とは、一体どのようなものでしょうか?


🔧 CPUが理解できる言語:機械語(マシンコード)

CPUが直接理解して実行できるコードは、「機械語」と呼ばれます。これは0と1の並び、つまり2進数で構成された命令です。

例:

 
10110000 01100001

上記は「レジスタに値を読み込む」といった命令の一例です。人間にとっては読みにくいですが、CPUはこのようなビット列を直接読み取って、命令を解釈・実行します。


📝 機械語はどうやって書く?→ アセンブリ言語

人間が直接機械語を書くのは困難なので、もう少し分かりやすい形で表したものが「アセンブリ言語」です。アセンブリはCPUアーキテクチャごとに設計された低水準言語で、各命令が機械語と1対1で対応しています。

アセンブリの例(x86の場合):

asm
MOV AL, 61h ; ALレジスタに 61 (16進数) を代入

このような命令をアセンブラという専用のソフトで変換(アセンブル)すると、CPUが理解できる機械語になります。


💡 プログラムの実行の流れ

現代のソフトウェアは、高級言語(C, Python, Javaなど)で開発されますが、最終的には以下のような流れでCPUに届きます:

高級言語(Cなど)
(コンパイラ)
アセンブリ言語
↓(アセンブラ)
機械語(バイナリ)
CPUが実行)

つまり、どんなに複雑なアプリであっても、CPUが実行するのは0と1の単純な命令列なのです。


📦 機械語はファイルでは「バイナリ形式」で保存

ソフトウェアをインストールしたときに見かける .exe.bin ファイル。これらには機械語がバイナリ形式で詰め込まれており、OSがCPUに渡すことで実行されます。


✅ まとめ

  • CPUが直接実行するのは「機械語(0と1の命令列)」

  • 機械語は人間に読みにくいため、アセンブリ言語が用意されている

  • 高級言語で書かれたコードも、最終的には機械語に変換されてCPUに届く

  • ソフトウェアはバイナリファイルとして、機械語の形で保存されている


コンピュータの基礎を知ると、ソフトウェアやハードウェアへの理解がぐっと深まります。これからプログラミングを学ぶ方にも、ぜひ「CPUは何を読んでいるか?」を意識してみてください!