Page 1116 - Informatica dalla A a Z
P. 1116
Indirizzamento diretto (o assoluto): l’operando dell’istruzione è contenuto a partire dalla
cella di memoria il cui indirizzo è contenuto nel codice dell’istruzione stessa. Il dato è quindi
una variabile di posizione costante.
Indirizzamento a regisro indiretto: l’informazione presente nel registro non è l’operando
ma il suo indirizzo in memoria. Ha il pregio di richiedere pochi bit di istruzione.
Indirizzamento indiretto: l’operando dell’istruzione è contenuto a partire dalla cella di
memoria il cui indirizzo è contenuto in un registro puntatore. Il dato è una variabile e la
sua posizione è variabile proprio perché può variare il contenuto del registro puntatore.
Il vantaggio di questo tipo di accesso rispetto al precedente è che l’indirizzo del dato non
è fissato a priori e può cambiare durante l’esecuzione.
Indirizzamento indicizzato: l’operando dell’istruzione è contenuto a partire dalla cella di
memoria il cui indirizzo è calcolato dalla somma di due registri in cui il primo è considerato
puntatore alla base di un blocco di memoria mentre il secondo è considerato
spiazzamento, cioè spostamento all’interno del blocco di memoria. Il calcolo di questa
somma tra registri è effettuato internamente, pertanto il dato è una variabile e la sua
posizione è doppiamente variabile perché può variare sia il contenuto del registro
puntatore sia quello dell’indice.
Questo metodo di accesso viene usato per accedere agli array.
Indirizzamento con registro indice: serve per fornire un meccanismo di accesso agli
elementi di un vettore. Ha bisogno di 2 componenti: l’indirizzo del vettore e l’indice
dell’elemento. Inoltre si deve conoscere la lunghezza di ogni elemento, che è uguale per
tutti.
Indirizzamento implicito: l’operando non viene specificato in alcun modo in quanto
implicitamente dichiarato nel codice operativo dell’istruzione stessa.
Vediamo ora alcuni esempi di istruzioni Assembly che coprono l’intera gamma dei metodi
di indirizzamento. A fianco troviamo il metodo di indirizzamento utilizzato, il codice
operativo (espresso in base esadecimale) e la descrizione del comportamento in base ai
metodi di indirizzamento utilizzati.
1112