Assemblerkeel

Assemblerkeel on teise põlvkonna madaltaseme programmeerimiskeel, mille käsud vastavad üksüheselt sihtprotsessori masinkoodi käskudele. Assemblerkeeles on masinakäskude kahendkoodid (nt. 11110111xx100xxx, kus x-id tähistavad operandide aadressi arvuti mälus) asendatud mnemooniliste tähistega ehk mnemokoodidega. Masinakäsu mnemokood on tavaliselt kahe, kolme või neljatäheline inglise keelest tulenev lühend. Assemblerkeel loodi masinkoodi kirjutamise lihtsustamiseks.
Assemblerkeele kohta vahel kasutatud ka sõna assembler, kuigi nii nimetatakse ka assemblerkeele kompilaatorit (vt assembler).
Masinkoodi puhul on programmikood binaarkujul ehk kahendarvude jadana. Assemblerkeele puhul on programmikood kirjeldatud lühikeste käskude ja nende parameetritega, kusjuures iga assemblerkeelne käsk on tõlgitav üheks või mitmeks sama funktsiooniga masinkoodi käsuks. Kui sama assemblerkeelne käsk on tõlgitav mitmeks masinkoodi käsuks, siis on seda tihti võimalik kirjutada erikujul, kus osutatakse, millist käsku parasjagu kasutatakse – sellele erikujule tõlgivad koodi ka disassemblerid.
Igat liiki protsessoril on oma masinkeel ja sellele vastav assemblerkeel. Ühele protsessorile arusaadavad käsud moodustavad käsustiku. Kõrgtaseme programmeerimiskeeled vähendavad sõltuvust protsessori eripäradest ja nendes kirjutatud kood kompileeritakse kinda protsessori käsustikule vastavateks masinakäskudeks.
Assemblerkeele laused.
Assemblerkeelne tekst koosneb lausetest, iga lause on jagatud järgmisteks väljadeks:
Assembleri translaatori direkiivid lihtsustavad assemblerikeeles programmeerimist võrreldes masinakoodiga. Kasutusala järgi on pseudokäsud (ehk direktiivid) järgmised:
 UMRK EQU VMRK+10; Anname nimele UMRK väärtuse mis on kümne võrra suurem nime VMRK väärtusest
 ARV DB 100; Anname muutujale või konstandile ARV algväärtuse 100 ja eraldame muutujale või konstandile mälu
 MASS DS 125; Eraldame massiivile MASS 125 mälupesa
 ORG 4000h; Alustada aadressiloenduriga aadressist 4000h
Kus tähised UMRK, ARV ja MASS on programmeerija poolt valitud andmeobjektide või konstantide nimed.
Operandiväli sisaldab järgmist informatsiooni:
Lausete näide Inteli protsessori assemblerkeeles.
Tavaliselt kirjutatakse ühele reale üks käsk, mis koosneb mõnetähelisest masinakäsu tähisest ehk mnemokoodist ja sellele järgnevatest käsu parameetritest ehk operandidest, mis eraldatakse üksteisest komaga:
 MOV AX, 200
 ADD AX, 7
Näites on toodud kaks assemblerkeelset lauset Intel protsessori käsustiku mnemokoodis masinakäskudega. Märgendiväli mis algab alati teksti vasakust äärest (antud näites märgend puudub) ja kommentaariväli lause lõpus on tühjad.
Programmi selgitus:
Muudab registri AX väärtuse 200-ks ja seejärel liidab sellele arvu seitse. Tulemus 207 asub nüüd registris AX.
MOV on lühend ingliskeelsest sõnast "move" (liigutama). Käsk ADD tuleneb sõnast "add" (liitma). Käske võib kirjutada nii suurte kui väikeste tähtedega.
Ülal toodud näite assembleri poolt tõlgitud (kompileeritud) masinkood kuueteistkümnendsüsteemis kujutatuna:
B8 C8 00
05 07 00
Makroassembler.
Makroassembler on assembler, millele on lisatud makrodest koosneva metakeele toetus, mis võimaldab korraga töödelda terveid assemblerkeelseid plokke või programmikonstruktsioone (programmi ehitusreegleid).