Ko govorimo o programskih jezikih, prva stvar, na katero pomislimo, so jeziki, kot so C, C++, Java, Python itd. Toda ti jeziki skrivajo dejansko delovanje, kar pomeni, da od uporabnikov abstrahirajo veliko stvari. Toda obstaja jezik, ki v resnici temelji na osnovnih konceptih programiranja ali interakcije med računalniško strojno opremo.
Kaj je zbirni jezik?
Zbirni jezik je jezik nizke ravni, ki pomaga pri neposredni komunikaciji z računalniško strojno opremo. Uporablja mnemotehniko za predstavitev operacij, ki jih mora izvesti procesor. Ki je vmesni jezik med jeziki na visoki ravni, kot je C++ in binarni jezik. Uporablja šestnajstiške in binarne vrednosti in je berljiv ljudem.
Razvoj zbirnega jezika?
Zbiralni jezik se je razvijal z roko v roki z napredkom računalniške strojne opreme in razvijajočimi se potrebami programerjev. Tukaj je podrobnejši pogled na vsako generacijo:
Prva generacija (1940-1950):
- Računalniki so se zanašali na vakuumske cevi, programiranje pa je potekalo neposredno v strojnem jeziku z uporabo binarnih navodil.
- Zbiralni jezik se je pojavil kot berljiva abstrakcija, ki uporablja mnemonične kode za predstavitev strojnih navodil.
Druga generacija (1950-1960):
- Računalniki na osnovi tranzistorjev so zamenjali vakuumske cevi in ponudili večjo doslednost in zmogljivost.
- Zbirni jeziki so postali bolj zapleteni za obvladovanje kompleksnih nizov navodil teh novih strojev. Hkrati programski jeziki na visoki ravni, kot je FORTRAN in COBOL zagotovljena napredna abstrakcija
Tretja generacija (1960-1970):
- Integrirana vezja so postala standard, kar je povzročilo manjše, a zmogljive računalnike.
- Zbirni jeziki so se razvijali naprej in uvedli funkcije, kot so makri in simbolne oznake, kar je povečalo produktivnost programerjev in berljivost kode.
Četrta generacija (1970-1980):
- Začetek mikroprocesorjev je spremenil računalništvo in utrl pot mikroračunalniškim sistemom, kot sta IBM PC in Apple II.
- Zbirni jeziki za mikroračunalnike so bili preoblikovani, da bi izboljšali dostopnost uporabnika, s označevanjem sintakse in samodejnim zamikom, s čimer se je povečala vključenost za večjo skupino programerjev.
Peta generacija (1980-danes):
niz v json java
- Za to dobo je značilno izvajanje več računalniških nalog hkrati, kot je ta metoda znana kot sistem vzporedne obdelave in rast sofisticiranih programskih sistemov
- Zbirni jezik se je še naprej razvijal, da bi zadostil zahtevam programerjev, z uporabo najsodobnejših metod in orodij za odpravljanje napak, osredotočenih na izboljšanje zmogljivosti in produktivnosti kode za zapletene sisteme.
Kako deluje zbirni jezik?
Zbiralni jeziki vsebujejo mnemonične kode, ki določajo, kaj naj procesor naredi. Mnemonična koda, ki jo je napisal programer, je bila pretvorjena v strojni jezik (binarni jezik) za izvedbo. Za pretvorbo zbirne kode v strojni jezik se uporablja asembler. Ta strojna koda je zaradi izvajanja shranjena v izvršljivi datoteki.
Programerju omogoča neposredno komunikacijo s strojno opremo, kot so registri, pomnilniške lokacije, vhodno/izhodne naprave ali katero koli drugo strojna oprema komponente. Kar bi programerju lahko pomagalo pri neposrednem nadzoru komponent strojne opreme in učinkovitem upravljanju virov.
Kako izvesti zbirni jezik?
- Napišite zbirno kodo : Odprite kateri koli urejevalnik besedil v napravi in vanj vpišite mnemonične kode ter shranite datoteko z ustrezno pripono glede na vaš asembler. Podaljšanje je lahko .asm , .s , .asm x.
- Sestavljanje kode : Pretvorite svojo kodo v strojni jezik z uporabo sestavljalec .
- Ustvarjanje objektne datoteke : Ustvaril bo objektno datoteko, ki ustreza vaši kodi. Imel bo razširitev. obj .
- Povezovanje in ustvarjanje izvedljivih datotek : Naš zbirni jezik lahko vsebuje več izvornih kod. Povezati jih moramo s knjižnicami, da bo izvedljivo. V ta namen lahko uporabimo povezovalnik, kot je lk.
- Tekaški program : Ko ustvarimo izvršljivo datoteko, jo lahko zaženemo kot običajno. Kako zagnati program, bo odvisno od programske opreme.
Komponente zbirnega jezika
- Registri: Registri so mesta hitrega pomnilnika, ki se nahajajo znotraj procesorja. Kar pomaga POJDI za izvajanje aritmetičnih operacij in začasno shranjevanje podatkov. Primer: Ax (Akumulator), Bx, Cx.
- Ukaz: Navodilo v zbirni kodi, znano kot ukaz, obvesti asemblerja, kaj naj naredi. Navodila za zbirni jezik običajno uporabljajo samoopisne okrajšave, da poenostavijo besedišče, kot je ADD za dodajanje in MOV za premikanje podatkov.
- Navodila: Navodila so mnemonične kode, ki jih damo procesorju za izvajanje določenih nalog, kot so NALOŽITEV, SEŠTEVANJE, PREMAKNITE. Primer: DODAJ
- Oznake: To je simbolično ime/identifikator, ki označuje določeno lokacijo ali naslov v zbirni kodi. Primer: FIRST za označevanje začetka izvajalnega dela kode.
- Mnemotehnika: Mnemonika je akronim za navodilo zbirnega jezika ali ime, dano funkciji stroja. Vsak mnemonik v sestavu ustreza določenemu strojnemu ukazu. Add je ilustracija enega od teh strojnih ukazov. CMP, Mul in Lea so med nadaljnjimi primeri.
- Makro: Makri so programske kode, ki jih lahko uporabimo kjer koli v programu tako, da ga pokličemo, ko ga definiramo. In pogosto je vdelan s sestavljalci in prevajalniki. Definirati bi ga morali z uporabo direktive %makro. Primer: %makro ADD_TWO_NUMBERS 2
dodaj eax, %1
dodajte eax, %2
%endmacro - Operandi: To so podatki ali vrednosti, ki so nam dane z navodili, da na njih izvedemo neko operacijo. Primer: V ADD R1,R2 ; R1 in R2 sta operanda.
- Opcode: To so mnemonične kode, ki procesorju določajo, katero operacijo je treba izvesti. Primer: ADD pomeni seštevanje.
Šestnajstiški številski sistem je številski sistem, ki se uporablja za predstavitev različnih števil s 16 simboli, ki izvirajo iz 0 do 9 števk in abecede od A do F je številski sistem z osnovo 16. Od 0 do 9 v decimalki in šestnajstiško je enako.
Decimalno v šestnajstiško tabelo
decimalno | Hex | decimalno | Hex | decimalno | Hex | decimalno | Hex |
---|---|---|---|---|---|---|---|
0 | 0 | 10 | A | dvajset | 14 | 30 | 1E |
1 | 1 | enajst | B | enaindvajset | petnajst | 31 | 1F |
2 | 2 | 12 | C | 22 | 16 | 32 | dvajset |
3 | 3 | 13 | D | 23 | 17 | 33 | enaindvajset |
4 | 4 | 14 | IN | 24 | 18 | 3. 4 | 22 |
5 | 5 | petnajst | F | 25 | 19 | 35 | 23 |
6 | 6 | 16 | 10 | 26 | 1A | 36 | 24 |
7 bfs iskanje | 7 | 17 | enajst | 27 | 1B | 37 | 25 |
8 | 8 | 18 | 12 | 28 pretvori niz v int | 1 C | 38 | 26 |
9 | 9 | 19 | 13 | 29 | 1D | 39 | 27 |
Šestnajstiška števila je mogoče preprosto pretvoriti v drugo obliko, kot je binarni številski sistem, decimalni številski sistem, oktalni številski sistem in obratno. V tem članku se osredotočamo le na pretvorbo šestnajstiškega v decimalno in obratno.
Decimalno v šestnajstiško pretvorbo:
1. korak: vnesite decimalno vrednost N.
2. korak: N delite s 16 in shranite preostanek.
3. korak: Znova delite količnik s 16, pridobljenim v 2. koraku, in shranite ostanek.
3. korak: ponavljajte 3. korak, dokler količnik ne postane 0.
4. korak: Zapišite ostanek v obratnem vrstnem redu in to je šestnajstiška vrednost števila.
Primer: Decimalno vrednost 450 pretvorite v šestnajstiško.
1. korak: N = 450.
2. korak: 450/16 daje Q = 28, R = 2.
3. korak: 28/16 daje Q = 1, R = 12 = C.
4. korak: 1/16 daje Q = 0, R = 1.
5. korak: šestnajstiško število 450 je 1C2.
Pretvorba šestnajstiškega v decimalno
Če želite pretvoriti šestnajstiško v decimalno, vsako števko pomnožite s 16 na potenco njenega položaja, začenši z desne, in položaj skrajne desne števke je 0, nato dodajte rezultat.
primer: Pretvori (A7B) 16 na decimalno.
(A7B)16= A × 162+7×161+ B × 160
⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (pretvori simbola A in B v njune decimalne ekvivalente; A = 10, B = 11)
⇒ (A7B)16= 2560 + 112 + 11
⇒ (A7B)16= 2683
Zato je decimalni ekvivalent (A7B)16je (2683)10.
Prednosti zbirnega jezika
- Zagotavlja natančen nadzor nad strojno opremo in s tem večjo optimizacijo kode.
- Omogoča neposreden dostop do komponent strojne opreme, kot so registri, zato omogoča prilagojene rešitve za težave s strojno opremo.
- Učinkovita uporaba virov zaradi nadzora na nizki ravni, optimizirane kode, zavedanja virov, prilagajanja itd.
- Idealen je za programiranje mikrokontrolerji , senzorji in druge komponente strojne opreme.
- Uporablja se v varnostnih raziskavah za iskanje varnostnih ranljivosti, programska oprema za obratno inženirstvo za varnost sistema.
- To je zelo pomembno za izdelavo operacijski sistemi , jedro in krmilniki naprav ki za svojo funkcionalnost zahteva interakcijo strojne opreme.
Slabosti zbirnega jezika
- Zapleten in zelo težak jezik za učenje, zlasti za začetnike.
- Zelo je odvisen od stroja. Torej omejuje prenosljivost.
- Zelo težko je vzdrževati kodo, zlasti pri velikih projektih.
- To je zelo zamudno, saj je zelo težko razumeti in zelo dolgo kodo.
- Odpravljanje napak je za programerje velik izziv.
Pogosto zastavljena vprašanja o zbirnem jeziku – pogosta vprašanja
Za kaj se uporablja zbirni jezik?
- Razvoj operacijskega sistema
- Ustvarjanje gonilnika naprave
- Programiranje vgrajenih sistemov
- Aplikacije v realnem času
- Varnostne raziskave
Razlika med zbirnim jezikom in jezikom visoke ravni?
Jezik montaže je mnemonična koda in tesno povezana z naborom ukazov CPE. V HLL obstaja abstrakcija.
Katero arhitekturo CPE naj se naučim za programiranje sestavljanja?
Arhitekturi mikro procesorjev 8085 in 8086 sta veliko boljši za razumevanje konceptov.
Je zbirni jezik še vedno pomemben v sodobnem računalništvu?
ja Zbirni jezik ostaja pomemben.