Kun puhumme ohjelmointikielistä, ensimmäisenä mieleemme tulee kielet, kuten C, C++, Java, Python jne. Mutta ne kielet piilottavat todellisen toiminnan eli sen, että monet asiat abstraktoivat käyttäjiltä. Mutta ohjelmoinnin tai tietokonelaitteiston välisen vuorovaikutuksen takana on kieli, joka todella perustuu peruskäsitteisiin.
Mikä on Assembly Language?
Kokoonpanokieli on matalan tason kieli, joka auttaa kommunikoimaan suoraan tietokonelaitteiston kanssa. Se käyttää muistomerkkejä edustamaan toimintoja, jotka prosessorin on tehtävä. Joka on välikieli korkean tason kielten välillä, kuten C++ ja binäärikieli. Se käyttää heksadesimaali- ja binääriarvoja, ja se on ihmisten luettavissa.
Assembly-kielen evoluutio?
Assembly-kieli on kehittynyt käsi kädessä tietokonelaitteiston kehityksen ja ohjelmoijien muuttuvien tarpeiden kanssa. Tässä on lähempi katsaus jokaiseen sukupolveen:
Ensimmäinen sukupolvi (1940-1950):
- Tietokoneet luottivat tyhjiöputkiin, ja ohjelmointi tapahtui suoraan konekielellä käyttäen binäärikäskyjä.
- Assembly-kieli syntyi luettavana abstraktiona, joka käytti muistikoodeja edustamaan koneen käskyjä.
Toinen sukupolvi (1950-1960):
- Transistoripohjaiset tietokoneet korvasivat tyhjiöputket tarjoten parannettua johdonmukaisuutta ja suorituskykyä.
- Kokoonpanokielistä tuli monimutkaisempia näiden uusien koneiden monimutkaisten käskysarjojen käsittelemiseksi. Samaan aikaan korkean tason ohjelmointikielet kuten FORTRAN ja COBOL Edistynyt abstraktio
Kolmas sukupolvi (1960-1970):
- Integroiduista piireistä tuli vakiopaikka, mikä johti vähentyneisiin mutta tehokkaisiin tietokoneisiin.
- Assembly-kielet kehittyivät edelleen ja esittelivät ominaisuuksia, kuten makroja ja symbolisia tarroja, jotka lisäsivät ohjelmoijan tuottavuutta ja koodin luettavuutta.
Neljäs sukupolvi (1970-1980):
- Mikroprosessorien alku muutti tietojenkäsittelyä ja loi tietä mikrotietokonejärjestelmille, kuten IBM PC:lle ja Apple II:lle.
- Mikrotietokoneiden kokoonpanokielet suunniteltiin uudelleen käyttäjien käytettävyyden parantamiseksi, ja niissä on syntaksin korostus ja automaattinen sisennys, mikä lisäsi suuremman ohjelmoijaryhmän osallistumista.
Viides sukupolvi (1980 - nykypäivään):
- Tälle aikakaudelle on ominaista useiden laskentatehtävien suorittaminen samanaikaisesti, tämä menetelmä tunnetaan nimellä rinnakkaiskäsittelyjärjestelmä ja kehittyneiden ohjelmistojärjestelmien kasvu
- Assembly-kielen kehitys jatkui vastaamaan ohjelmoijien vaatimuksia, kun otettiin käyttöön huippuluokan virheenkorjausmenetelmiä ja -työkaluja, jotka keskittyivät koodin suorituskyvyn ja tuottavuuden parantamiseen monimutkaisille järjestelmille.
Kuinka Assembly Language toimii?
Assembly-kielet sisältävät muistokoodeja, jotka määrittelevät, mitä prosessorin tulee tehdä. Ohjelmoijan kirjoittama muistokoodi muutettiin konekieleksi (binäärikieli) suorittamista varten. Assembleria käytetään kokoonpanokoodin muuntamiseen konekieleksi. Tämä konekoodi tallennetaan suoritettavaan tiedostoon suorituksen vuoksi.
Sen avulla ohjelmoija voi kommunikoida suoraan laitteiston, kuten rekisterien, muistipaikkojen, syöttö/tulostuslaitteet tai joku muu laitteisto komponentit. Mikä voisi auttaa ohjelmoijaa ohjaamaan suoraan laitteistokomponentteja ja hallitsemaan resursseja tehokkaasti.
Kuinka suorittaa Assembly Language?
- Kirjoita kokoonpanokoodi : Avaa mikä tahansa tekstieditori laitteessa ja kirjoita muistokoodit siihen ja tallenna tiedosto oikealla tiedostotunnisteella kokoajan mukaan. Laajennus voi olla .asm , .s , .asm x.
- Koodin kokoaminen : Muunna koodi konekieleksi käyttämällä a kokoaja .
- Luodaan objektitiedostoa : Se luo koodiasi vastaavan objektitiedoston. Siihen tulee laajennus. obj .
- Suoritustiedostojen linkittäminen ja luominen : Assembly-kielemme voi sisältää useita lähdekoodeja. Ja meidän on linkitettävä ne kirjastoihin tehdäksemme niistä suoritettavia. Voimme käyttää linkkeriä, kuten lk, tähän tarkoitukseen.
- Ohjelma käynnissä : Suoritettavan tiedoston luomisen jälkeen voimme ajaa sen tavalliseen tapaan. Ohjelman suorittaminen riippuu ohjelmistosta.
Assembly-kielen komponentit
- Rekisterit: Rekisterit ovat nopeita muistipaikkoja, jotka sijaitsevat prosessorin sisällä. Mikä auttaa MENNÄ suorittaa aritmeettisia operaatioita ja tilapäistä tietojen tallennusta. Esimerkki: Ax (akku), Bx, Cx.
- Komento: Assembly-koodissa oleva käsky, joka tunnetaan komennona, kertoo assemblerille, mitä tehdä. Assembly-kieliohjeissa käytetään tyypillisesti itsekuvaavia lyhenteitä sanaston yksinkertaistamiseksi, kuten ADD lisäämiseen ja MOV tiedonsiirtoon.
- Ohjeet: Ohjeet ovat muistokoodeja, jotka annamme prosessorille suorittamaan tiettyjä tehtäviä, kuten LOAD, ADITION, MOVE. Esimerkki: ADD
- Tunnisteet: Se on symbolinen nimi/tunniste, joka annetaan osoittamaan tiettyä sijaintia tai osoitetta kokoonpanokoodissa. Esimerkki: ENSIMMÄINEN osoittamaan koodin suoritusosan alkamista.
- Muistomerkki: Muistomerkki on lyhenne kokoonpanokielen ohjeesta tai konetoiminnolle annetusta nimestä. Jokainen kokoonpanossa oleva muistomerkki vastaa tiettyä koneohjetta. Add on esimerkki yhdestä näistä koneen komennoista. CMP, Mul ja Lea ovat muita tapauksia.
- Makro: Makrot ovat ohjelmakoodeja, joita voidaan käyttää missä tahansa ohjelmassa kutsumalla sitä, kun olemme määrittäneet sen. Ja siihen on usein upotettu kokoajia ja kääntäjiä. Meidän pitäisi määrittää se käyttämällä direktiiviä %macro. Esimerkki: %macro ADD_TWO_NUMBERS 2
lisää eax, %1
lisää eax, %2
%endmacro - Operandit: Nämä ovat tietoja tai arvoja, jotka meille annetaan ohjeiden avulla suorittaa jokin toiminto sille. Esimerkki: ADD:ssä R1,R2 ; R1 ja R2 ovat operandeja.
- Opcode: Nämä ovat muistokoodeja, jotka määrittävät prosessorille, mikä toiminto on suoritettava. Esimerkki: ADD tarkoittaa lisäystä.
Heksadesimaalilukujärjestelmä on numerojärjestelmä, jota käytetään esittämään erilaisia numeroita käyttäen 16 symbolia, joka on peräisin 0 - 9 numeroa ja A - F aakkoset ja se on 16 kantalukujärjestelmä. 0 - 9 desimaalilukuna ja heksadesimaali on sama.
Desimaali-heksadesimaalitaulukko
Desimaali | Hex | Desimaali | Hex | Desimaali | Hex | Desimaali ipconfig Ubuntussa | Hex |
---|---|---|---|---|---|---|---|
0 | 0 | 10 | A | kaksikymmentä | 14 | 30 | 1E |
1 | 1 | yksitoista | B | kaksikymmentäyksi | viisitoista | 31 | 1F |
2 | 2 | 12 | C | 22 | 16 | 32 | kaksikymmentä |
3 | 3 | 13 | D | 23 | 17 | 33 | kaksikymmentäyksi |
4 | 4 | 14 | JA | 24 | 18 | 3. 4 | 22 |
5 | 5 | viisitoista | F | 25 | 19 | 35 | 23 |
6 | 6 | 16 | 10 | 26 | 1A | 36 | 24 |
7 python tai | 7 | 17 | yksitoista | 27 | 1B | 37 | 25 |
8 | 8 | 18 | 12 | 28 | 1 C | 38 | 26 |
9 | 9 | 19 | 13 | 29 asiantuntijajärjestelmät | 1D | 39 | 27 |
Heksadesimaaliluvut voidaan helposti muuntaa toiseen muotoon, kuten binäärilukujärjestelmään, desimaalilukujärjestelmään, oktaalilukujärjestelmään ja päinvastoin. Tässä artikkelissa keskitymme vain muuttamaan heksadesimaalilukua desimaaliksi ja päinvastoin.
Muunnos desimaalista heksadesimaaliksi:
Vaihe 1: Syötä desimaaliarvo N.
Vaihe 2: Jaa N luvulla 16 ja säilytä loppuosa.
Vaihe 3: Jälleen jaa osamäärä 16:lla, hanki vaiheessa 2 ja tallenna jäännös.
Vaihe 3: toista vaihetta 3, kunnes osamäärästä tulee 0.
vaihe 4: Kirjoita jäännös käänteisessä järjestyksessä ja tämä on luvun heksadesimaaliarvo.
Esimerkki: Muunna 450 desimaaliarvo heksadesimaaliksi.
Vaihe 1: N = 450.
Vaihe 2: 450/16 antaa Q = 28, R = 2.
Vaihe 3: 28/16 antaa Q = 1, R = 12 = C.
Vaihe 4: 1/16 antaa Q = 0, R = 1.
Vaihe 5: heksadesimaaliluku 450 on 1C2.
Muunnos heksadesimaalista desimaaliksi
Muuntaaksesi heksadesimaaliluvut desimaaliluvuiksi, kerro jokainen numero 16:lla sen sijainnin potenssiin alkaen oikealta ja oikeanpuoleisimman numeron sijainti on 0 ja lisää sitten tulos.
Esimerkki: Muunna (A7B) 16 desimaaliin.
(A7B)16= A × 162+7×161+ B × 160
⇒ (A7B)16= 10 × 256 + 7 × 16 + 11 × 1 (muunna symbolit A ja B niiden desimaalivastineiksi; A = 10, B = 11)
⇒ (A7B)16= 2560 + 112 + 11
⇒ (A7B)16= 2683
Siksi (A7B) desimaalivastine16on (2683)10.
Assembly-kielen edut
- Se tarjoaa tarkan laitteiston hallinnan ja siten paremman koodin optimoinnin.
- Se mahdollistaa suoran pääsyn laitteistokomponentteihin, kuten rekistereihin, joten se mahdollistaa räätälöidyt ratkaisut laitteistoongelmiin.
- Tehokas resurssien käyttö matalan tason ohjauksen, optimoidun koodin, resurssitietoisuuden, mukauttamisen jne. ansiosta.
- Se on ihanteellinen ohjelmointiin mikro-ohjaimet , anturit ja muut laitteistokomponentit.
- Sitä käytetään tietoturvatutkimuksissa tietoturvahaavoittuvuuksien etsimiseen sekä järjestelmän turvallisuuden käänteissuunnitteluohjelmistoissa.
- Se on erittäin tärkeää valmistuksen kannalta käyttöjärjestelmät , ydin ja laiteohjaimet joka vaatii laitteiston vuorovaikutusta toimiakseen.
Assembly-kielen haitat
- Monimutkainen ja erittäin vaikea oppia kieli erityisesti aloittelijoille.
- Se on erittäin koneriippuvainen. Se siis rajoittaa siirrettävyyttä.
- Koodia on todella vaikea ylläpitää, varsinkin suurissa projekteissa.
- Se on erittäin aikaa vievää, koska sitä on todella vaikea ymmärtää ja koodi on erittäin pitkä.
- Virheenkorjaus on erittäin haastava ohjelmoijille.
Usein kysytyt kysymykset kokoonpanokielestä – UKK
Missä assembly-kieltä käytetään?
- Käyttöjärjestelmän kehitys
- Laiteohjaimen luominen
- Sulautettujen järjestelmien ohjelmointi
- Reaaliaikaiset sovellukset
- Turvallisuustutkimus
Ero Assembly-kielen ja korkean tason kielen välillä?
Assembly Language on muistokoodeja ja liittyy läheisesti CPU:n käskyjoukkoon. HLL:ssä on abstraktiota.
Mikä CPU-arkkitehtuuri minun pitäisi oppia kokoonpanoohjelmointia varten?
8085- ja 8086-mikrosuoritinarkkitehtuurit ovat paljon paremmin ymmärrettäviä käsitteitä.
Onko kokoonpanokieli edelleen ajankohtainen nykyaikaisessa tietojenkäsittelyssä?
Joo. Kokoonpanokieli on edelleen ajankohtainen.