Sunteți pe pagina 1din 12

Fiecare microprocesor (sau calculator bazat pe un

microprocesor) are propriul său limbaj maşină, care este


exprimat în alfabetul binar{0,1}.
Acest limbaj se defineşte în etapa de proiectare a unităţii de
comandă a procesorului(calculatorului).
Unitatea de comandă este cea care citeşte instrucţiunile din
memorie(fetch), le decodifică şi le execută.
Aceste instrucţiuni reprezintă operaţii elementare: transfer
de date între memorie şi unitatea de prelucrare, operaţii
aritmetice, logice sau de modificare a fluxului de comandă
etc.
Un program în cod (limbaj) maşină mai este
denumit şi cod obiect.
Limbajul de asamblare reprezintă o codificare simbolică a
codului maşină. Aceste coduri simbolice sunt denumite
mnemonici.
Limbajul, care este foarte aproape de structura maşinii,
are următoarele avantaje:
 oferă posibilitatea utilizării tuturor resurselor şi
facilităţilor calculatorului
 permite implementarea mai eficientă(cu mai puţine
resurse şi mai rapid) a anumitor funcţii
Dar are şi unele dezavantaje:
 programele nu sunt portabile, deoarece fiecare procesor
are propriul său limbaj de asamblare, programele nu
pot fi executate pe alt tip de procesor, din altă familie
 solicită un efort mult mai mare din partea
programatorului pentru elaborarea unor aplicaţii
complexe.
De ex., un fişier sursă care conţine un program
sursă în limbaj de asamblare este mult mai mare decât un
fişier conţinând un program echivalent într-un limbaj de
nivel înalt(Pascal sau C). În schimb, programul obiect
obţinut pentru varianta în limbaj de asamblare este mult
mai mic şi în consecinţă mai rapid.
Programarea în limbaj de asamblare necesită:
 cunoaşterea structurii şi arhitecturii calculatorului
 cunoaşterea sistemului de operare şi a asamblorului.

Asambloarele sunt programe care translatează


programele sursă, scrise în limbaj de asamblare, în cod
maşină.
Operaţia de asamblare se realizează în doi paşi:
La primul pas se generează o tabelă de simboluri, ce
va conţine toate numele simbolice din program, exceptând
numele simbolice externe(definite în alte module),
instrucţiuni şi directive de asamblare.
În această etapă asamblorul contorizează instrucţiunile şi
datele şi asociază numelor simbolice o poziţie
relativă(deplasament) faţă de începutul programului, ca şi
cum programul ar începe de la adresa 0. În realitate,
programul nu se încarcă în memoria RAM de la adresa 0,
care este o zonă folosită de sistemul de operare, ci adresa
de la care se încarcă este furnizată de sistemul de operare,
în funcţie de spaţiul de memorie disponibil.
La pasul al doilea se obţine programul obiect,
translatând instrucţiune cu instrucţiune programul şi
înlocuind în instrucţiunile respective numele simbolice cu
valorile numerice asociate în tabela de simboluri.
Programul executabil se obţine în urma etapei editării de
legături, care permite legarea mai multor module .
Elementele cu care lucrează un asamblor sunt:
 Etichete – nume scrise de utilizator, cu ajutorul cărora acesta se poate
referi la anumite date sau zone de memorie.
 Instrucţiuni – scrise sub forma unor mnemonice care sugerează
acţiunea, fiecare instrucţiune a limbajului de asamblare corespunzând
unei instrucţiuni maşină. Asamblorul generează octeţii care codifică
instrucţiunea respectivă.
 Directive – reprezintă nişte indicaţii date asamblorului în diverse
scopuri cum ar fi: definirea unor segmente, machete de
macrogenerare, de rezervare a unei zone de memorie în vederea
folosirii ulterioare.
 Contor de locaţii –este un număr întreg gestionat de asamblor. În
fiecare moment, valoarea contorului coincide cu numărul de octeţi
generaţi corespunzător instrucţiunilor şi directivelor deja
întâlnite.(Utilizatorul poate utiliza această valoare prin simbolul ’$’).
Principalele servicii oferite de un asamblor:
 traducerea din scrierea cu mnemonice în cod binar;
 generarea de octeţi folosind pseudoinstrucţiuni;
 calculul unor adrese de salt(deplasamente) folosind
operaţiii cu etichete;
 evaluarea în timpul translatării a unor expresii aritmetice
simple
 posibilitatea definirii li utilizării macroinstrucţiunilor
 detectarea erorilor de sintaxă.
Etapele care trebuie parcurse pentru realizarea şi execuţia
unui program în limbaj de asamblare sunt:
 Editarea programului sursă ce are extensia .asm şi care poate fi
realizată cu orice editor(DN, NC, WC, Tpascal sau TC etc.)
 Asamblarea, furnizează programul obiect, cu extensia .obj, dacă
apar erori în faza de asamblare, se reia editarea programului,
corectând erorile respective. Asamblarea se face cu asambloarul
tasm.exe pr1.asm → pr.obj
 Editarea de legături.

tlink.exe pr1.obj → pr.exe sau pr.com


 Testarea. Fişierul executabil obţinut poate fi testat şi depanat
utilizând unul din utilitarele TurboDebugger(TD) sau Dedug(ger)
td.exe pr.exe
Pentru a nu relua de fiecare dată secvenţa de
comenzi, se poate edita un fişier de comenzi asm.bat
pentru asamblarea, editarea de legături
tasm.exe pr1.asm
tlink.exe pr1.obj
pr1.exe
Pentru obţinerea unui fişier listing se utilizează
comanda
tasm pr1,,pr1

S-ar putea să vă placă și