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

Criptografie si Securitatea Informatiei

1.1 Noţiuni de teoria numerelor 1.1.1 Numere prime Fiind date două numere naturale m şi n, spunem că m divide pe n, sau că n este multiplu al...

Multiprocesoare

INTRODUCERE “Necesarul de simulări al Departamentului pentru Energie (DOE) al Statelor Unite depăşeşte cu mult capacitatea celor mai puternice...

Procesorul - Caile de Date si Unitatea de Control

Suntem gata sa implementam procesorul MIPS: Cap 2: performanta unei masini e determinata de 3 factori cheie: nr de instructiuni, durata ciclului...

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...

Criptografie

Caracteristicile unui sistem de criptare 1. Confident¸ialitate (privacy): proprietatea de a p˘astra secretul informat¸iei, pentru ca aceasta s˘a...

Rețele Neuronale și Logica Fuzzy în Automatizări

Prefaţă În proiectarea sistemelor de reglare automată, un algoritm competitiv ar trebui să valorifice orice fel de informaţie legată de procesul...

Microcontrolere PIC

Capitolul 1: microcontroler PIC16F887 - Dispozitiv de ansamblu asupra PIC16F887 este una dintre cele mai noi produse de Microchip. Conţine toate...

Configurare Bios

Dupa ce am conectat la priza de curent alternativ atit calculatorul cit si monitorul apasam pe butonul de pornire a calculatorului si apoi pe...

Ai nevoie de altceva?