ASAMBLARE INTEL 80X86
CUPRINS
1.1 CONSIDERAȚII TEORETICE
1.1.1 Registrele și modurile de adresare pentru operanzi: Structura registrului bistabilelor de stare
1.1.2 Metode de adresare
2.1 FUNCȚIONAREA ASAMBLORULUI
2.1.1 Elementele limbajului de asamblare MASM
2.1.2 Formatul instrucțiunilor în limbajul de asamblare
2.1.3 Specificarea constantelor
2.1.4 Simboluri: Etichete; Variabile; Expresii; Pseudoinstrucțiuni
2.2 UTILIZAREA PROGRAMELOR MASM, CREF, LINK ȘI EXE2BIN
2.2.1 MASM
2.2.2 Directive suplimentare în MASM
2.3 CREF
2.4 EDITORUL DE LEGĂTURI LINK
2.5 LEGĂTURA PROGRAM - SISTEM DE OPERARE
2.5.1 Formatul .COM al programelor executabile
2.5.2 Formatul .EXE al programelor executabile
3.1 CONSIDERAȚII TEORETICE
3.2 INSTRUCȚIUNI ARITMETICE
3.3 OPERAȚII ARITMETICE ÎN REPREZENTAREA FĂRĂ SEMN ȘI ÎN C2
3.4 OPERAȚII ÎN BCD DESPACHETAT
3.5 OPERAȚII ÎN BCD ÎMPACHETAT
3.6 INSTRUCȚIUNI LOGICE
3.7 INSTRUCȚIUNI DE DEPLASARE ȘI ROTIRE
4.1 INSTRUCȚIUNI DE TRANSFER DE TIP "CLASIC"
4.2 INSTRUCȚIUNI DE TRANSFER PENTRU ADRESE
4.3 INSTRUCȚIUNI DE TRANSFER PENTRU INDICATORII DE CONDIȚIE
4.4 INSTRUCȚIUNI DE INTRARE/IEȘIRE
5.1 INSTRUCȚIUNI DE SALT
5.1.1 Saltul necondiționat
5.1.2 Salturi condiționate
5.2 COMPARARE ȘI SALT
5.3 SALTURI BAZATE PE STAREA INDICATORILOR DE CONDIȚIE
5.4 INSTRUCȚIUNI DE CICLARE
5.5 UTILIZAREA PROCEDURILOR
6.1 LUCRUL CU MACROURI
6.2 BIBLIOTECARUL LIB
6.2.1 Facilități ale programului LIB
6.2.2 Rezumatul operațiilor programului LIB
6.2.3 Utilizarea programului LIB
8.1 DEFINIREA APLICAȚIEI
8.2 DOMENIUL DE REPREZENTARE A NUMERELOR
8.3 APELAREA DIN PASCAL
8.4 CONCLUZII
10.1 CONSIDERAȚII TEORETICE
10.2 SELECTORI DE SEGMENT
10.3 DESCRIPTORI DE SEGMENT
10.3.1 Descriptori de cod și de date
10.3.2 Descriptori de sistem
10.3.3 Descriptori de porți
10.4 REGISTRELE INTERNE
10.5 TRECEREA DIN MODUL REAL ÎN MODUL PROTEJAT
10.6 REVENIREA ÎN MODUL REAL
10.6.1 Secvența de inițializare
10.6.2 Circuitul 8042
10.6.3 Operațiile necesare revenirii în modul real
10.7 EXEMPLU DE PROGRAM ÎN MOD PROTEJAT
11.1 ACTIVAREA PROGRAMELOR TSR
11.2 INTERACȚIUNEA CU SISTEMUL DE OPERARE DOS
11.3 OPERAȚII CRITICE ÎN RAPORT CU TIMPUL
11.4 RECURSIVITATEA
11.5 COMUTAREA CONTEXTULUI
11.6 UN EXEMPLU DE PROGRAM REZIDENT
12.1 PRINCIPIUL DE FUNCȚIONARE
12.2 TIPURILE DE DATE CUNOSCUTE DE INTEL 8087
12.2.1 Tipuri întregi: Întreg pe cuvânt; Întreg scurt; Întreg lung; Întreg BCD, zecimal împachetat
12.2.2 Tipuri de date în virgulă flotantă: Real scurt; Real lung; Real cu precizie ridicată
12.3 ERORI DE OPERAȚIE (EXCEPȚII)
12.3.1 Operație invalidă
12.3.2 Depășire superioară
12.3.3 Împărțire la zero
12.3.4 Depășire inferioară
12.3.5 Operand denormalizat
12.3.6 Rezultat inexact
12.4 ARHITECTURA INTERNĂ A COPROCESORULUI
12.4.1 Unitatea de execuție numerică: Registrele interne ale coprocesorului
12.4.2 Unitatea de control: Registrul de control (Control Word); Registrul de stare (Status Word); Registrul indicator de descriere a stivei (Tag Word); Registrul de instrucțiuni (Instruction Pointer); Registrul de date (Data Pointer)
12.4.3 Mediul coprocesorului
12.5 SETUL DE INSTRUCȚIUNI AL COPROCESORULUI
12.5.1 Instrucțiuni de transfer de date: Instrucțiuni de încărcare (LOAD); Instrucțiuni de memorate (STORE); Instrucțiuni de transfer de date intern; Instrucțiuni de încărcare a constantelor
12.5.2 Instrucțiuni aritmetice și de comparare: Instrucțiuni aritmetice; Instrucțiuni pentru compararea valorilor numerice
12.5.3 Funcții în virgulă mobilă
12.5.4 Instrucțiuni de comandă
12.6 EXEMPLU DE PROGRAM SIMPLU CU UTILIZAREA COPROCESORULUI MATEMATIC