Az első számítógépek programozása "kézzel" történt, bizonyos huzalok állítgatásával kellett megadni az egyes memóriacímeket, utasításokat, adatokat. Az utasítások megadása gépi kóddal történt, ez kezdetben bináris, később oktális, vagy hexadecimális számok megadását jelentette. Ez nyilvánvalóan nagyon bonyolult, és hibalehetőségekkel-teli feladat volt, ezen feladatok egy részét szerették volna automatizálni.
Ennek megoldása volt a lyukkártyák használata, amiken előre megírt utasításokat adhattunk meg, viszont az egyes parancsok (01 számsorozatok) az ember természetétől még mindig idegennek hatottak, az Assembly nyelv biztosította azt, hogy ezen automatizálni kívánt utasításokat előre megírjuk egy emberközelibb formában, úgynevezett mnemonikákkal, majd ezeket a nyelv fordítóprogramja, az Assembler, a processzor számára értelmezhető gépi kóddá alakítsa.
Az assembler párja a Disassembler, amely gépi, bináris kódot képes Assembly forráskóddá alakítani.
Példák a gépi kód és a mnemonikák közti átmenetre:
Binary |
Hex |
Mnemonic |
Meaning |
01001111 |
4F |
CLRA |
Clears the A accumulator |
00110110 |
36 |
PSHA |
Saves A acc on stack |
01001101 |
4D |
TSTA |
Tests A acc for 0 |
Az Assembly nyelvek jelentősége manapság, hogy erre épül, illetve fordul a magasabb szintű nyelvek többsége, tehát pl. egy C++ kód fordítás után egy Assembly kódot fog eredményezni, ami aztán majd továbbfordul gépi kódra.