機械語(きかいご)またはマシン語とは、CPUが直接理解し実行できるプログラミング言語であり実体は2値の電気信号の集まりである。人が使う場合は数字と一部英字を使い2進数や16進数などで表現される最も低いレベルのプログラム言語といえる。かつて、コンピュータには機械語以外のプログラミング言語が存在せず、プログラムを組むと言うことは、この機械語を直接入力することである時期があった。
一概に機械語といっても、CPUの種類によって仕様が異なるので、あるプログラムが CPU Aで実行できたからといって、CPU Bでも実行できるとは限らない。CPU Cが CPU Aの仕様で書かれた機械語のプログラムを完全に実行できた場合、CPU Cは CPU Aと互換性がある、といえる。
Pentium系列とPowerPC系列の双方で動くプログラムが存在しないのは、これらのCPUの仕様に互換性が無いからである。例え同じ系列だとしても、新しい世代のCPUの為に作ったプログラムは古い世代のCPUでは動かないこともある。プログラムの互換性については、オペレーティングシステムにも関連することである。
現在は人が機械語を扱うことは、汎用機や組み込みシステムでのダンプ解析のような特殊な状況以外ではまずなく、仮に機械語でのプログラムが必要な場合は、機械語とほぼ1対1に対応するニーモニックを用いたアセンブリ言語を使うのが一般的である。
また、機械語を解読する場合には、オブジェクトファイルを読み込んで、対応するニーモニックとラベルを出力する逆アセンブラが利用される。
なおかつては、機械語の表を片手にダンプリストを眺めながら、プログラムを管理・保守することも一般的であった。(ハンドアセンブル)
| アドレス | 機械語 | CASL | ||
|---|---|---|---|---|
|
8000 800C 800D |
7001 0000 7002 0000 1210 800D 1220 800C F000 0002 7120 7110 000C 0048 0065 006C 006C 006F 0020 0077 006F 0072 006C 0064 0021 |
LEN TEXT |
OUT DC DC |
TEXT,LEN 12 'Hello world!' |
Llenguatge de màquina | Strojový kód | Maskinkode | Maschinensprache | Machine code | Lenguaje de máquina | Masinkood | Konekieli | Langage machine | שפת מכונה | Gépi kód | Linguaggio macchina | 기계어 | Machinetaal | Maskinkode | Kod maszynowy | Código de máquina | Машинный язык | Machine code | Strojový kód | Strojna koda | Maskinkod | Машинний код | Ngôn ngữ máy | 机器语言