Sisteme de operare

Previzualizare laborator:

Extras din laborator:

Grupul instruc?iunilor de lucru pe ssiruri de caractere

Scopul lucrarii

Lucrarea prezinta succint grupul de instruc?iuni pe ssiruri de

caractere ale limbajului de asamblare al microprocesoarelor I8086/I8088.

Dupa o scurta prezentare a sintaxei acestor instruc?iuni, urmeaza o serie

de exemple care sa eviden?ieze modul de utilizare al acestora.

Grupul instructiunilor pe ssiruri de caractere

Pentru toate instruc?iunile pe ssiruri de caractere, se considera ca

ssirul sursa este con?inut in segmentul curent de date (a carui adresa de

inceput este con?inuta in registrul DS), iar adresa relativa a ssirului in

segment este con?inuta in registrul SI. ?irul destina?ie este con?inut in

segmentul de date suplimentare (a carui adresa de inceput este con?inuta

in registrul ES), iar adresa relativa a ssirului in segment este con?inuta in

registrul DI. Pentru ssirul sursa se poate considera ssi alt registru de

segment utilizand un prefix de registru adecvat. Flagul DF indica sensul

de parcurgere in memorie al ssirurilor sau, altfel spus, modul in care se

actualizeaza registrele SI ssi DI dupa execu?ia opera?iei. Astfel, daca

flagul DF are valoarea zero, atunci se considera ca ssirurile se vor

parcurge de la adrese mici catre adrese mari. Actualizarea registrelor SI

ssi DI se face prin incrementarea acestora cu 1 sau cu 2 dupa cum ceea ce

se executa este o operatie care implica un octet sau un cuvant. Daca

flagul DF are valoarea unu, atunci se considera ca ssirurile se vor parcurge

de la adrese mari catre adrese mici. Actualizarea registrelor SI ssi DI se

face prin decrementarea acestora cu 1 sau cu 2 dupa cum se executa o

operatie care implica un octet sau un cuvant.

Opera?iile elementare pe ssiruri de caractere sunt:

1. LODSB (LODSW) SRC ; Load String

Instruc?iunea incarca fiecare octet (cuvant) din ssirul sursa SRC

adresat prin DS:SI in registrul AL (AX), cu actualizarea corespunzatoare

a registrului SI. Con?inutului ssirului sursa nu se modifica.

2. STOSB (STOSW) DST ; Store String

Instruc?iunea memoreaza con?inutul registrului AL (AX) in octetul

(cuvantul) din ssirul destina?ie DST adresat prin ES:DI, cu actualizarea

corespunzatoare a registrului DI. Con?inutului registrului AL (AX) nu se

modifica.

Exemplu:

STOSB ; Memoreaza continutul registrului AL la adresa

; ES:DI si incrementeaza continutul lui DI cu 1

STOSW ; Memoreaza continutul registrului AX la adresa

; ES:DI si incrementeaza continutul lui DI cu 2

3. MOVSB (MOVSW) DST, SRC ; Move String

Transfera un octet (o pereche de octe?i) intre ssirul sursa SRC

adresat prin DS:SI in octetul (perechea de octe?i) din ssirul destina?ie DST

adresat prin ES:DI, cu actualizarea corespunzatoare a registrelor index SI

ssi DI. Con?inutului ssirului sursa nu se modifica.

Observatie: Este clar ca inaintea operatiei de transfer trebuie incarcate in

registrele SI ssi DI adresele de inceput ale celor doua ssiruri (sursa,

respectiv destinatie), iar in CX numarul elementelor ce trebuie

transferate. Pentru claritate prezentam urmatorul exemplu:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

mov ax, extra_sgm ; Se incarca registrul ES cu adresa de

mov es, ax ; baza a segmentului de date suplimentare

mov si, OFFSET SRC

mov di, OFFSET DST

mov cx, numar_elem

cld ; DF = 0 - ssirurile se vor parcurge in sens crescator

MUTA:movsb ; Transferul octetilor de la sursa SRC la

loop MUTA ; destinatiaDST se executa pana cand CX = 0

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4. CMPSB (CMPSW) DST, SRC ; Compare Strings

Compara un octet (o pereche de octeti) din ssirul destinatie DST

adresat prin ES:DI cu octetul (perechea de octe?i) din ssirul sursa SRC

adresat prin DS:SI, cu actualizarea corespunzatoare a registrelor SI ssi DI.

Compara?ia se realizeaza prin scaderea octetului (cuvantului) sursa din

octetul (cuvantul) destina?ie, fara inscrierea rezultatului, dar cu

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Sisteme de operare.pdf
Alte informații:
Tipuri fișiere:
pdf
Diacritice:
Da
Nota:
8/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
8 pagini
Imagini extrase:
8 imagini
Nr cuvinte:
2 882 cuvinte
Nr caractere:
14 107 caractere
Marime:
59.86KB (arhivat)
Publicat de:
Dionisie Cojocaru
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Sisteme de Operare
Tag-uri:
caracter, sistem de operare, sir, instructiune de lucru
Predat:
Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei , Universitatea Politehnica Bucuresti din Bucuresti
Specializare:
Ingineria informatiei
Materie:
Sisteme de Operare
Sus!