- Igale arhitektuurile omane madala taseme keel võimaldab riistvara otsest juhtimist mnemoonika abil, mis esindab masina juhiseid.
- Assembler teisendab selle masinkoodiks, tõlkides mnemoonika, näiteks MOV või ADD, käivitatavateks bitijadadeks.
- Peamised kasutusalad: manussüsteemid, seadmedraiverid ja koodi optimeerimine, kus jõudlus ja kontroll on kriitilise tähtsusega.
- Eelised: maksimaalne jõudlus ja kontroll; puudused: keeruline õppimine ja arhitektuuride vahelise kaasaskantavuse puudumine.
Assembler, tuntud ka kui assemblerkeel, on oluline tööriist neile, kes soovivad otse protsessori riistvaraga töötada. Kuigi kõrgetasemelised keeled on tänapäeval kättesaadavamad ja populaarsemad, on assembler endiselt võtmetähtsusega sellistes valdkondades nagu manussüsteemide programmeerimine , seadmedraiverid ja pöördprojekteerimine.
See madalatasemeline programmeerimiskeel võimaldab programmeerijatel suhelda otse protsessoriregistrite ja füüsiliste riistvarakomponentidega, paljastades detailsuse taseme, mida kõrgetasemelised keeled pakkuda ei suuda. Kas soovite rohkem teada? Lugege edasi, et avastada kõike selle põneva maailma kohta.
Mis on assemblerkeel?
Assemblerkeel on madala taseme programmeerimiskeel, mis on loodud töötama otse protsessori käskudega. Igal protsessoriperekonnal on oma käskude komplekt, mis muudab selle keele iga arhitektuuri jaoks spetsiifiliseks. Seetõttu peetakse seda mitteportatiivseks, kuna näiteks Inteli protsessorile kirjutatud programm ei tööta ARM-protsessoril ilma oluliste muudatusteta.
Erinevalt kõrgetasemelised keeled Nagu Python või Java, kasutab assembler mnemoonika, mis on käskude sümboolsed esitused masinkoodis. Näiteks võib koostaja lisamistoimingut kujutada kui ADD, samas kui masinkoodis oleks see inimesele arusaamatu nullide ja ühtede jada.
Ajalugu ja areng
Assembler tekkis arvutiteaduse algusaegadel, kui programmeerijad pidid kirjutama otse masinkoodis. Assembleri tulekuga lihtsustus programmeerimine oluliselt, kuna see võimaldas kasutada intuitiivsemat keelt, kaotamata seejuures riistvara üle detailset kontrolli.
1950. ja 1960. aastatel oli assembler operatsioonisüsteemide ja kriitilise tarkvara loomise standard . Assembleri tulekuga kaotas see aga paljudes valdkondades populaarsust, kuigi spetsialiseeritud valdkondades on see endiselt oluline.
Kuidas see toimib?
Assembler tõlgib assemblerkeeles kirjutatud koodi masinkoodiks , mis on ainus keel, mida protsessor otseselt mõistab. Seda protsessi teostab programm nimega assembler . Assembler võtab lähtekoodist iga mnemoonilise käsu ja teisendab selle masinkoodi ekvivalendiks.
Näiteks kui sa kirjutad MOV AX, 5, mis tähendab väärtuse 5 teisaldamist AX-i registrisse, tõlgib assembler selle a-ks bitivoog mida protsessor saab otse käivitada.
Assemblerprogrammi ülesehitus
Assemblerprogramm jaguneb üldiselt kolmeks põhiosaks :
- Andmete jaotis: Siin saate deklareerida muutujad ja konstandid, mida programmis kasutatakse.
- Koodi jaotis: Sisaldab käivitatavaid juhiseid, mida protsessor täidab.
- Jaotis bss: Kasutatakse käivitamata muutujate jaoks, mis määratakse täitmise ajal.
Assembleriprogrammi põhinäide võib välja näha järgmine:
sektsioon .data sõnum db 'Tere maailm', 0 jaotis .tekst globaalne _start _start: mov eax, 4 mov ebx, 1 mov ecx, sõnum mov edx, 11 int 0x80 mov eax, 1 int 0x80
See programm prindib konsooli "Hello World" ja seejärel väljub.
Juhiste tüübid assembleris
Monteerimisjuhised jagunevad mitmeks kategooriaks , millel kõigil on kindel eesmärk:
- Andmeedastusjuhised: Nad liigutavad andmeid registrite ja mälu vahel. Näide:
MOV. - Aritmeetilised juhised: Nad sooritavad matemaatilisi tehteid. Näide:
ADD,SUB. - Voolu juhtimise juhised: Need muudavad programmi täitmisjärjestust. Näide:
JMP,CALL.
Monteerija kasutusalad
Kuigi komplekteerijat ei kasutata nii laialdaselt kui kunagi varem, on see teatud valdkondades endiselt asjakohane:
- Manussüsteemide programmeerimine: Kui täielik kontroll riistvara üle on ülioluline.
- Draiveri arendus: Riistvaraseadmete haldamiseks.
- koodi optimeerimine: Äärmuslikku jõudlust nõudvates rakendustes.
Eelised ja puudused
Monteerijal on oma plussid ja miinused:
Eelised:
- Võimaldab kontrollida üksikasjalik riistvarast.
- See on äärmiselt tõhus jõudluse osas.
Puudused:
- Es raske õppida ja kasutada.
- See ei ole kaasaskantav erinevate arhitektuuride vahel.
Assembleri valdamine võib olla väljakutse, kuid see on ka hindamatu oskus neile, kes soovivad mõista, kuidas arvutid oma tuumast lähtuvad. Assembly keel on võimas tööriist, mis ühendab programmeerija otse riistvaraga. Kuigi selle kasutamine on ette nähtud konkreetseteks olukordadeks, on see siiski keel, mida tasub arvutiteaduse põhialuste sügavaks mõistmiseks õppida.