From Wikipedia, the free encyclopedia
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.
See artikkel vajab toimetamist. |
Igapäevaselt kasutatakse assemblerkeele kohta 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.
Igal erineval 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.
Assemblerkeelne tekst koosneb lausetest, iga lause on jagatud järgmisteks väljadeks[1]:
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:
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:
Ülal toodud näite assembleri poolt tõlgitud (kompileeritud) masinkood kuueteistkümnendsüsteemis kujutatuna:
Makroassembler on assembler, millele on lisatud makrodest koosneva metakeele toetus, mis võimaldab korraga töödelda terveid assemblerkeelseid plokke või programmikonstruktsioone (programmi ehitusreegleid).
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.