1 / 16

Bazele Tehnologiei Informa ţi ei Curs 10

Bazele Tehnologiei Informa ţi ei Curs 10. Prof. dr. Răzvan Zota ASE Bucureşti Facultatea de Cibernetică, Statistică şi Informatică Economică zota@ase.ro http:// zota .ase.ro/ bti. Bazele Tehnologiei Informaţiei – partea a 2-a. Noţiuni preliminarii, asambloare, compilatoare, interpretoare

meg
Download Presentation

Bazele Tehnologiei Informa ţi ei Curs 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bazele Tehnologiei InformaţieiCurs 10 Prof. dr. Răzvan Zota ASE Bucureşti Facultatea de Cibernetică, Statistică şi Informatică Economică zota@ase.ro http://zota.ase.ro/bti

  2. Bazele Tehnologiei Informaţiei – partea a 2-a • Noţiuni preliminarii, asambloare, compilatoare, interpretoare • Microprocesorul • Regiştrii microprocesorului Intel Pentium • Noţiuni de ASM • Memoria şi ierarhia de memorie • Memoria - segmentare şi paginare • Comunicaţii seriale şi paralele

  3. Bibliografie • Bazele tehnologiei informaţiei, F. Năstase, R. Zota – Ed. InfoMega, 2007 • Elemente de arhitectură a sistemelor de calcul şi operare - R. Zota, Ed. ASE, 2004 (pt curs şi seminar) • Programare în limbaj de asamblare – Gh. Muscă, Ed. Teora, 1998 (pt seminar) • Intel Architecture Users’ Manual – Intel

  4. Conţinut • Noţiuni preliminarii • Cod-maşină • Asambloare • Interpretoare • Compilatoare

  5. Introducere • Datele: • Programe (listă de instrucţiuni utilizate într-un anumit scop) • Date • “Arhitectura HARVARD”

  6. Limbaje de nivel înalt şi de nivel jos • Microprocesorul – limbaj propriu – mulţimea de instrucţiuni maşină – cod-maşină - LLL (Low Level Language) • HLL (High Level Language) Limbaj de nivel înalt (BASIC, Pascal, FORTRAN, C, C++, Java)

  7. Exemplu HLL (C) i=j+k; ASM MOV eax,[12011234] ADD eax,[12011238] MOV [1201123C], eax Cod binar maşină 0010 0000 0011 1001 0001 0010 0000 0001 0001 0010 0011 0100 1101 0000 1011 1001 0001 0010 0000 0001 0001 0010 0011 1000 0010 0011 1100 0000 0001 0010 0000 0001 0001 0010 0011 1100

  8. Instrucţiuni cod-maşină Instrucţiunile maşină pot fi grupate în 4 mari categorii. Ele pot fi instrucţiuni pentru: • Transferul şi manipularea datelor; • Operaţii de intrare/ieşire; • Transferul controlului programului; • Controlul maşinii (termină procesarea, resetează maşina, etc.)

  9. Compilatoare şi asambloare • Compilatoarele translatează instrucţiunile HLL în binar cod maşină pentru a fi direct executate de către computer. • Asambloarele şi limbajele de asamblare au fost utilizate înainte de apariţia compilatoarelor • Limbajul de asamblare posedă instrucţiuni cod-maşină ce poartă denumirea de mnemonice (provin de la cuvintele în engleză ce specifică acţiunea lor) precum ADD, MOV, SUB, CMP sau JMP. • Translatarea unui program HLL se poate face fie prin intermediul unui compilator, fie prin intermediul unui interpretor.

  10. EDIT – COMPILE – LINK - LOAD

  11. Editarea de legături • Dimensiunile mari ale programelor de astăzi a condus la împărţirea acestora în mai multe părţi, denumite module. • Pentru obţinerea unui program executabil, fiecare modul trebuie proiectat, scris şi compilat iar apoi toate componentele rezultate trebuie combinate împreună de un editor de legături (linker sau link editor). • Acest proces nu implică doar punerea împreună a componentelor, ci presupune rezolvarea referinţelor externe. Atunci când un program este partiţionat în module, sunt frecvente cazurile în care codul dintr-un modul trebuie să facă referire la date sau sub-rutine dintr-un alt modul pereche.

  12. Editarea de legături –cont. • Compilatoarele translatează un singur modul la un moment dat. Atunci când un compilator încearcă să determine echivalentul numeric al acestor referinţe simbolice, va descoperi că nu există valori valide în cadrul modului curent. • Aceste simboluri nerezolvate sunt denumite referinţe externeşi rămân simbolice (fără o valoare numerică) până în momentul în care editorul de legături rezolvă aceste referinţe. Interpretoarele oferă o alternativă pentru a rula programe scrise într-un limbaj înalt de programare.

  13. Interpretoare În loc de a translata instrucţiunile de nivel înalt în cod maşinăşi de a crea un program executabil, interpretorul citeşte instrucţiunile de nivel înalt una câte unaşi le execută folosind o bibliotecă proprie de rutine. În acest mod, codul executabil nu este generat din codul sursă ci este conţinut (integrat) în cadrul interpretorului. Interpretorul "vede" codul sursă HLL ca date de intrare care trebuie analizate şi apoi trebuie procesate conform semnificaţiei lor. Avantajele folosirii unui interpretor sunt: pornirea rapidă şi aparenta lipsă a complexităţii legate de compilare şi editare de legături.

  14. Interpretoare Dezavantajul este căoperează foarte lent; programele compilate au fost întotdeauna superioare ca viteză programelor interpretate. Este ceva obişnuit ca interpretoarele să convertească instrucţiunile de intrare într-o formă intermediară alcătuită din anumite simboluri, înainte de a se lua o decizie asupra acţiunilor ce vor fi executate (figura 3). Simbolurile generate sunt apoi trecute unui decodificator care va selecta rutina corespunzătoare ce va fi executată. Uneori interpretorul este văzut ca o "maşină virtuală" deoarece se comportă într-un fel ca o componentă hardware: citeşte instrucţiuni pe rând şi se supune lor. Interpretoarele apropie nivelul execuţiei instrucţiunilor de nivelul programului conceput în limbajul de nivel înalt.

  15. Interpretoare

  16. Interpretor Java Limbajul de programare Java posedă o modalitate interesantă de compilare şi interpretare ilustrată în figura 4.

More Related