Descriere - Procesoare INTEL, Programare in limbaj de asamblare, Editia a II-a
Prezentare:Programarea in limbaj de asamblare este mult mai dificila decat cea intr-un limbaj de nivel inalt, deoarece programatorul trebuie sa cunoasca, pe langa limbajul de asamblare, si structura interna a calculatorului (registre, organizarea si adresarea memoriei, porturi de intrare-iesire etc.).
In lucrarea de fata prezinta limbajul de asamblare corespunzator familiei de procesoare INTEL, de la procesorul 80286 si pana la procesorul Pentium 4. Toate referirile facute in carte la procesoarele 386/486 sau cele urmatoare, din familia Intel, includ in mod implicit si procesoarele Pentium II, III si 4.
Organizarea cartii
Cartea este organizata in doua parti: prima se refera la aspectele legate de arhitectura interna a procesoarelor, iar cea de-a doua contine prezentarea limbajului de asamblare, insotita de numeroase exemple. Cartea prezinta, pe langa limbajul de asamblare si arhitectura procesorului, strict necesare programatorului obisnuit, si elementele din structura procesorului necesare programatorilor de sistem.
Partea I
In introducere este prezentat un scurt istoric al evolutiei calculatoarelor si procesoarelor, precum si etapele ce trebuie parcurse pentru elaborarea unui program in limbaj de asamblare
In primul capitol este prezentata arhitectura unui sistem de calcul pornind de la nivelul aplicatiei si pana la nivelul componentelor calculatorului; de asemenea, sunt prezentate anumite concepte legate de arhitectura memoriei: memoria liniara, memoria virtuala si memoria segmentata.
Urmatoarele doua capitole prezinta modalitatea de implementare a mecanismelor de adresare virtuala si protectie a memoriei, nivelurile de privilegiu, realizarea comunicatiei internivel, comutarea de task, multitasking-ul, mecanismele de paginare si administrarea memoriei cache.
Capitolele 4 si 5 descriu modul de organizare si de operare al procesoarelor superscalare actuale, la modul general, dar si cu exemplificarea concreta pentru familia de procesoare INTEL; sunt prezentate resursele (registre, memorie, porturi de I/E) si modurile de lucru ale procesoarelor Intel, de la procesorul 80286 si pana la PENTIUM 4.
Capitolul 6 prezinta tipurile de intreruperi, tabela vectorilor de intrerupere si modul de prelucrare a acestora, in cele doua moduri de lucru ale procesorului (real si protejat); este descrisa structura procedurilor de tratare a intreruperilor (servicii sistem, precum si proceduri utilizator pentru tratarea intreruperilor).
In fine, capitolul 7 descrie formatul instructiunilor procesoarelor Intel si modurile de adresare utilizate pentru obtinerea operanzilor.
Partea a II-a
Partea a doua incepe cu capitolele 8 si 9, care prezinta elementele de baza ale limbajului de asamblare: instructiuni si pseudoinstructiuni, operatori, directive, declararea datelor, definirea constantelor, variabile si siruri, tipuri de etichete, definirea si utilizarea segmentelor, modelele de memorie, asocierea segmentelor cu registrele segment, initializarea registrelor segment.
Capitolul 10, cel mai intins, prezinta setul de instructiuni de baza: instructiuni de transfer, aritmetice, de prelucrare la nivel de bit, de operare pe siruri, de transfer al controlului programului si instructiuni pentru controlul procesorului. Prezentarea instructiunilor este insotita de numeroase exemple, precum si de completarile necesare procesoarelor Pentium.
Conceptul de procedura, transferul parametrilor procedurii prin registre, memorie sau stiva, procedurile recursive, transferul parametrilor si legatura cu programe scrise in limbaje de nivel inalt, programe alcatuite din mai multe module, structura modulara a unui program si directivele necesare acestora, precum si formatul programelor executabile sunt prezentate in urmatoarele doua capitole, 11 si 12.
Urmatoarele trei capitole prezinta modalitatea de definire si utilizare de macroinstructiuni, directivele de asamblare conditionata si directivele struc si record, utilizate pentru definirea de structuri si inregistrari.
Capitolul 16 descrie utilizarea functiilor BIOS si DOS, precum si organizarea informatiei pe disc si operarea cu discul, formatul programelor executabile, PSP; in final este prezentata si utilizarea altor dispozitive de I/O (mouse, generare sunete, imprimanta).
Urmatorul, 17, descrie pe larg, cu numeroase exemplificari, modalitatea de realizare a programelor rezidente (TSR).
Ultimele trei capitole prezinta:
- modalitatea de mixare a codului pe 16 biti si a celui pe 32 de biti, partajarea segmentelor de date si transferul controlului intre segmentele de cod mixate;
- conceptele tehnologiei MMX si instructiunile acesteia, utilizata in aplicatiile grafice, video, animatie, audio si cele de comunicatie; exemple de exploatare a diferitelor tipuri de paralelism si avantajele utilizarii acestor instructiuni in aplicatiile multimedia;
- arhitectura, instructiunile si tipurile de valori ale unitatii in virgula mobila; in incheiere, sunt prezentate exemple de utilizare ale acestor instructiuni.
Cuprins:
De ce utilizam limbajul de asamblare?
Partea I
Structura procesoarelor Intel
Calculatoare
Procesoare
Programarea procesoarelor
1. Arhitectura calculatoarelor
1.1. Arhitectura memoriei
1.2. Memoria virtuala
1.3. Memoria segmentata
1.4. Memoria virtuala si alocarea dinamica a memoriei
2. Adresarea virtuala si mecanismul de protectie
2.1. Descriptori de segment
2.2. Segmentarea
2.3. Niveluri de privilegiu
2.4. Comunicatia internivel. Porti.
2.5. Segmente de stare task (TSS). Tabele de descriptori
2.6. Multitasking
2.7. Comutarea de task
3. Paginare si administrarea memoriei cache
3.1. Implementarea paginarii
3.2. Combinarea segmentarii si paginarii. Multitasking
3.3. Cache-ul intern
4. Procesoare superscalare
4.1. Decodificarea instructiunilor si analiza dependentelor de date
4.2. Alocarea unitatilor de executie paralela a instructiunilor
4.3. Tendinte
5. Structura procesoarelor din familia INTEL
5.1. Structura procesorului 286
5.2. Arhitectura de baza. Setul de registre
5.3. Arhitectura procesorului 80386
5.4. Arhitectura procesorului 80486
5.5. Procesoarele PENTIUM
6. Sistemul de intreruperi
6.1. Intreruperi externe
6.2. Intreruperi interne
6.3. Tabela vectorilor de intrerupere
6.4 Intreruperi in modul protejat
6.5 Proceduri de tratare a intreruperilor
Partea a II-a Limbajul de asamblare
7. Formatul instructiunilor
7.1. Codificarea instructiunilor
7.2. Moduri de adresare
8. Limbajul de asamblare
8.1. Definirea constantelor
8.2. Propozitii in limbaj de asamblare
8.3. Instructiuni in limbaj de asamblare
8.4. Declararea datelor in limbaj de asamblare
8.5. Operatori
8.6. Definirea si initializarea etichetelor
9. Definirea si utilizarea segmentelor
9.1. Forma completa de definire a segmentelor
9.2. Directive simplificate de segmentare
9.3. Asocierea segmentelor cu registrele
9.4. Initializarea registrelor segment
9.5. Prefix segment
9.6. Reguli pentru determinarea registrului segment implicit
9.7. Definirea si utilizarea grupurilor de segmente
10. Setul de instructiuni
10.1. Instructiuni de transfer date
10.2. Instructiuni aritmetice
10.3. Instructiuni de prelucrare la nivel de bit
10.4. Instructiuni de operare pe siruri
10.5. Instructiuni de transfer al controlului programului
10.6. Instructiuni de control procesor
10.7. Instructiuni sistem (specifice modului protejat)
11. Proceduri in limbaj de asamblare
11.1. Definirea si utilizarea procedurilor
11.2. Proceduri recursive (reentrante)
12. Programe compuse din mai multe module
12.1. Directivele PUBLIC, EXTRN, GLOBAL, COMM, INCLUDE
12.2. Transferul parametrilor pentru proceduri
12.3. Conventiile utilizate de limbajele de nivel inalt la transferul parametrilor pentru proceduri
12.4. Transferul parametrilor pentru subprograme in PASCAL si C
12.5. Avantajele utilizarii limbajului de asamblare
13. Definirea si utilizarea de macroinstructiuni
13.1. Macroinstructiunea de repetare
13.2. Macroinstructiuni de repetare conditionata
13.3. Utilizarea operatorilor &, % si !
14. Directive de asamblare conditionata
14.1. Directive pentru generarea conditionata a erorilor
15. Structuri de date in limbaj de asamblare
15.1 Definirea unei structuri. Directiva STRUC
15.2. Definirea unei inregistrari. Directiva RECORD
16. Utilizarea intreruperilor BIOS si DOS
16.1. Utilizarea functiilor BIOS
16.2. Utilizarea functiilor DOS
16.3. Organizarea informatiei pe disc. Operarea cu discul
16.4. Formatul programelor executabile
16.5. Prefixul segment al programului, PSP
16.6. Utilizarea altor functii de I/O (mouse, generare sunete)
17. Programe rezidente in memorie (TSR)
17.1. Componentele unui program TSR
17.2. Programe TSR activate de la tastatura
17.3. Partea rezidenta a programului TSR
17.4. Dezinstalarea unui program TSR
18. Mixarea intre codul pe 16 biti si cel pe 32 de biti
19. Tehnologia MMX
19.1. Instructiunile si structurile de date ale tehnologiei MMX
19.2. Exploatarea diferitelor tipuri de paralelism
19.3. Calcule dependente de date
19.4. Conversii de date
19.5. Integrarea tehnologiei MMX in arhitectura Intel
19.6. Executia instructiunilor MMX
20. Unitatea in virgula mobila
20.1. Arhitectura unitatii in virgula mobila
20.2. Setul de instructiuni FPU
Index
Bibliografie
464 pagini
Editia a II-a
cod 0099