81-01-80-42みたいな全てが16進数の数字だと見た目にわからないから、数字の一部をADD 00 SUB 42みたいに意味のある言葉に置き換えたものがアセンブラ言語(アセンブリ言語)。当然CPU文化に応じてアセンブリ言語の体型は大きく異る。下図のようにアセンブラはオペランド(OPE)と(DATA)の組み合わせでCPUに命令を与える、これをマシン語に変換する作業が「アッセンブル」という。
アセンブラ(OPE) | (DATA) | マシン語 |
PUSH | BP | 55 |
MOV | BP,SP | 8B EC |
SUB | SP,4 | 83 EC 04 |
LEA | AX,[BP-2] | 8D 46 FE |
PUSH | AX | 50 |
MOV | AX,Z4 | B8 00 00 |
PUSH | AX | 50 |
このように命令とマシン語は1対1なので、できあがったマシン語のバイナリデータからアセンブリ言語に変換することも可能である。これを「逆アセンブル」する、といって出来上がった実行ファイルから元のプログラムを割り出すハッキング行為である。