Microprocessore - Modalità di indirizzamento 8086
I diversi modi in cui un operando sorgente è indicato in un'istruzione sono noti come addressing modes. Ci sono 8 diverse modalità di indirizzamento nella programmazione 8086 -
Modalità di indirizzamento immediato
La modalità di indirizzamento in cui l'operando dei dati fa parte dell'istruzione stessa è nota come modalità di indirizzamento immediato.
Esempio
MOV CX, 4929 H, ADD AX, 2387 H, MOV AL, FFH
Registra la modalità di indirizzamento
Significa che il registro è la sorgente di un operando per un'istruzione.
Esempio
MOV CX, AX ; copies the contents of the 16-bit AX register into
; the 16-bit CX register),
ADD BX, AX
Modalità di indirizzamento diretto
La modalità di indirizzamento in cui l'indirizzo effettivo della posizione di memoria viene scritto direttamente nell'istruzione.
Esempio
MOV AX, [1592H], MOV AL, [0300H]
Registra la modalità di indirizzamento indiretto
Questa modalità di indirizzamento consente ai dati di essere indirizzati in qualsiasi posizione di memoria tramite un indirizzo di offset contenuto in uno dei seguenti registri: BP, BX, DI e SI.
Esempio
MOV AX, [BX] ; Suppose the register BX contains 4895H, then the contents
; 4895H are moved to AX
ADD CX, {BX}
Modalità di indirizzamento basata
In questa modalità di indirizzamento, l'indirizzo di offset dell'operando è dato dalla somma dei contenuti dei registri BX / BP e dello spostamento a 8 bit / 16 bit.
Esempio
MOV DX, [BX+04], ADD CL, [BX+08]
Modalità di indirizzamento indicizzato
In questa modalità di indirizzamento, l'indirizzo di offset degli operandi viene trovato aggiungendo il contenuto del registro SI o DI e gli spostamenti a 8 bit / 16 bit.
Esempio
MOV BX, [SI+16], ADD AL, [DI+16]
Modalità di indirizzamento basato su indice
In questa modalità di indirizzamento, l'indirizzo di offset dell'operando viene calcolato sommando il registro di base al contenuto di un registro di indice.
Esempio
ADD CX, [AX+SI], MOV AX, [AX+DI]
Basato indicizzato con modalità di spostamento
In questa modalità di indirizzamento, l'offset degli operandi viene calcolato aggiungendo il contenuto del registro di base. Un indice registra i contenuti e lo spostamento a 8 o 16 bit.
Esempio
MOV AX, [BX+DI+08], ADD CX, [BX+SI+16]