Kokoonpanokieli on matalan tason tapa ohjata tietokonetta suorittamaan tehtävä. Tietokoneet eivät luonnostaan ymmärrä ihmisten ohjeita. Perustasolla tietokoneet ymmärtävät binäärikieliset ohjeet eli nollat ja ykköset. Binaarikieli tai konekieli on kuitenkin erittäin hankala ohjelmoida. Kokoonpanokieli keksittiin symbolisena esityksenä nolla- ja ykkössekvenssien taustalla.
Oletetaan, että olisimme ohjelmoineet pelin, joka tietyn toiminnan jälkeen antaa pelaajalle viisi pistettä. Tietokone pitää pisteet tietyssä paikassa; sijainnit ovat joko keskusyksikön tallennuspaikka, jota kutsutaan ”rekisteriksi”, tai jossain muistin tilassa. Tietokone ymmärtää sijainnit ja matalan tason toiminnot, joita kutsutaan operaatioiksi. Joten jos pisteet pidetään rekisterissä RA, se ymmärtää komennon 0101 1100 0000 0101, jossa neljä ensimmäistä numeroa osoittavat toiminnon ADD, seuraavat neljä osoittavat rekisterin RA ja viimeiset kahdeksan osoittavat numeroa 5.
Alun perin tietokoneet piti koodata tällä tavalla; konekieli on hidas, altis virheille, ja yhden henkilön voi olla hyvin vaikea ymmärtää, mitä toinen yrittää koodaa. Joten tietokoneohjelmoijat loivat kielen, jolla toiminnot, sijainnit, numerot jne. Voidaan ymmärtää paremmin. Näin ollen yllä olevan esimerkin vastaava komento olisi ADD RA 5. Tässä hypoteettisessa esimerkissä ADM -toiminnossa ja rekisterissä RA käytetään mnemoniikkaa ja numero 5 kirjoitetaan numeroina.
Ohjelma nimeltä assembler muuntaa kokoonpanokielen koodin koneen kieleksi. Aiemmin jopa tämä muuntaminen käytti kalliita laskentaresursseja, joten operaatiokoodit, lyhyesti opcodit, kuten Subtract, lyhennettiin SUB: ksi, Copy-Move lyhennettiin MOV: ksi ja joissakin tapauksissa jopa ADD lyhennettiin A: ksi.
Kokoonpanokieli on enimmäkseen ohut kerros koneen rakenteen yläpuolella. Siksi opcodes, rekisterit ja koko kieli ovat suuresti riippuvaisia CPU -perheestä. Joten Intel x86 -perheessä on opcodeja, kuten MOV, MOVSX ja MOVZX, kun taas IBM 360: ssa on opcodeja, kuten MVI, MVC, MVZ. Suunnittelijat määrittävät tietokoneen tai suorittimen suunnittelussa koneen kielen, mukaan lukien opcodes.
Ohjelmoijat siirtyivät pian ”korkean tason” kielille, kuten COBOL, Pascal, C ++ ja SQL. Kääntäjät muuttavat näillä kielillä kirjoitetun koodin konekieleksi. Kokoonpanokoodia käytetään kuitenkin edelleen erikoistuneisiin suorittimiin tai nopeuden varmistamiseen pelikonsoleista autojärjestelmiin.