Documente Academic
Documente Profesional
Documente Cultură
10
Microprocesorul I8086:
unde:
CF - carry flag, reprezinta indicatorul de transport, devine 1 daca operatia a
produs un transport de iesire din cel mai semnificativ bit al rezultatului. Acest
transport semnifica imprumut in cazul operatiei de scadere.
AF - auxiliary carry, reprezinta indicatorul de transport auxiliar, devine 1 daca
operatia a produs un transport de la bitul al 4-lea (D3) la bitul al 5-lea al rezultatului.
PF - parity flag, reprezinta indicatorul de paritate, devine 1 in urma operatiilor
logice daca rezultatul este par;
OF - overflow, reprezinta indicatorul de depasire, OF=1 indica depasirea,
adica alterarea bitului de semn;
DF - direction flag, indicatorul de directie, semnifica incrementarea/
decrementarea registrelor SI/DI in cazul instructiunilor iterative;
IF - interrupt flag, activeaza/dezactiveaza intreruperile externe;
TF - trap flag, permite executia instructiunilor pas cu pas;
SF - sign flag, indicator de semn, devine 1 daca bitul cel mai semnificativ al
rezultatului este 1;
ZF - zero flag, devine 1 daca rezultatul operatiei anterioare este nul.
1. D reprezinta adresa relativa (offset) in cadrul unui segment, adresa fizica (AF)
fiind:
A = s * 16 + D ,
unde:
s reprezinta continutul registrului segment implicat in instructiune (s*16
similar cu deplasarea la stinga cu o cifra hexa !!).
2. Oricare din cei trei termeni poate lipsi.
3. Registrul segment utilizat implicit depinde de tipul operatiei si de
registrul utilizat ca adresa de baza sau index:
____________________________________________________________
| | | |
| Adresa efectiva (EA) | RS implicit | Alte RS utilizabile |
|______________________|_____________|______________________|
| | | |
| D | DS | CS,SS,ES |
| BX + SI + D | | |
| BX + DI + D | | |
|______________________|_____________|______________________|
| | | |
| BP + SI + D | SS | CS,DS,ES |
| BP + DI + D | | |
|______________________|_____________|______________________|
| | | |
| SI + D | DS | |
| DI + D | | |
|______________________|_____________|______________________|
| | | |
| BP + D | SS | CS,DS,ES |
|______________________|_____________|______________________|
| | | |
| BX + D | DS | CS,DS,ES |
|______________________|_____________|______________________|
De ex:
MOV AX,8[BX][SI] va determina incarcarea in reg. AX a unui cuvint de la
adresa BX+SI+8 relativa la DS
MOV CX,[BP+5][SI] va determina incarcarea in reg. CX a unui cuvint de la
adresa BP+SI+5 relativa la SS
Utilizarea altui segment decit cel implicit va fi indicat printr-un prefix, astfel:
MOV BX,ES:758 care incarca in registrul BX cuvintul de la adresa ES:758.
Citeva instructiuni simple
1. Transfer de date
Stiva este o zona de date in memoria interna si care este accesata in mod LIFO
("last in first out"), adica operanzii se depun incepind cu un capat si sint scosi pe la
celalalt capat. Permite o modalitate eleganta de salvare a registrilor in memorie,
restaurarea lor facindu-se in ordinea inversa salvarii. Stiva este intotfeauna rezidenta
in segmentul de stiva, iar registrul SP (care contine adresa virfului stivei) este folosit
implicit ca reg.de offset in lucrul cu stiva.
Aplicatii: