Assembly (ohjelmointikieli)
konekieltä lähellä oleva ohjelmointikieli / From Wikipedia, the free encyclopedia
Assembly (usein virheellisesti assembler) on tietokoneen ohjelmointikieli, joka koostuu symbolisesta vastineesta tietylle konekielelle.[1] Toinen nimitys assembly-kielelle on symbolinen konekieli.[2] Eri prosessori-tyyppejä 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 prosessoreiden välillä. Eri prosessorityypeille on erilaiset assembly-ohjelmat, elleivät prosessorit ole keskenään yhteensopivia. Assemblyä vaivaa myös assembler-kääntäjien erilaisuus henkilökohtaisille tietokoneille.lähde? Eri valmistajien tekemät assembly-kääntäjät saattavat erota toisistaan huomattavasti, vaikka prosessori olisikin sama.
Assemblyn vahvin puoli on sillä tuotetun ohjelman nopeus, mikäli ohjelmoija osaa optimoida koodin ylemmän tason kielen kääntäjiä paremmin. Assembly on myös melko helppo oppia kenen mukaan?, koska sen käskyt ovat melko yksinkertaisia.