Programare în Limbaj de Asamblare

Notiță
6/10 (3 voturi)
Domeniu: Automatică
Conține 1 fișier: doc
Pagini : 27 în total
Cuvinte : 12372
Mărime: 1008.03KB (arhivat)
Publicat de: Octaviu-Relu Costin
Puncte necesare: 4
Profesor îndrumător / Prezentat Profesorului: vasile lungu
Rezolvari partial PLAS

Cuprins

  1. 1. Structura unui calculator numeric de tip John von Neumann.(pag 1)
  2. 2. Ce sunt asambloarele? Descrieti etapele procesului de asamblare.(pag 1)
  3. 3. Etapele parcurse pentru realizarea unui program în limbaj de asamblare.(pag 2)
  4. 4. Operatiile executate în mod repetat de procesor, la care se rezuma functionarea sa. (pag 2)
  5. 5. Descrieti unitatile functionale ale unui procesor (286/386/486/Pentium). (pag 2-3)
  6. 6. Structura interna a procesorului 286.(pag 3)
  7. 7. Structura bloc a procesorului 386. (pag 4)
  8. 8. Structura bloc a procesorului 486.(pag 4)
  9. 9. Unitatile componente ale procesorului 386/486. (pag 4-5)
  10. 10. Îmbunatatiri aduse procesoarelor Pentium fata de procesorul 486. (pag 5)
  11. 11. Descrieti câteva (2-3) concepte noi utilizate la procesoarele Pentium. (pag 5)
  12. 12. Operatiile realizate de procesor pe durata unui ciclu de magistrala, pentru comanda altor dispozitive. (pag 5-6)
  13. 13. Resursele procesorului (registrele sale, dimensiune, tipul lor, etc.) (pag 6)
  14. 14. Descrieti indicatorii din registrul indicatori (stare, control, speciali).(pag 6-7)
  15. 15. Organizarea memoriei (modalitatea de memorare a datelor, instructiunilor, ref la mem-adresa logica). (pag 7)
  16. 16. Generarea adreselor fizice în modul real de adresare. (pag 7-8)
  17. 17. Generarea adreselor fizice în modul protejat de adresare virtuala.  nu exista
  18. 18. Structura unui descriptor de segment (câmpurile continute de acesta). (pag 8)
  19. 19. Formatul unui selector. Modul de calcul al spatiului virtual de memorie gestionat de procesor. (pag 8)
  20. 20. Niveluri de privilegiu. Obiecte recunoscute de procesor ce contin niveluri de privilegiu.(pag 8-9)
  21. 21. Organizarea spatiului de intrare / iesire. (pag 9)
  22. 22. Sistemul de întreruperi. Tipuri de întreruperi. (pag 9)
  23. 23. Reprezentarea schematica a sistemului de întreruperi. (pag 10)
  24. 24. Întreruperile externe. (pag 10)
  25. 25. Întreruperile interne. (pag 10-11)
  26. 26. Întreruperile : " single step (pas cu pas)" si "breakpoint". (pag 11)
  27. 27. Tabela vectorilor de întrerupere. (pag 11-12)
  28. 28. Întreruperile în mod protejat (IDT, diferente fata de modul real).(pag 12)
  29. 29. Structura procedurilor de tratare a întreruperilor. (pag 12)
  30. 30. Operatiile realizate de procesor la aparitia unei întreruperi. (pag 13)
  31. 31. Formate de instructiuni. (pag 13-14)
  32. 32. Moduri de adresare (enumerare, exemple de instructiuni). (pag 14)
  33. 33. Modul de calcul al adresei fizice a unui operand (reprezentare schematica). (pag 14)
  34. 34. Modul de transformare a adresei logice în adresa fizica. (pag 15)
  35. 35. Sursele pe baza carora se calculeaza adresa fizica, în functie de modul de adresare (pag 15).
  36. 36. Tipuri de prefixe.(pag 15)
  37. 37. Descrierea unor moduri de adresare; exemple de instructiuni si situatii de utilizare a acestora.(pag 16-17-18)
  38. 38. Identificatori în limbajul de asamblare (standard si definiti de utilizator). (pag 18)
  39. 39. Tipuri de constante si reprezentarea lor.(pag 18-19-20)
  40. 40. Tipuri de propozitii în limbaj de asamblare; sintaxa unei instructiuni. (pag 20)
  41. 41. Declararea datelor în limbaj de asamblare, exemple.(pag 20-21)
  42. 42. Operatorii SEG, OFFSET, TYPE. (pag 21-22)
  43. 43. Operatorii LENGTH, SIZE si PTR. (pag 22-23)
  44. 44. Operatorii SHORT, WIDTH, MASK. (pag 23-24)
  45. 45. Directivele ORG, EQU si simbolul contor program $. (pag 24)
  46. 46. Definirea completa a segmentelor. (pag 24)
  47. 47. Definirea simplificata a segmentelor. (pag 24)
  48. 48. Asociere segmentelor cu registrele segment. Pseudoinstructiunea ASSUME. (pag 25)
  49. 49. Initializarea registrelor segment. (pag 25)
  50. 50. Prefix segment. Referinte anonime. (pag 25)
  51. 51. Reguli pentru determinarea registrului segment implicit. (pag 25)
  52. 52. Definirea si utilizarea grupurilor de segmente. (pag 25)
  53. 53. Setul de instructiuni; setul de instructiuni de baza. (pag 26)
  54. 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

Programare în Limbaj de Asamblare - Pagina 1
Programare în Limbaj de Asamblare - Pagina 2
Programare în Limbaj de Asamblare - Pagina 3
Programare în Limbaj de Asamblare - Pagina 4
Programare în Limbaj de Asamblare - Pagina 5
Programare în Limbaj de Asamblare - Pagina 6
Programare în Limbaj de Asamblare - Pagina 7
Programare în Limbaj de Asamblare - Pagina 8
Programare în Limbaj de Asamblare - Pagina 9
Programare în Limbaj de Asamblare - Pagina 10
Programare în Limbaj de Asamblare - Pagina 11
Programare în Limbaj de Asamblare - Pagina 12
Programare în Limbaj de Asamblare - Pagina 13
Programare în Limbaj de Asamblare - Pagina 14
Programare în Limbaj de Asamblare - Pagina 15
Programare în Limbaj de Asamblare - Pagina 16
Programare în Limbaj de Asamblare - Pagina 17
Programare în Limbaj de Asamblare - Pagina 18
Programare în Limbaj de Asamblare - Pagina 19
Programare în Limbaj de Asamblare - Pagina 20
Programare în Limbaj de Asamblare - Pagina 21
Programare în Limbaj de Asamblare - Pagina 22
Programare în Limbaj de Asamblare - Pagina 23
Programare în Limbaj de Asamblare - Pagina 24
Programare în Limbaj de Asamblare - Pagina 25
Programare în Limbaj de Asamblare - Pagina 26
Programare în Limbaj de Asamblare - Pagina 27

Conținut arhivă zip

  • Programare in Limbaj de Asamblare.doc

Alții au mai descărcat și

Modelarea Matlab-Simulink a Unei Sere

Cunoasterea duratei de timp de la semanat pâna la rasaritul plantelor mai are însemnatate si pentru obtinerea unor productii cat mai timpurii. Daca...

Circuite logice secvențiale

In multe aplicatii este nevoie de un element care sa prezinte 2 stari diferite, cu posibilitatea de a trece dintr-o stare in cealalta, fara sau in...

Proiectare conceptuală

Cerintele sistemului operational Odata ce a fost definita nevoia si abordarea tehnica, e necesar sa le tranlatam intr-un “scenariu...

Programarea în limbaj de asamblare a microprocesoarelor

Lucrarea de laborator nr.1 Utilizarea macroasamblorului TASM şi a depanatorului TD Etapele dezvoltării unui program în limbajul de asamblare...

Te-ar putea interesa și

Proiect microcontrolere - semaforizare a unei intersecții

TEMA PROIECTULUI Proiectul îşi propune cunoaşterea şi înţelegerea principiului de semaforizare a unei intersecţii. Pentru exemplificare s-a pus la...

Ceas programabil cu alarmă - aplicații ale CI digitale - PIC 16F84

Introducere Realizarea lucrării “Ceas programabil cu alarmă” a fost întâmpinată cu mult entuziasm şi aceasta nu numai datorită faptului că...

Generator de Cod Morse

PREFATĂ În perioada de început a procesărilor auotomate, programatorii scriau instructiunile care reprezentau programe pentru calculator ca...

Medii de Programare Pentru Microcontrollere

1.TEMA 1. Deplasarea unui text dat pe afişor, care să conțină minim 8 caractere, la alegere, cu posibilitatea de comandă de pe tastatura unui PC...

Înmatriculări Auto

I. INTRODUCERE Zi de zi vedem pe stradă o mulţime de maşini. După cum bine stim, indiferent de marcă, mărime, utilizare sau proprietar, fiecare...

Structură de date secvențială

Sarcina de lucru De a implementa tipul abstract de date “Secvența” și de elaborat funcțiile ce vor opera cu acesta secventa. Tipul abstract de...

Programarea Microcontrollerelor în Limbaj de Asamblare

1. Denumirea lucrarii: Programarea microcontrollerelor in limbaj de asamblare 2. Obiectivele lucrarii - Familiarizarea cu un cross assembler -...

Informatică cu Aplicații în psiho-pedagogie

În loc de introducere Despre calculatoare şi utilizarea acestora s-au scris şi se vor mai scrie încă multe cărţi. Unele pentru începători, altele...

Ai nevoie de altceva?