Jezik asemblera je niskorazinski način da se računalo uputi da izvrši zadatak. Računala inherentno ne razumiju upute od ljudi. Na najosnovnijoj razini, računala razumiju upute u binarnom jeziku, odnosno nizove nula i jedinica. Međutim, binarni ili strojni jezik iznimno je glomazan za programiranje. Jezik asemblera izmišljen je kao simbolički prikaz temeljnih nizova nula i jedinica.
Pretpostavimo da bismo trebali programirati igru koja nakon određene akcije igraču dodijeli pet bodova. Računalo čuva rezultat na određenom mjestu; lokacije su ili mjesto za pohranu unutar CPU-a, koje se zove “registar”, ili u nekom prostoru u memoriji. Računalo razumije lokacije i radnje niske razine koje se nazivaju operacije. Dakle, ako se rezultat čuva u registru RA, onda razumije naredbu 0101 1100 0000 0101, gdje prva četiri broja označavaju operaciju ADD, sljedeća četiri označavaju registar RA, a zadnjih osam označavaju broj 5.
Prvobitno su računala morala biti kodirana na ovaj način; strojni jezik je spor, sklon pogreškama i jednoj osobi može biti vrlo teško razumjeti što druga osoba pokušava kodirati. Tako su računalni programeri stvorili jezik u kojem se mogu bolje razumjeti operacije, lokacije, brojevi itd. Tako bi ekvivalentna naredba za gornji primjer bila ADD RA 5. U ovom hipotetičkom primjeru, mnemonika se koristi za operaciju ADD i registar RA, a broj 5 je zapisan znamenkama.
Program nazvan asembler pretvara kod asemblerskog jezika u temeljni strojni jezik. U ranijim danima, čak je i ova pretvorba trošila skupe računalne resurse, pa su kodovi operacija, ukratko, kodovi operacija, kao što je Subtract, bili skraćeni kao SUB, Copy-Move je bio skraćen kao MOV, au nekim slučajevima čak je i ADD bio skraćen na A.
Asemblerski jezik je uglavnom tanak sloj iznad strukture stroja. Stoga opkodovi, registri i cijeli jezik uvelike ovise o obitelji CPU-a. Dakle, Intel x86 obitelj ima opkodove kao što su MOV, MOVSX i MOVZX, dok IBM 360 ima operacijske kodove kao što su MVI, MVC, MVZ. Prilikom projektiranja računala ili CPU-a, dizajneri određuju strojni jezik uključujući i operacijske kodove.
Programeri su ubrzo prešli na jezike “visoke razine” kao što su COBOL, Pascal, C++ i SQL. Kompilatori pretvaraju kod napisan na tim jezicima u strojni jezik. Međutim, kod montaže se još uvijek koristi za specijalizirane procesore ili za osiguravanje brzine od igraćih konzola do sustava automobila.