partea i utilitare de sistem

17
PARTEA I UTILITARE DE SISTEM CURSUL 3 ASAMBLOARE Ştefan Stăncescu 1

Upload: lori

Post on 11-Jan-2016

41 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: PARTEA I UTILITARE DE SISTEM

PARTEA IUTILITARE DE SISTEM

CURSUL 3

ASAMBLOARE

Ştefan Stăncescu

1

Page 2: PARTEA I UTILITARE DE SISTEM

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

Page 3: PARTEA I UTILITARE DE SISTEM

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

Page 4: PARTEA I UTILITARE DE SISTEM

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

Page 5: PARTEA I UTILITARE DE SISTEM

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

Page 6: PARTEA I UTILITARE DE SISTEM

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

Page 7: PARTEA I UTILITARE DE SISTEM

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

Page 8: PARTEA I UTILITARE DE SISTEM

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

Page 9: PARTEA I UTILITARE DE SISTEM

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

Page 10: PARTEA I UTILITARE DE SISTEM

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

Page 11: PARTEA I UTILITARE DE SISTEM

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

Page 12: PARTEA I UTILITARE DE SISTEM

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

Page 13: PARTEA I UTILITARE DE SISTEM

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

Page 14: PARTEA I UTILITARE DE SISTEM

ASAMBLOAREPrima trecere

14

Page 15: PARTEA I UTILITARE DE SISTEM

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

Page 16: PARTEA I UTILITARE DE SISTEM

ASAMBLOAREA doua trecere

16

Page 17: PARTEA I UTILITARE DE SISTEM

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