partea i utilitare de sistem
DESCRIPTION
Ştefan Stăncescu. PARTEA I UTILITARE DE SISTEM. CURSUL 3 ASAMBLOARE. ASAMBLOARE. Arhitectura von Neumann: Calculator cu program memorat (stored program computer): CPU(ALU+REG+PC+CPU_CTRL)+ MEM+I/E Memoria comuna - date+program(cod) – format binar - PowerPoint PPT PresentationTRANSCRIPT
PARTEA IUTILITARE DE SISTEM
CURSUL 3
ASAMBLOARE
Ştefan Stăncescu
1
ASAMBLOARE
Arhitectura von Neumann:
Calculator cu program memorat (stored program computer): CPU(ALU+REG+PC+CPU_CTRL)+ MEM+I/E
Memoria comuna - date+program(cod) – format binar
CPU executa un set de instructiuni dedicate H/W CPU
Programul “obiect”:
lista de activitati efectuate de setul de instructiuni CPU
Set fix de instructiuni simple – in binar
Flexibilitate -combinarea creativa a instructiunilor fixe
Activitate complexa – aplicatia (in binar)
2
ASAMBLOARE
Flexibilitate mai mare
prin schimbarea listei de microinstructiuni - in binar
(rularea de programe diferite pe aclesi H/W)
Program obiect
program (in binar) care controleaza direct masina (vN)
pentru o aplicatie data
Aplicatia pe masina vN prelucreaza “date” - in binar
din acelasi spatiu de memorie - in binar
preia date in – preda date out - in binar
3
ASAMBLOARE
Programatorul - creatorul de aplicatii utile - uman
Initial a folosit modelul binar (1/0) al masnii vN
copie fidela a comportamentului binar al masinii vN
greu de inteles chiar pentru programe simple
Pentru inteligibilitate, alt model de masina vN, abstract(MV?)
mnemonici literale de instructiuni (+ operanzi, etich.)
atasate masinii H/W reale
Limbajul masinii vN – binar - 1/0
Limbajul programatorului – literar – caractere (alf, num, sym)
Intre cele 2 limbaje – corespondenta biunivoca
4
ASAMBLOARE
Program sursa – prezentare a solutiei la problema
schiță cu lista de activități inteligibile,
organizată ca listă de instructiuni H/W ale masinii vN
mnemonici de instructiuni + operazi
puternic atasată structurii H/W a masinii vM
Limbajul de asamblare
mecanismul de reprezentare de solutii
cu mnemonici de instructiuni (“opcode”)
cu reprezentarea literala a activitatii circuitelor H/W
inteligibila uman – primul nivel de abstractizare
5
ASAMBLOARE
Asamblarea unui program din limbaj sursa in limbaj masina
operatia automata de trecere de la
reprezentarea literala de instructiuni cu mnemonici
la reprezentarea binara de instructiuni (direct exec)
Inteligibilitatea umana (literala A-Za-z1-9+/*-.,:”, etc.)
– inteligiblitatea masinii vN (binara 1/0)
Asamblor - Utilitar de sistem care automatizeaza asamblarea
Traduce automat - fisiere cu format sursa in
- fisiere cu forma obiect
(+ mijloace suplimentare de dezvoltare – fis list, sym, etc)6
ASAMBLOARE
Format tip al unei lini de fisie sursa in limbaj de asamblare:
Etichetă: opcode operanzi ; coment
Operatie esentiala ale unui asamblor:
transformarea unei linii de fisier sursa (caracterele liniei)
in reprezentarea binara echivalenta (1-n octeti succesivi)
Liniie adiacente din fis. sursa – octetii succesivi adiacenti
Rezultatul asamblarii
reprezentarea binara a solutiei, inteligibila de masina vN
= programul “obiect”
executabil din memoria H/W a masinii vN
7
ASAMBLOARE
Datele in limbajul de asamblare – structuri de date, de ex.
variabile de diferite dimensiuni
structuri complexe – siruri, array-uri, etc.
Asamblorul inventeaza,
operatii inexistente in H/W, numite
“pseudoinstructiuni”
si
manevre abstracte, operatii inexistente in H/W, facilitati de programare, adresare, etc. numite
“directive”
“
8
ASAMBLOARE
PSEUDOFUNCŢIE EFECT ASUPRA PROGRAMULUI OBIECT ASAMBLAT
DB Defineşte conţinutul de memorie pe octet
DW Defineşte conţinutul de memorie pe cuvânt
RESB Alocă o rezervă de spaţiu de memorie, pe octet
RESW Alocă o rezervă de spaţiu de memorie, pe cuvânt
EQU Defineşte un nume simbolic pentru o constantă
START Stabileşte numele de modul şi adresa de început, ca referinţă iniţială
END Stabileşte sfârşitul şi adresa de lansare
ORG Stabileşte o nouă adresă de la care se fixează referinţe de adrese
SECT Stabileşte secţiunea curentă
9
ASAMBLOARE
NUME DIRECTIVA EFECT ASUPRA PROGRAMULUI OBIECT ASAMBLAT
BIT Stabileşte modul de organizare în 8/16/32/64 biţi
MODEL Stabileşte un set de dimensiuni pentru spaţiile de adresă pe secţiuni
PUBLIC Stabileşte variabilele definite pentru module externe
EXTERN Stabileşte variabilele definite în modulele externe
INCLUDE Include un alt program sursă în programul sursă curent
INCLB Include un alt program binar în programul obiect curent
IF/ENDIF Delimitează un grup de linii asamblate condiţionat
10
ASAMBLOARE
Formate de fisiere obiect
structuri de date destinate incarcatoarelor de cod masina
produse intermediare ale asambloarelor
destinate a fi procesate de link- loadere
Dedicate procedurilor de incarcare ale sistemelor de operare
Formate auxiliare (listare, simboluri, etc)
destinate operatiilor interactive de
dezvoltare, depanare, testare, verificare, validare)
11
ASAMBLOAREFormat obiect
12
Nume Nr. crt. octet Semnificaţie câmp
Început(I)
1 Cod câmp, caracter „I”
2-9 Nume program
10-13 Adresă de încărcare în memorie
14-15 Lungime în octeţi (max. 64KB)
Cuprins(C)
16 Cod câmp, caracter „C”
17-18 Adresa început paragraf curent
19-20 Lungime paragraf curent
21-148 128 octeţi de paragraf de cod obiect propriu-zis, în format executabil de hardware
149-??? Repetarea zonei 17-148
Sfârşit(E)
???+1 Cod câmp, caracter „E”
???+2 – ???+3 Adresa primei instrucţiuni de executat
???+4 EOF, (end of file) Simbol de sfârşit de fişier
ASAMBLOAREStructuri de date ale unu asamblor
OPTAB colecţie de coduri (op-codes) R/O organizate după numele simbolice ale mnemonicelor microinstrucţiunilor
Se stabileste de structura H/W imuabila.
SYMTAB tabelă cu numelor simbolice, R/W, inventate de programator sau deduse din solutia programului,
Se stabileste de specificul aplicatiei, se completeaza in plealabilul asamblarii,prin scanarea fisisrului sursa si gasirea simbolurilor inventate de programator
LOCCTR numarator de locatii de memorie
13
ASAMBLOAREPrima trecere
14
ASAMBLOARE Operaţiile efectuate de asamblor în prima trecere
• stabilirea adreselor în spaţiul de memorie al CPU pentru toate instrucţiunile programului sursă folosind LOCCTR;
• stabilirea adreselor de etichete cu LOCTTR şi memorarea lor în SYMTAB;
• calculul expresiilor care definesc simboluri;
• îndeplinirea unor directive ca RESB, RESW, DB, DW,
• execuţia directivelor de modificare a adresei curente în program, cu LOCCTR;
• controlul gramatical al fişierului sursă, în conformitate cu gramatica limbajului de asamblare folosit, cu semnalarea erorilor.
15
ASAMBLOAREA doua trecere
16
ASAMBLOARE Operaţiile efectuate de asamblor în a doua trecere
• traducerea mnemonicilor de instrucţiuni în cod maşină folosind OPTAB;
• calculul operanzilor din expresii, în care se înlocuiesc simbolurile din SYMTAB;
• generarea datelor conform directivelor de tip DB, DW;
• execuţia celorlalte directive;
• înscrierea fişierului obiect, conform formatului standard adecvat editorului de legături şi încărcătorului;
• înscrierea fişierului de listare cu informaţiile necesare documentării şi depanării programului, inclusiv cu adresele locaţiilor în eroare şi codurile erorilor.
17