- 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 assembly keel, on põhitööriist neile, kes soovivad töötada otse protsessori riistvaraga. Kuigi kõrgetasemelised keeled on tänapäeval paremini kättesaadavad ja populaarsemad, on assembler endiselt võtmetähtsusega sellistes valdkondades nagu manussüsteemide programmeerimine, seadme draiverid 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?
Assamblee keel on a madala taseme programmeerimiskeel loodud töötama vahetult protsessori juhistega. Igal protsessoriperel on oma juhiste komplekt, mis muudab selle keele arhitektuuri spetsiifiliseks. Sel põhjusel öeldakse, et see pole kaasaskantav, kuna näiteks Inteli protsessorile kirjutatud programm ei tööta ARM-protsessoril ilma suuremate kohandusteta.
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 andmetöötluse algusaegadel, kui programmeerijad pidid masinkoodi otse kirjutama. Koostaja ilmumisega lihtsustas programmeerimine oluliselt, kuna see võimaldas kasutada a intuitiivsem keel kaotamata üksikasjalikku kontrolli riistvara üle.
1950. ja 1960. aastatel oli monteerija loomise standard operatsioonisüsteemide y kriitiline tarkvaraKuid assembleri tulekuga kaotas see paljudes valdkondades populaarsust, kuigi spetsialiseeritud valdkondades on see endiselt oluline.
Kuidas see toimib?
Assembler tõlgib assemblerkeeles kirjutatud koodi keelde masina koodmis on ainus keel, mida protsessor otseselt mõista saab. Seda protsessi viib läbi programm nimega monteerijaAssembler võtab iga mnemoonilise käsu lähtekoodist 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
Assembleri programm jaguneb üldiselt kolm peamist osa:
- 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
Monteerija juhised on jagatud erinevatesse kategooriatesse, millest igaühel 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.