Cuprins
- 1. Structura unui calculator numeric de tip John von Neumann.(pag 1)
- 2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare.(pag 1)
- 3. Etapele parcurse pentru realizarea unui program în limbaj de asamblare.(pag 2)
- 4. Operatiile executate în mod repetat de procesor, la care se rezuma functionarea sa. (pag 2)
- 5. Descrieti unitatile functionale ale unui procesor (286/386/486/Pentium). (pag 2-3)
- 6. Structura interna a procesorului 286.(pag 3)
- 7. Structura bloc a procesorului 386. (pag 4)
- 8. Structura bloc a procesorului 486.(pag 4)
- 9. Unitatile componente ale procesorului 386/486. (pag 4-5)
- 10. Îmbunatatiri aduse procesoarelor Pentium fata de procesorul 486. (pag 5)
- 11. Descrieti câteva (2-3) concepte noi utilizate la procesoarele Pentium. (pag 5)
- 12. Operatiile realizate de procesor pe durata unui ciclu de magistrala, pentru comanda altor dispozitive. (pag 5-6)
- 13. Resursele procesorului (registrele sale, dimensiune, tipul lor, etc.) (pag 6)
- 14. Descrieti indicatorii din registrul indicatori (stare, control, speciali).(pag 6-7)
- 15. Organizarea memoriei (modalitatea de memorare a datelor, instructiunilor, ref la mem-adresa logica). (pag 7)
- 16. Generarea adreselor fizice în modul real de adresare. (pag 7-8)
- 17. Generarea adreselor fizice în modul protejat de adresare virtuala. nu exista
- 18. Structura unui descriptor de segment (câmpurile continute de acesta). (pag 8)
- 19. Formatul unui selector. Modul de calcul al spatiului virtual de memorie gestionat de procesor. (pag 8)
- 20. Niveluri de privilegiu. Obiecte recunoscute de procesor ce contin niveluri de privilegiu.(pag 8-9)
- 21. Organizarea spatiului de intrare / iesire. (pag 9)
- 22. Sistemul de întreruperi. Tipuri de întreruperi. (pag 9)
- 23. Reprezentarea schematica a sistemului de întreruperi. (pag 10)
- 24. Întreruperile externe. (pag 10)
- 25. Întreruperile interne. (pag 10-11)
- 26. Întreruperile : " single step (pas cu pas)" si "breakpoint". (pag 11)
- 27. Tabela vectorilor de întrerupere. (pag 11-12)
- 28. Întreruperile în mod protejat (IDT, diferente fata de modul real).(pag 12)
- 29. Structura procedurilor de tratare a întreruperilor. (pag 12)
- 30. Operatiile realizate de procesor la aparitia unei întreruperi. (pag 13)
- 31. Formate de instructiuni. (pag 13-14)
- 32. Moduri de adresare (enumerare, exemple de instructiuni). (pag 14)
- 33. Modul de calcul al adresei fizice a unui operand (reprezentare schematica). (pag 14)
- 34. Modul de transformare a adresei logice în adresa fizica. (pag 15)
- 35. Sursele pe baza carora se calculeaza adresa fizica, în functie de modul de adresare (pag 15).
- 36. Tipuri de prefixe.(pag 15)
- 37. Descrierea unor moduri de adresare; exemple de instructiuni si situatii de utilizare a acestora.(pag 16-17-18)
- 38. Identificatori în limbajul de asamblare (standard si definiti de utilizator). (pag 18)
- 39. Tipuri de constante si reprezentarea lor.(pag 18-19-20)
- 40. Tipuri de propozitii în limbaj de asamblare; sintaxa unei instructiuni. (pag 20)
- 41. Declararea datelor în limbaj de asamblare, exemple.(pag 20-21)
- 42. Operatorii SEG, OFFSET, TYPE. (pag 21-22)
- 43. Operatorii LENGTH, SIZE si PTR. (pag 22-23)
- 44. Operatorii SHORT, WIDTH, MASK. (pag 23-24)
- 45. Directivele ORG, EQU si simbolul contor program $. (pag 24)
- 46. Definirea completa a segmentelor. (pag 24)
- 47. Definirea simplificata a segmentelor. (pag 24)
- 48. Asociere segmentelor cu registrele segment. Pseudoinstructiunea ASSUME. (pag 25)
- 49. Initializarea registrelor segment. (pag 25)
- 50. Prefix segment. Referinte anonime. (pag 25)
- 51. Reguli pentru determinarea registrului segment implicit. (pag 25)
- 52. Definirea si utilizarea grupurilor de segmente. (pag 25)
- 53. Setul de instructiuni; setul de instructiuni de baza. (pag 26)
- 54. Formatul datelor aritmetice. (pag 26)
Extras din notiță
1. Structura unui calculator numeric de tip John von Neumann
2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare.
Asambloarele sunt programe care translateaza programele sursa, scrise in limbaj de asamblare, in cod masina.
Operatia de asamblare se realizeaza in doi pasi:
1. La primul pas se genereaza o tabela de simboluri, ce va contine toate numele simbolice din program, exceptand numele simbolice externe (definite in alte module), instructiuni si directive de asamblare. In aceasta etapa asamblorul contorizeaza instructiunile si datele si asociaza numelor simbolice o pozitie relativa (deplasament) fata de inceputul programului, ca si cum programul ar incepe de la adresa 0. In realitate, programul nu se incarca in memoria RAM de la adresa zero, care este zona folosita de sistyemul de operare, ci adresa de la care se incarca este furnizata de sistemul de operare, in functie de spatiul de memorie disponibil; din acest motiv programul furnizat de asamblor este relocabil.
2. La pasul al doilea se obtine programul obiect, translatand instructiune cu instructiune programul si inlocuind in instructiunile respective numele simbolice cu valorile numerice asociate in tabela de simboluri. Programul executabil se obtine in urma etapei editarii de legaturi, care permite legarea mai multor module relocabile intr-un singur fisier; acest fisier va contine fisierul executabil, rezolvandu-se toate referintele incrucisate care au fost folosite in alte module.
3. Etapele parcurse pentru realizarea unui program în limbaj de asamblare.
4. Operatiile executate în mod repetat de procesor, la care se rezuma functionarea sa. (ciclurile realizate de procesor pentru executia unei instructiuni)
1. Citeste instructiunea pe durata acestui ciclu se transmite adresa instructiunii de executat si se aduce, din memorie, instructiunea in CPU (ciclul Fetch).
2. Decodifica instructiunea.
3. Transmite adresa si citeste un operand din memoriem daca se specifica in instructiune (ciclul Read)
4. Executa instructiunea (ciclul Execution).
5. Transmite adresa si scrie rezultatul in memorie, daca intructiunea o cere (ciclul Write).
5. Descrieti unitatile functionale ale unui procesor (286/386/486/Pentium).
Cele patru unitati functionale ale procesorului 286 sunt: unitatea de adresare (AU), unitatea de interfata cu magistrala (BU), unitatea de decodificare instructiuni (IU) si unitatea de executie (EU).
Unitatea de adresare(AU Address Unit) determina adresa fizica si contine un sumator de deplasament (offset), care determina deplasamentul in functie de modul de adresare si un sumator de adrese fizice (de 20 sau 24 biti, in functie de modul de lucru); aceasta determina adresa fizica, ca suma intre adresa de segment si offset. De asemenea, unitatea mai realizeaza diferite verificari (in modul protejat), verifica limita si dimensiunea unui segment si furnizeaza adresa de baza a segmentului; aceasta unitate este complet izolata de exterior.
Unitatea de interfata cu magistrala (BU Bus Unit) contine circuite driver si latch pentru adrese, o unitate de citire anticipata a instructiunilor (PreFetcher), interfata cu extensia de procesor (extensia de procesor este un alt procesor specializat, cum ar fi procesul(?) de intrare/iesire sau coprocesorul matematic, devenit unitate in virgula mobila - FPU), logica pentru controlul magistralei, o coada de instructiuni (de 6 octeti) si realizeaza transmisia/receptia datelor. Luungimea cozii a fost aleasa astfel incat BU sa tina ocupata unitatea de executie cat mai mult timp posibil. De fapt, aceasta unitate realizeza comunicatia cu exteriorul.
Unitatea de citire anticipata (prefetcher) a instructiunilor realizeaza functia de anticipare a programului. Atunci cand BU nu efectueza cicluri de magistrala (citire/scriere operand) pentru executia unei instructiuni, aceasta unitate utilizeaza BU pentru citirea secventiala, in avans a fluxului de instructiuni. BU lanseaza o cerere de citire (din memorie) de instructiune, imediat ce exista 2 octeti liuberi in coada de instructiuni; citirea
Preview document
Conținut arhivă zip
- Programare in Limbaj de Asamblare.doc