Documente Academic
Documente Profesional
Documente Cultură
.MODEL SMALL .DATA ; declarare zona de date Array1 DW 1111h,2222h,3333h,4444h,5555h ; prima secventa de numere (pe 16 biti) Array2 DW 1010h,2020h,3030h,4040h,5050h ; a doua secventa de numere Count DW 0005h ; sunt cate cinci numere pe 16 biti in .CODE ; fiecare secventa MOV AX,@DATA MOV DS,AX ; incarc in DX adresa de unde incep datele LEA SI,Array1 ; incarc in registrul SI adresa efectiva a primului sir LEA DI,Array2 ; ; incarc in registrul DI adresa efectiva a celui de al doilea sir MOV CX,Count ; incarc in CX numarul de valori din fiecare secventa NEXT: MOV BX,[SI] ; incepere bucla: incarc in BX valoarea de la adresa data de SI MOV DX,[DI] ; incarc in DX valoarea de la adresa data de DI XCHG BX,DX ; inversez datele din BX si DX MOV [SI],BX ; si le scriu in memorie MOV [DI],DX INC SI ; incrementez SI, DI (SI=SI+2, DI=DI+2) INC SI ; pentru ca sunt date pe 16 biti INC DI INC DI LOOP NEXT ; reiau bucla MOV AH,4Ch INT 21h END