- Kiekvienai architektūrai būdinga žemo lygio kalba leidžia tiesiogiai valdyti aparatinę įrangą naudojant mnemoniką, kuri vaizduoja mašinos instrukcijas.
- Asembleris jį konvertuoja į mašininį kodą, versdamas mnemoniką, tokią kaip MOV arba ADD, į vykdomas bitų sekas.
- Pagrindiniai naudojimo būdai: įterptosios sistemos, įrenginių tvarkyklės ir kodo optimizavimas, kai našumas ir valdymas yra labai svarbūs.
- Privalumai: maksimalus našumas ir valdymas; trūkumai: sunku išmokti ir stokojantis perkeliamumo tarp architektūrų.
Asamblėjas, taip pat žinomas kaip surinkimo kalba, yra pagrindinis įrankis tiems, kurie nori tiesiogiai dirbti su procesoriaus aparatine įranga. Nors aukšto lygio kalbos šiandien yra labiau prieinamos ir populiaresnės, surinkėjas vis dar yra labai svarbus tokiose srityse kaip įterptųjų sistemų programavimas, įrenginių tvarkyklės ir atvirkštinės inžinerijos.
Ši žemo lygio programavimo kalba leidžia programuotojams tiesiogiai bendrauti su procesoriaus registrais ir fiziniais aparatūros komponentais, atskleisdama detalumo lygį, kurio aukšto lygio kalbos negali suteikti. Norite sužinoti daugiau? Skaitykite toliau, kad sužinotumėte viską apie šį žavų pasaulį.
Kas yra asamblėjos kalba?
Asamblėjos kalba yra a žemo lygio programavimo kalba skirtas tiesiogiai dirbti su procesoriaus instrukcijomis. Kiekviena procesorių šeima turi savo instrukcijų rinkinį, todėl ši kalbos architektūra yra specifinė. Dėl šios priežasties sakoma, kad jis nėra nešiojamas, nes, pavyzdžiui, programa, sukurta Intel procesoriui, neveiks ARM procesoriuje be didelių pritaikymų.
Skirtingai nei aukšto lygio kalbos Kaip ir „Python“ ar „Java“, asembleris naudoja mnemonika, kurie yra simboliniai instrukcijų atvaizdai mašininiame kode. Pvz., papildymo operacija surinkėjo programoje gali būti pavaizduota kaip ADD, o mašininiame kode tai būtų žmogui nesuprantama nulių ir vienetų seka.
Istorija ir raida
Assembler atsirado pirmosiomis kompiuterijos dienomis, kai programuotojai turėjo tiesiogiai rašyti mašininį kodą. Pasirodžius surinkėjui, programavimas buvo labai supaprastintas, nes leido naudoti a intuityvesnė kalba neprarandant išsamios aparatinės įrangos kontrolės.
Šeštajame ir šeštajame dešimtmečiuose surinkėjas buvo kūrimo standartas operacines sistemas y kritinė programinė įrangaTačiau atsiradus surinkėjui, jis prarado populiarumą daugelyje sričių, nors specializuotose srityse jis išlieka būtinas.
Kaip tai veikia?
Asembleris išverčia asamblėjos kalba parašytą kodą į mašinos kodaskuri yra vienintelė kalba, kurią procesorius gali tiesiogiai suprasti. Šį procesą atlieka programa, vadinama surinkėjasAsembleris paima kiekvieną mnemoninę instrukciją iš šaltinio kodo ir konvertuoja ją į mašininio kodo atitikmenį.
Pavyzdžiui, jei rašote MOV AX, 5, o tai reiškia, kad perkeliant 5 reikšmę į AX registrą, surinkėjas ją paverčia a bitų srautas kurį procesorius gali vykdyti tiesiogiai.
Asemblerio programos struktūra
Asemblerio programa paprastai skirstoma į trys pagrindiniai skyriai:
- Duomenų skiltis: Čia deklaruojate kintamuosius ir konstantas, kurios bus naudojamos programoje.
- Kodo skyrius: Jame yra vykdomosios instrukcijos, kurias vykdys procesorius.
- Skyrius bss: Naudojamas neinicijuotiems kintamiesiems, kurie bus priskirti vykdymo metu.
Pagrindinis surinkėjo programos pavyzdys gali atrodyti taip:
skyrius .duomenų pranešimas db 'Hello World', 0 sekcija .text global _start _start: mov eax, 4 mov ebx, 1 mov ecx, pranešimas mov edx, 11 int 0x80 mov eax, 1 int 0x80
Ši programa išspausdina „Hello World“ į konsolę ir išeina.
Instrukcijų tipai surinkime
Surinkimo instrukcijos yra suskirstytos į įvairių kategorijų, kurių kiekvienas turi tam tikrą tikslą:
- Duomenų perdavimo instrukcijos: Jie perkelia duomenis tarp registrų ir atminties. Pavyzdys:
MOV. - Aritmetinės instrukcijos: Jie atlieka matematinius veiksmus. Pavyzdys:
ADD,SUB. - Srauto valdymo instrukcijos: Jie pakeičia programos vykdymo seką. Pavyzdys:
JMP,CALL.
Montuotojo panaudojimas
Nors surinkėjas nėra taip plačiai naudojamas kaip anksčiau, jis išlieka aktualus konkrečiose srityse:
- Įterptųjų sistemų programavimas: Kai labai svarbu visiškai valdyti aparatinę įrangą.
- Vairuotojo kūrimas: Norėdami valdyti aparatūros įrenginius.
- kodo optimizavimas: Programose, kurioms reikalingas ypatingas našumas.
Privalumai ir trūkumai
Montuotojas turi savo privalumų ir trūkumų:
Privalumai:
- Leidžia valdyti detalus techninės įrangos.
- Tai nepaprastai efektyvus našumo požiūriu.
Trūkumai:
- Es sunku išmokti ir naudoti.
- Tai ne nešiojamų tarp skirtingų architektūrų.
Įvaldyti surinkėją gali būti sudėtinga, bet ir neįkainojamas įgūdis tiems, kurie nori suprasti, kaip kompiuteriai veikia iš esmės. Surinkimo kalba yra galingas įrankis, tiesiogiai sujungiantis programuotoją su aparatine įranga. Nors ji naudojama tik konkrečioms situacijoms, ją vis tiek verta mokytis norint giliai suprasti kompiuterių mokslo pagrindus.