Moduri de adresare 1

inc CH, plus 1 la conținut CH


împinge DS, DS este stocat în stivă


XCHG BX, BP, BX și BP conținut parts


mov ES, AX, AX este trimis la conținut ES

mov ah, 40h; 40h număr este încărcat în Academia de Științe


mov al, '*'; cod ASCII caracter "*" este încărcat în AL


int 21h; întrerupe comanda cu un argument 21h


limită = 528; Numărul 528 primește o limită de desemnare


mov CX, limita, numărul de limită desemnat, este încărcat în CX


mes db „Lectia 1“; șir de caractere


meml dw 0; cuvânt de memorie conține 0


mem2 db 230; 230 Bytes cuprinde


; Segment de comandă
inc meml; Cuvinte de conținut meml crește cu 1


mov DX, meml; Conținutul cuvinte cu numele meniului este încărcat în DX


mov AL, mem2; Conținutul de octeți pe nume mem2 încărcate în AL


ES mov, AX; Trimite-ES


mov byte ES ptr: 0“. „; Trimite-ne simbol pe 1 ecran familiaritate


byte mov ES ptr: 2“. „; Trimite-ne simbol pe 2 ecran familiaritate

mov byte ES ptr: 0“. '

PTR ES: mov cuvânt 0 '!'

mov al, '!' ES mov: 0, AL

Aici, operandul sursă este registrul AL, a cărui dimensiune (1 octet) este cunoscut, iar dimensiunea receptorului operand nu este necesar să se definească. Desigur, echipa

Mi-ar trebui să trimită un număr de 10 în numărul 6, care, desigur, nu are niciun sens și nu poate fi îndeplinită. echipa, de asemenea,


mov byte ES ptr: [BX]“. „Simbolul de pe ecran


mov byte ptr [BX]“. „Simbolul de pe ecran

Apropo, această piesă un pic mai eficient în sensul alocării de memorie anterioară. Din cauza absenței în ultimul segment de instrucțiuni de înlocuire prefix de cod, este nevoie de un octet mai puțin spațiu.
Registre BX, SI și DI, în prezenta cerere perfect echivalente și la fel de bine posibil să se utilizeze oricare dintre ele:


mov byte ptr [DI]. “. „Simbolul de pe ecran


mov byte ES ptr: [BX]. “. „Simbolul de pe ecran

Puteți utiliza unul


DI mov, 80 * 24 * 2; Offset la linia de jos a ecranului


mov byte ptr ES: [DI], 'D'; Simbol pe ecran


ES byte ptr mov: 2 [DI], 'K', poziția simbolului următor scriere


mov ES: byte ptr 4 [DI]“. „; Scriem caracterul în poziția următoare


împinge DS; Valorile de încărcare stivă


împinge ES; trei registre,


împinge SI; subrutină transmise


apelați mysub; mysub Call subrutina


; Utilizarea acestor setări


mov AX, 2 [BP]; AX citit în ultimul parametru (SI)


mov BX, 4 [BP]; BX citit în parametrul anterior (ES)


mov CX, 6 [BP]; CX citit în primul parametru (DS)

Moduri de adresare 1

Ris.2.15. Teancul după încărcare în ea trei parametri și trecerea la subrutina


mov SI, 0; Valoarea inițială a elementului în matrice index


mov AX, 0; Primul număr substituent


mov CX, 10.000, numărul de etape în ciclul (întotdeauna pe CX)


umple: mov array [SI], AX; Stocarea numerelor în elementul de matrice


inc AX; Incrementați număr substituent


adaugă SI, 2, compensat în matrice la cuvântul următor


buclă de umplere, Întoarceți-vă la semnul de umplere (CX ori)

[VH] [SI] (implicite DS: [BX] [SI])


[BX] [DI] (presupus DS: [BX] [DI])


[BP] [SI] (SS implicite: [BP] [SI])


[BP] [DI] (SS implicite: [BP] [DI])


mov SI, 0; Valoarea inițială a indicelui


; Element în matrice


mov AX, 0; Primul număr substituent


mov CX, 10.000, numărul de etape din ciclul


umple: mov [BX] [SI], AX; ne trimite numărul într-o matrice


inc AX; Incrementați număr substituent


adaugă SI, 2, compensat în matrice la cuvântul următor


bucla de umplere, pe marcaj de umplere (CX ori)

sims db „QWERTYUIOP<>'


mov BX, 12, numărul de octeți pe linie

mov BX, off set Sym