Asambloare

Curs
7/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 12 în total
Cuvinte : 3820
Mărime: 31.75KB (arhivat)
Cost: Gratis
Profesor îndrumător / Prezentat Profesorului: Stefan Stanescu

Extras din document

2.1. FUNCŢIILE UNUI ASAMBLOR

Pentru a rezolva o problemă care nu este rezolvată de programele curente, un dezvoltator de aplicaţii care a ajuns la concluzia că trebuie să intervină la nivelul maşinii de calcul, are nevoie să scrie o listă de instrucţiuni de maşină (X86, ALPHA, 8051, etc.) pentru implementarea algoritmilor proprii. Acest text listă cu linii de instrucţiuni se va întocmi într-o reprezentare standardizată de fişier sursă, conform cu un limbaj de asamblare al microprocesorului dat.

Asamblorul (figura 2.1), este un program din domeniul utilitarelor de sistem destinate dezvoltatorilor de aplicaţii, dedicat unui limbaj de asamblare pentru un microprocesor dat. Asamblorul prelucrează un text sursă pentru a construi un fişier în cod obiect cu instrucţiuni scrise în codul maşinii. Fişierul obiect, cu modificări minime, este adus în memoria principală a microprocesorului şi este lansat în execuţie.

Figura 2.1 Asamblorul converteşte fişiere sursă în fişiere obiect

Limbajul de asamblare în care este scris fişierul sursă include un set de reguli de manipulare a unui set stabilit de cuvinte, pentru a manevra mnemonici de instrucţiuni maşină, operatori, adrese şi variabile, apeluri de gestiune proprie a programului şi a datelor. Asamblarea este o operaţie univocă, adică, pornind de la acelaşi program sursă, se obţine întotdeauna acelaşi fişier obiect. Deoarece se poate obţine un acelaşi program obiect corect asamblat pornind de la programe sursă diferite, asamblarea nu este biunivocă

Operaţia inversă asamblării este dezasamblarea. Uzual, un dezasamblor atribuie mnemonici instrucţiunilor codului obiect dintr-un fişier obiect şi atribuie etichete operanzilor instrucţiunilor cu referiri la adrese de program, construind un fişier sursă. Sarcina cea mai dificilă la operaţia de dezasamblare constă în decelarea zonelor de date de cele de cod, care de obicei se face interactiv. Dezasamblarea este utilă în depanarea unui program obiect al cărui program sursă nu este disponibil.

Asamblorul îndeplineşte funcţia principală de prelucrare de mnemonici de instrucţiuni, de operanzi şi de etichete de adresare, unele funcţii impuse de structura particulară a maşinii şi alte funcţii de organizare a operaţiei însăşi a asamblării numite directive de asamblare ([9] sau specificaţiile unor asambloare curente).

Directivele de asamblare, numite şi pseudocomenzi, controlează desfăşurarea proprie a activităţii de asamblare. Ele conduc operaţiile pentru asamblare, influenţând alcătuirea programului obiect. De regulă, pseudocomenzile nu produc cod propriu, dar pot modifica generarea de cuvinte de cod obiect, influenţând valorile de operanzi şi de adrese. (de exemplu: CODE, DATA, ORG, END, DBYTE, DWORD.) sau chiar pot genera, condiţionat, cod obiect (la directive de asamblare condiţionată IF, ELSE, ENDIF).

Tabelul 2.1 Exemple de directive de asamblare.

NAME Stabileşte numele modulului obiect

CODE, DATA Alege începutul modulului de cod, date

ORG Stabileşte numărătorul de program la o nouă valoare

END Stabileşte sfârşitul fişierului sursă şi adresa de lansare

DBYTE, DWORD Defineşte conţinutul de memorie pe octet, cuvânt

IF,ELSE,ENDIF Marchează blocurile de asamblare condiţionată

Funcţiile specifice maşinii stabilesc anumite configuraţii de lucru, permise de hardware. Astfel de apeluri de asamblor sunt .8086, .186, .286, .386, .387, care aleg setul permis de instrucţiuni maşină, SMALL, LARGE, HUGE care aleg modelul de memorie, etc. ([9] [10],[11]).

Tabelul 2.2. Exemple de apeluri la funcţii specifice maşinii.

.8086, .8087, .186 Stabileşte setul de instrucţiuni ale 8086/7 sau 80186

.286, .386/7 Stabileşte setul de instrucţiuni ale 80286 sau 80386/7

SMALL Alege modelul de memorie SMALL

LARGE Alege modelul de memorie LARGE

HUGE Alege modelul de memorie HUGE

2.2. FORMATE DE FIŞIERE

Asamblorul este un utilitar de sistem care primeşte un fişier sursă şi scoate un fişier obiect şi un fişier de listare.

Fişierul sursă este o structură de date care reprezintă programul scris în forma standardizată impusă de limbajul ataşat setului de instrucţiuni suportat de maşină. Fişierul sursă conţine o listă de linii cu instrucţiuni de asamblare, care pot fi mnemonici ale instrucţiunilor proprii maşinii, la care se ataşează operanzi, variabile, directive proprii asamblorului, care îşi gestionează propria activitate, etichete, constante, comentarii sau alte instrucţiuni speciale ataşate configuraţiei hardware particulare a maşinii.

Prin prelucrarea fişierului sursă mnemonicile de instrucţiuni sunt transformate în cod maşină, constantele şi de operanzii sunt transformate din reprezentarea simbolică în reprezentarea numerică în cod maşină, ţinând cont şi de alte directive de asamblare, sunt efectuate testări de corectitudine a programului, sunt semnalează erorile. Prelucrarea se încheie prin asamblarea rezultatelor într-un fişier cu codul obiect destinat a fi încărcat prin operaţii minime de poziţionare în memoria operativă a maşinii.

Fişierul obiect are o structură modulară, din bloc de început cu informaţii generale (numele de program sursă, o adresă de început, lungimea programului), blocuri de cod cu instrucţiuni în cod maşină specifică (adresele de încărcare, lungimea de cod şi cuvintele de cod propriu-zise, în cod hexazecimal) şi blocul de încheiere al unui fişier obiect cu adresa de start şi indicatorul de sfârşit de fişier, EOF (End Of File).

Preview document

Asambloare - Pagina 1
Asambloare - Pagina 2
Asambloare - Pagina 3
Asambloare - Pagina 4
Asambloare - Pagina 5
Asambloare - Pagina 6
Asambloare - Pagina 7
Asambloare - Pagina 8
Asambloare - Pagina 9
Asambloare - Pagina 10
Asambloare - Pagina 11
Asambloare - Pagina 12
Asambloare - Pagina 13

Conținut arhivă zip

  • Asambloare.doc

Alții au mai descărcat și

Limbaje Formale și Translatoare

1. Introducere Curs1 LFT Limbajele de nivel înalt au o serie de avantaje în raport cu limbajele de asamblare. Pentru a putea însă folosi limbaje...

Programare HTML și XML

CAPITOLUL I NOTIUNI GENERALE [13, 28, 78, 77] 1.1 INTERNET Internet-ul, sau reteaua mondială de calculatotore, reprezintă un puternic instrument...

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Limbaje de Asamblare

Introducere. Necesitatea programării în limbaje de asamblare Modalităţile de programare s-au schimbat imens de la inventarea calculatorului, în...

Proiectarea unei interfețe pentru comanda unui motor de curent continuu folosind un microcontroler

Microcontrolerele Siemens SAB 80C166 Caracteristici Firma Siemens a dezvoltat propria linie de microcontrolere. Aceasta cuprinde microcontrolere...

Algoritmi

ETAPELE REZOLVARII UNEI PROBLEME ALGORITMUL – reprezintă o succesiune finită şi ordonată de operaţii univoc determinate, efectuate mecanic, care...

Software de Sistem

Cap.1 - INTRODUCERE 1.1 DEFINIŢII Propoziţia simplă este o aserţiune, o afirmaţie, exprimată minimal printr-o acţiune concretă, un predicat,...

Compilatoare

Evolutia vietii este insotita de o permanenta acumulare de experienta statistica, dobandita prin incercari directe ale unor subiecti activi....

Te-ar putea interesa și

Sisteme de Operare - Sistemul de Operare Windows XP

1 Sisteme de operare 1.1 Definirea sistemelor de operare.Generalităţi Un sistem de operare este un ansamblu de programe de control şi de serviciu...

Aplicație grafică - conquest

I. 1. Descrierea Programului Programul reprezinta o aplicatie a unit-ului graph, un joc simplu de strategie (gen TBS, daca ar fi sa-l incadram in...

Macroprocesoare

Macroinstrucţiunea este o scriere comodă a unor grupuri de instrucţiuni folosite mai des. Într-un asamblor, care corespunde unui limbaj construit...

Programare în Limbaj de Asamblare

1. Structura unui calculator numeric de tip John von Neumann 2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare. Asambloarele...

Arhitectura calculatoarelor

1.1. Sistemul de calcul 1.1.1. Definiţii Sistemul de calcul (SC, System Computer sau calculator) este reprezentat de o structură destinată...

Utilizarea și Programarea Calculatoarelor

Introducere în programarea calculatoarelor - Circuitele electronice ale calculatoarelor sunt capabile sa efectueze un numar limitat de operaCii...

Utilizarea și Programarea Calculatorului

Introducere în programarea calculatoarelor 1. Utilizarea unui calculator 2. Programarea unui calculator 3. Structura şi funcţionarea unui...

Software de Sistem

Cap.1 - INTRODUCERE 1.1 DEFINIŢII Propoziţia simplă este o aserţiune, o afirmaţie, exprimată minimal printr-o acţiune concretă, un predicat,...

Ai nevoie de altceva?