170 likes | 286 Views
Ş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
E N D
Ştefan Stăncescu PARTEA IUTILITARE 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 • 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)
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
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
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
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)
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
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” • “
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)
ASAMBLOAREStructuri de date ale unu asamblor • OPTABcolecţie de coduri (op-codes) R/O organizate după numele simbolice ale mnemonicelor microinstrucţiunilor • Se stabileste de structura H/W imuabila. • SYMTABtabelă 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
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.
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.