Assembly (usein virheellisesti assembler) on tietokoneen ohjelmointikieli, joka koostuu symbolisesta vastineesta tietylle konekielelle.[1] Toinen nimitys assembly-kielelle on symbolinen konekieli.[2] Eri suoritintyyppejä käyttäville tietokoneille tarvitaan eri assembly-kieli.[1]
Assembly on matalan tason kieli, jota sanotaan myös toisen sukupolven ohjelmointikieleksi.[3] Kieli on isomorfinen ja vastaa läheisesti konekieltä: kielen ominaisuudet ovat yksi-yhteen tai yksi-moneen suhteessa käskykannan ominaisuuksiin.[3] Ylemmän tason kielet käyttävät ei-isomorfista muunnosta.[3]
Konekieli on suorittimen tai vastaavan laitteen ymmärtämä kieli. Konekielen käskyt ovat lukujonoja, ja siksi vaikeita muistaa sekä hahmottaa koodia kirjoitettaessa. Siksi konekielen kirjoittamisen sijaan käytetään yleensä assemblyä. Assembly-ohjelma muutetaan konekieliseksi assembler-kääntäjällä.
Assembly-ohjelma koostuu käskyistä (engl. mnemonics) ja niihin liittyvät operandeista, jotka vastaavat konekielen käskyjä. Lisäksi assembly-kielisessä ohjelmassa on muistiosoitteiden nimiä ja muita apusanoja.
Assemblyn käytön varjopuolia verrattuna C:n tyyppisiin korkean tason kieliin ovat muun muassa ohjelmoinnin vaikeus, hitaus ja virhealttius. Assemblyn käyttö vaatii taitoa ja erityistä tarkkuutta.
Assembly-kieli on huonosti siirrettävä kieli eri suorittimien välillä. Eri suoritintyypeille on erilaiset assembly-ohjelmat.
<ref>
-elementti; viitettä ch
ei löytynyt