アセンブリ言語は,機械語を人間にわかりやすい形式で記述するためのプログラミング言語です。

 機械語は,コンピュータ上では電圧の高低の組み合わせでCPUに伝えられます。これをプログラムとして記述する際には,電圧が低い状態を0,高い状態を1とする2進数のビット・パターンで(あるいは2進数を4ケタごとにひとまとめにした16進数で)表現します。

 アセンブリ言語は,数値で表される機械語の命令に対して,その動作に即した名前を付け,その名前を使ってプログラムを記述できるようにしたプログラミング言語です。

 機械語の命令一つひとつに付けられた名前を「ニーモニック(mnemonic)」と呼びます。ニーモニックは,動作の種類を表す「オペコード(opcode,あるいはoperation code)」と,オペコードで示される動作の対象を表す「オペランド(operand)」で構成します。

 別個の機械語(数値)で表現する命令であっても,動作が似た命令には共通のオペコードを割り振って,覚えやすくしてあります。例えば,Intelのx86系のCPUでは,データを移動する(move)命令は,移動対象にかかわらず基本的にmovというオペコードで記述できます。

 アセンブリ言語のプログラムをCPUが直接実行することはできませんが,すべてのニーモニックには,直接対応する機械語の表現があり,機械的な作業だけで変換することができます。この作業を「アセンブル(assemble)」と呼びます。

 古くはアセンブルを手作業で行っていました。現在は「アセンブラ(assembler)」と呼ぶツールで自動的に変換できます。また,高級言語の処理系には,ソースコードの中にアセンブリ言語のニーモニックを直接記述できる「インライン・アセンブラ」と呼ぶ機能を備えるものもあります。

 ニーモニックから機械語への変換とは逆に,機械語のプログラムをアセンブリ言語で記述されたプログラムに変換する「逆アセンブラ」と呼ぶプログラムも作られています。