Scopul lucrarii
Lucrarea urmaresste familiarizarea studen?ilor cu no?iunile primare
ale limbajului de asamblare al microprocesoarelor I8086/I8088, precum
ssi grupul instruc?iunilor de transfer de date. Dupa prezentarea formatului
general extren al instruc?iunilor, se prezinta, pe scurt, instruc?iunile din
grupul instruc?iunilor de transfer de date, dupa care urmeaza o serie de
exemple care sa evidentieze modul de utilizare al acestora.
Chestiuni teoretice
Formatul general (extern) al instruc?iunilor
Instruc?iunile microprocesoarelor I8086/I8088, scrise in limbaj de
asamblare, au formatul tipic acestor limbaje, constituit din mai multe
campuri:
[Eticheta: ] [; Comentariu ]
Mnemonica codului
de operatie
Operand
Operand1,Operand2
unde parantezele drepte [ ] arata ca elementele incluse pot apare sau nu in
mod facultativ, iar acoladele { } indica faptul ca numai un element din
cele scrise pe verticala poate apare intr-o instruc?iune data.
Campul Eticheta este op?ional, iar cand apare este un identificator
caruia i se asociaza adresa primului octet al instruc?iunii respective.
Mnemonica codului de opera?ie este numele simbolic al
instruc?iunii sau al unui grup de instruc?iuni; apare obligatoriu in orice
instruc?iune.
Campul operanzi poate con?ine doi operanzi, unul sau niciunul, in
func?ie de tipul instruc?iunii. Cand exista doi operanzi, primul este
operandul destina?ie, iar cel de-al doilea, operandul sursa. Operanzii
identifica datele asupra carora ac?ioneaza instruc?iunea, modul de
adresare ssi alte informa?ii auxiliare.
Campul Comentariu este op?ional. Acesta servesste pentru cressterea
inteligibilita?ii programului. La asamblare, textul comentariului este
ignorat de catre asamblor.
Exemple:
mov bx, 7a2h ; Incarca registrul BX cu valoarea 7a2h
alfa: mov beta [bx][di], al ; Transfera octetul din AL la
; adresa OFFSET beta+BX+DI
; in segmentul de date asociat
; variabilei beta
xchg bl, cl ; Interschimba con?inutul registrelor BL ssi CL
gama: popf ; Reface din stiva con?inutul registrului de flaguri F
Descrierea setului de instruc?iuni ale microprocesoarelor
I8086/I8088
Pentru prezentarea setului de instruc?iuni ale microprocesoarelor
I8086/I8088 utilizam urmatoarele nota?ii:
Numele registrelor din UCP I8086/I8088 :
- AX, BX, CX, DX - registre generale de 16 bi?i;
- AH, AL, BH, BL, CH, CL, DH, DL - registre generale de 8 bi?i;
- SP, BP, SI, DI - registre de 16 bi?i;
- CS, DS, SS, ES - registre de segment;
- F (PSW) = x x x OF DF IF TF | SF ZF x AF x PF x CF - registrul de
flaguri.
Referiri generale:
- A - acumulator (AX sau AL sau AH, func?ie de context);
R - registru oarecare de uz general: R8 - registru de 8 bi?i, R16 - - registru
de 16 bi?i;
M - operand din memorie: M8, M16, M32 - unde indicele 8, 16, 32
precizeaza lungimea in bi?i pentru operanzi cu 1, 2, respectiv 4 octe?i;
- SR - registru segment oarecare: CS, DS, SS, ES;
- nume_reg - con?inutul numeric al registrului indicat de nume (sursa sau
destinatie);
DATA - operand numeric imediat: DATA8, DATA16 - - operand
numeric pe 8, respectiv 16 biti;
DEPL - deplasament (offset) de adresa: DEPL8, DEPL16 - - deplasament
pe 8, respevtiv 16 biti;
- (EA) - octetul cu adresa de offset egala cu EA;
- (EA + 1, EA) - cuvantul cu adresa de offset egala cu EA;
Grupul instructiunilor de transfer de date
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.