Priame adresovanie | Nepriame adresovanie | Bazove adresovanie
Indexove adresovanie | Bazove-Indexove adresovanie
Pozname niekolko sposobov adresovania. Jednotlive moznosti si ukazeme pomocou instrukcie MOV. Tato instrukcia ma dva operandy, oznacovane ako ciel a zdroj. Tieto operandy mozu byt registre, pamatove miesta alebo konstanty (ciselne hodnoty).
Napriklad.:
MOV AX,2222H
- po vykonani instrukcie bude register AX obsahovat hodnotu 2222H.Na miesto v pamati sa pri zapise instrukcii odkazujeme tym sposobom, ze offsetovu cast adresy zapiseme do hranatych zatvoriek (napr.: MOV AX,[1234h]).
PRIAME ADRESOVANIE
Je to najjednoduchsi sposob adresovania. Operand instrukcie tvori pr
iamo offsetova adresa. Napr.: MOV AX,[00FFh]. Cize z adresy 00FFh sa vyberie hodnota a ulozi sa do registra AX. Castejsi pripad je taky, ze adresa je nahradena navestim.Napriklad:
FARBA DB 7Takto to vyzera v zdrojovom subore, po preklade suboru Turbo Assemblerom sa navestie FARBA nahradi konkretnou adresou.
NEPRIAME ADRESOVANIE
Offsetova cast adresy je urcena obsahom niektoreho z registrov SI, DI, BX, BP. Napr.: MOV BX,[DI] alebo MOV BL,AL. Z offsetu adresy danej obsahom registra DI sa nacita hodnota do registra BX. Druhy pripad znazornuje presun medzi registrami. Hodnota, ktora je ulozena v registri AL sa presunie do registra BL, pricom obsah registra AL sa nezmeni.
BAZOVE ADRESOVANIE
Vyuziva pre vytvorenie offsetovej adresy, ktora obsahuje bazove registre BP, BX a konstantu. Offsetova adresa je dana suctom obsahu bazoveho registra a konstanty. Pouziva sa pri adresovani pevnej datovej struktury (napr.: pola).
Priklad: MOV AX,[BX+N]
V tomto pripade bazovy register ukazuje na zaciatok pola a pomocou konstanty N sa pohybujeme po jednotlivych prvkoch.
Napriklad: MOV AX,[BX+00]
INDEXOVE ADRESOVANIE
Je podobne ako bazove adresovanie s tym rozdielom, ze namiesto bazovych registrov sa pouzivaju indexove registre SI a DI. Tento sposob adresovania sa pouziva pri datovych strukturach ako pole, retazce a pod..
Priklad: MOV AX,[POLE+DI]Konstanta POLE predstavuje offsetovu adresu zaciatku pola a indexovy register ukazuje na konkretny prvok pola.
Ide o kombinaciu predchadzajucich dvoch sposobov adresovania. Offsetova cast adresy je tvorena suctom obsahu bazoveho registra (BX,BP), indexoveho registra (SI,DI) a konstanty. Tento typ adresovania sa pouziva pre adresovanie prvkov dynamickeho pola.
Priklad: MOV AX,[BX+SI+N]
Register AX sa naplni obsahom polozky N struktury, ktora je prvkom pola urceneho registrom SI, pricom zaciatok tohto pola je na adrese urcenej bazovym registrom BX.
Priklad: MOV CX,[BX+SI]
V registri BX je zaciatok dynamickeho pola a v registri SI je adresa prvku v dynamickej oblasti. MOV BL,[BX][SI] - tento zapis je ekvivaletny tomu predchadzajucemu.