/ / Programare: limbaj de asamblare. Bazele limbajului de asamblare

Programare: limbaj de asamblare. Bazele limbajului de asamblare

Pentru ca aparatul să execute comenzio persoană la nivel hardware, este necesar să setați o anumită succesiune de acțiuni în limbajul „zerouri și unii”. Asamblatorul va deveni asistent în această chestiune. Este un utilitar care funcționează cu traducerea comenzilor în limbajul mașinii. Cu toate acestea, scrierea unui program este un proces foarte laborios și complicat. Acest limbaj nu este destinat să creeze acțiuni ușoare și simple. În acest moment, orice limbaj de programare utilizat (Asamblorul funcționează excelent) vă permite să scrieți sarcini speciale eficiente care afectează foarte mult funcționarea hardware-ului. Scopul principal este de a crea microinstrucțiuni și coduri mici. Acest limbaj oferă mai multe posibilități decât, de exemplu, Pascal sau C.

limbaj de asamblare

O scurtă descriere a limbilor de asamblare

Toate limbajele de programare sunt împărțite în niveluri:joasă și înaltă. Oricare din sistemul sintactic al „familiei” lui Assembler diferă prin faptul că unește simultan unele dintre avantajele celor mai răspândite și moderne limbi. Acestea sunt înrudite cu alții prin faptul că sistemul computerizat poate fi utilizat pe deplin.

O caracteristică distinctivă a compilatorului esteușurință în utilizare. Acesta este ceea ce o face diferită de cele care funcționează numai cu niveluri ridicate. Dacă țineți cont de un astfel de limbaj de programare, Assembler este de două ori mai rapid și mai bun. Nu durează prea mult să scrii un program ușor în el.

Pe scurt despre structura limbajului

În general vorbind despre muncă și structurăfuncționarea limbajului, putem spune cu siguranță că comenzile acestuia corespund pe deplin cu cele ale procesorului. Adică, Assembler folosește codurile mnemonice pe care oamenii le pot conveni să scrie.

Spre deosebire de alte limbaje de programare,Asamblatorul folosește etichete specifice în loc de adrese pentru a scrie locații de memorie. Acestea sunt traduse în așa-numitele directive cu procesul de execuție a codului. Acestea sunt adrese relative care nu afectează procesorul (nu sunt traduse în limbajul mașinii), dar sunt necesare pentru recunoaștere chiar de către mediul de programare.

Fiecare linie de procesor are propriul set de instrucțiuni. În această situație, orice proces, inclusiv codul mașinii traduse, va fi corect.

Limbajul asamblării are mai multe sintaxe, care vor fi discutate în articol.

limbaj de asamblare

Plusuri de limbaj

Cea mai importantă și convenabilă adaptare a limbajuluiAsamblatorul va permite să scrieți orice program pentru procesor pe acesta, care va fi foarte compact. Dacă codul se dovedește a fi uriaș, atunci mediul de programare redirecționează unele procese către RAM. În același timp, fac totul suficient de repede și fără eșecuri, cu excepția cazului în care, desigur, sunt controlate de un programator calificat.

Driverele, sistemele de operare, BIOS-ul, compilatoarele, interpreții etc. sunt programe în limbaj de asamblare.

Când utilizați un dezasamblator careface o traducere de la mașină la limbajul computerului, puteți înțelege cu ușurință cum funcționează o anumită activitate de sistem, chiar dacă nu există nicio explicație pentru aceasta. Cu toate acestea, acest lucru este posibil numai dacă programele sunt ușoare. Din păcate, este destul de dificil să înțelegi codurile non-banale.

Contra limbajului

Din păcate, programatorii începători (și deseoriprofesioniști) este dificil să se distingă limba. Asamblatorul necesită o descriere detaliată a comenzii necesare. Datorită necesității de a utiliza instrucțiunile mașinii, crește probabilitatea acțiunilor eronate și complexitatea execuției.

Pentru a scrie chiar și cel mai simplu program, un programator trebuie să fie calificat, iar nivelul său de cunoștințe este suficient de ridicat. Specialistul mediu, din păcate, scrie deseori coduri proaste.

Dacă platforma pentru care este creat programuleste actualizat, apoi toate comenzile trebuie rescrise manual - acest lucru este cerut de limba în sine. Asamblorul nu acceptă funcția de reglare automată a stării proceselor și înlocuirea oricăror elemente.

program de limbaj de asamblare

Comenzi de limbă

După cum sa menționat mai sus, fiecare procesor are propriul set de instrucțiuni. Cele mai simple elemente recunoscute de orice tip sunt următoarele coduri:

  • Transferul de date se face folosind mov etc.
  • Comenzi legate de aritmetică: sub, imul etc.
  • Funcțiile logice și bit-bit pot fi implementate folosind sau, și, și așa mai departe. Tocmai aceste elemente de bază ale Asamblării îi permit să fie similar cu altele.
  • Pentru a face trecerea de la unacomenzi către altul, ar trebui să scrieți următorii operatori: djnz, cfsneq, cjne. Pentru un programator fără experiență, poate părea că aceasta este doar o colecție de scrisori, dar acest lucru nu este adevărat.
  • Intrarea și ieșirea sunt utilizate atunci când este nevoie de intrare (sau ieșire) dintr-un port.
  • Comenzile de control includ int. Datorită lui, puteți opri executarea oricăror procese în favoarea acțiunii principale.
    programare microcontroler în limbaj de asamblare

Folosind directive

Programarea microcontrolerelor în limbaj(Asamblatorul permite acest lucru și face o treabă excelentă de funcționare) cel mai scăzut nivel în cele mai multe cazuri se termină bine. Cel mai bine este să utilizați procesoare constrânse de resurse. Pentru tehnologia pe 32 de biți, acest limbaj este perfect. Puteți vedea deseori directive în coduri. Ce este asta? Și pentru ce se folosește?

În primul rând, trebuie să vă concentrați asupra faptului cădirectivele nu sunt traduse în limbajul mașinii. Ele guvernează modul în care funcționează compilatorul. Spre deosebire de comenzi, acești parametri, având funcții diferite, diferă nu datorită diferitelor procesoare, ci datorită unui traducător diferit. Printre directivele principale se numără următoarele:

  • Macro-uri cunoscute.
  • Există, de asemenea, directive pe care le posedă limbajul superior. Asamblatorul le „citește” perfect și le execută.
  • Funcții de control și gestionare a modurilor de compilare.
  • Recunoașterea constantelor și variabilelor.
  • Reglarea activității programelor care se află în RAM.
    limbajul de asamblare a codului mașinii

Originea numelui

Datorită căreia limba și-a primit numele -„Asamblator”? Vorbim despre un traducător și un compilator, care criptează date. În limba engleză, Assembler nu înseamnă altceva decât un asamblator. Programul nu a fost asamblat manual, a fost utilizată o structură automată. Mai mult, în acest moment, diferența dintre termeni a dispărut deja de la utilizatori și specialiști. Limbajul de asamblare este adesea denumit limbaje de programare, deși este doar un utilitar.

Datorită denumirii colective general acceptate pentruunii oameni cred în mod eronat că există un singur limbaj de nivel scăzut (sau norme standard pentru acesta). Pentru ca programatorul să înțeleagă despre ce structură vorbim, este necesar să clarificăm pentru ce platformă este utilizat acest limbaj de asamblare.

elementele de bază ale limbajului

Instrumente macro

Limbaje de asamblare care sunt construite relativrecent, au fonduri macro. Acestea fac programul mai ușor de scris și de rulat. Datorită prezenței lor, traducătorul execută codul scris de multe ori mai repede. Când creați o selecție condițională, puteți scrie un bloc imens de comenzi, dar este mai ușor să utilizați instrumentele macro. Acestea vă vor permite să comutați rapid între acțiuni în cazul în care o condiție este îndeplinită sau nu.

Când utilizați directive ale limbajului macro, programatorulprimește macrocomenzi de asamblare. Uneori poate fi utilizat pe scară largă, iar uneori funcționalitatea sa este redusă la o singură comandă. Prezența lor în cod facilitează lucrul cu acesta, o face mai clară și mai intuitivă. Cu toate acestea, ar trebui să fiți în continuare atenți - în unele cazuri, macro-urile, dimpotrivă, înrăutățesc situația.

a placut:
0
Postări populare
Dezvoltarea spirituală
alimente
y