Mis on assamblee keel?

Assembly-keel on madala tasemega viis, kuidas arvutit ülesande täitmiseks juhendada. Arvutid ei mõista inimeste juhiseid. Kõige elementaarsemal tasemel mõistavad arvutid binaarkeeles juhiseid, st nullide ja ühtede jadasid. Binaarkeele või masinakeele programmeerimine on aga äärmiselt tülikas. Assamblee keel leiutati nullide ja ühtede aluseks olevate jadade sümboolse esitusena.

Oletame, et peaksime programmeerima mängu, mis teatud toimingu korral annab mängijale viis punkti. Arvuti hoiab skoori kindlas kohas; asukohad on kas salvestuskoht CPU-s, mida nimetatakse “registriks” või mõnes mäluruumis. Arvuti mõistab asukohti ja madala taseme toiminguid, mida nimetatakse operatsioonideks. Nii et kui skoori hoitakse registris RA, mõistab see käsku 0101 1100 0000 0101, kus esimesed neli numbrit tähistavad toimingut ADD, järgmised neli tähistavad registrit RA ja viimased kaheksa numbrit 5.

Algselt tuli arvutid niimoodi kodeerida; masinakeel on aeglane, vigadetundlik ja ühel inimesel võib olla väga raske aru saada, mida teine ​​inimene üritab kodeerida. Nii lõid programmeerijad keele, milles tehteid, asukohti, numbreid jne saab paremini mõista. Seega oleks ülaltoodud näite jaoks samaväärne käsk ADD RA 5. Selles hüpoteetilises näites kasutatakse ADD-operatsiooni ja registri RA jaoks mnemoonikat ning arv 5 kirjutatakse numbritega.

Programm, mida nimetatakse assembleriks, teisendab komplekteerimiskeele koodi aluseks olevaks masinakeeleks. Varasematel päevadel kasutas isegi see teisendamine kalleid arvutusressursse, nii et operatsioonikoodid, lühidalt operatsioonikoodid, nagu lahutamine, lühendati SUB, Copy-Move lühendiks MOV ja mõnel juhul isegi ADD lühendiks A.

Assamblee keel on enamasti õhuke kiht masina struktuuri kohal. Seetõttu sõltuvad opkoodid, registrid ja kogu keel väga palju protsessori perekonnast. Seega on Inteli x86 perekonnal opkoodid nagu MOV, MOVSX ja MOVZX, samas kui IBM 360-l on opkoodid nagu MVI, MVC, MVZ. Arvuti või protsessori kavandamisel määravad disainerid masina keele, sealhulgas opkoodid.
Programmeerijad läksid peagi üle “kõrgetasemelistele” keeltele, nagu COBOL, Pascal, C++ ja SQL. Kompilaatorid teisendavad neis keeltes kirjutatud koodi masinkeeleks. Montaažikoodi kasutatakse siiski endiselt spetsiaalsete protsessorite jaoks või kiiruse tagamiseks mängukonsoolidest autosüsteemideni.