アセンブリ言語
プロセッサは機械語プログラムを直接読み取り実行する。しかし人間にとってビット列は直観的に理解しづらいため、機械語コーディングは容易でない。これを解決するために、ビット列に対応する文字列命令(ニーモニック)を利用するプログラミング言語の総称がアセンブリ言語である。
アセンブリ言語を用いることで、機械語相当の低水準なコードをより直観的に記述できる。高度なアセンブリ言語ではアセンブラに対する命令(疑似命令)やマクロを用いて、より抽象的な記述が可能である。パイプライン処理などを最適化するために命令順序を入れ替えたり、ラベルの位置関係によってアドレッシングモードを最適化するアセンブラもあり、必ずしもソーステキストの記述とアセンブルの結果が直接対応するとは限らない。
アセンブリ言語は機械語と強く結びついているため、各プロセッサ向けに仕様の異なる様々な(具体的な)アセンブリ言語が存在する(「アセンブリ言語」は総称である)。同じ命令セットに対しても複数のアセンブリ言語が存在しうる(例: GNUアセンブラのgasのインテルプロセッサ用)。
アセンブリ言語の基本文法として、1つの命令は1つのニーモニックと0個以上のオペランドからなる。プログラム全体はニーモニック/オペランド列、ディレクティブや擬似命令と呼ばれるメタな文、コメント、データで構成されている。通常の文はオペコードのニーモニックで始まり、パラメータ(データ、引数)のリストがそれに続く。多くのアセンブリ言語はオペランドのアドレスや定数をラベル・シンボルで記述できハードコーディングを避けられる。