Modi di indirizzamento
Come si apprende già dalla definizione, un algoritmo è una sequenza di passi che porta alla risoluzione di una classe di problemi. Un algoritmo in generale è trasformato in una sequenza di istruzioni, che costituiscono il vero e proprio programma. Ogni programma che si rispetti opera su dei dati e solitamente questi sono registrati in precise zone della memoria, sia essa memoria centrale o di massa.
In particolare, quando parliamo del processore, ci si riferisce o ai registri interni o alla memoria in generale. Con il primo termine, intendiamo spazi di memoria che sono interni al processore e con il secondo, spazi di memoria che non si trovano all'interno del processore.
Dunque, se un programma lavora su dati conservati in memoria, significa che il programma deve avere accesso ad essi. I modi di indirizzamento indicano come la CPU accede agli operandi utilizzati nelle istruzioni del programma, siano essi scritti in registri interni o in memoria, ed hanno la funzione di fornire un indirizzo effettivo per l'operando di un'istruzione.
Tipi di indirizzamento
I modi di indirizzamento sono molteplici, in particolare quelli messi a disposizione dal 68000 e ai quali daremo un’occhiata sono:
- Indirizzamento immediato
- Indirizzamento diretto
- Indirizzamento assoluto
- Indirizzamento indiretto
- Predecremento e postincremento
- Indirizzamento con base
Indirizzamento immediato (Immediate Addressing)
L’indirizzamento immediato si ha quando all’interno di un’istruzione si opera con una costante numerica. È facile riconoscere questo tipo di indirizzamento, in quanto all’interno del codice la costante è preceduta dal simbolo # (cancelletto). Questo tipo di indirizzamento è utilizzato unicamente per gli operandi di tipo sorgente. I numeri vengono automaticamente convertiti da decimale in esadecimale nella fase di memorizzazione. Per specificare una costante direttamente in esadecimale basta aggiungere il simbolo $ davanti alla costante.
Esempio: #12,D0
MOVE.W #12 D0
Questa istruzione ha dunque come effetto quello di muovere il valore 12, ponendolo all’interno del registro D0, memorizzandone il valore mediante la numerazione esadecimale.
Esempio: #$12,D0
MOVE.W #$12 D0
Indirizzamento diretto (Direct Addressing)
L’indirizzamento diretto avviene quando la sorgente e la destinazione di un operando sono entrambi registri. Se il registro funge da sorgente, allora il contenuto di questo registro fornisce l’operando sorgente. Se invece il registro è un operando destinazione, esso viene caricato con il valore specificato dall’istruzione.
Esempio: D0,D1
MOVE.W D0 D1
-
Calcolatori Elettronici I – Modi di indirizzamento
-
DOC Appunto: Architettura degli elaboratori - Memorie: cache, interna, esterna, Input/Output, linguaggi macchina: c…
-
Altri modi di vedere la televisione
-
Teoria dei sistemi - modi naturali