Sei sulla pagina 1di 5

Vari modi di specificare l’indirizzo

degli operandi
 Immediato
Modi di indirizzamento  Diretto
 Indiretto
 Registro
Capitolo 11  Registro indiretto
 Spiazzamento
 Pila

1 2

Indirizzamento immediato
Indirizzamento immediato
Istruzione
 L’operando e’ parte dell’istruzione (campo
Cod.Op. Operando
indirizzo)
 Vantaggio: nessun accesso in M per
prendere l’operando
 Svantaggio: valore limitato dalla
dimensione del campo indirizzo

3 4

Indirizzamento diretto Indirizzamento diretto


Istruzione
 Campo indirizzo = indirizzo dell’operando
Cod.Op. Indirizzo A
 Esempio: ADD A Memoria
 Somma il contenuto della cella A
all’accumulatore
 Bisogna andare in M all’indirizzo A per trovare
l’operando Operando
 Un singolo accesso in M per prendere
l’operando
 Spazio di indirizzamento limitato 5 6
Indirizzamento indiretto Indirizzamento indiretto
Istruzione

 Il campo indirizzo contiene l’indirizzo di una cella di M, Cod.Op. Indirizzo A


che contiene l’indirizzo dell’operando Memoria
 Vantaggio: parole di lunghezza N permettono di Puntatore all’operando
indirizzare 2N cose diverse
 In realta’ 2K, dove K e’ la lunghezza del campo
indirizzo
 Svantaggio: due accessi in M per ottenere l’operando Operando
 Esempio: ADD (A)
 Somma il contenuto della cella puntata dal contenuto
di A all’accumulatore

7 8

Indirizzamento registro Indirizzamento registro


Istruzione
 L’operando e’ in un registro indicato nel
Cod.Op. Nome di registro R
campo indirizzo Registri
 Numero limitato di registri
 Pochi bit necessari per il campo indirizzo
 Istruzioni piu’ corte
 Fase di fetch piu’ veloce (nessun accesso in Operando
M per prendere l’operando)

9 10

Indirizzamento registro indiretto Indirizzamento registro indiretto


Istruzione
 Stesso principio dell’indirizzamento
Cod.Op. Nome di un registro R
indiretto Memoria
 L’operando e’ in una cella di M puntata dal
Registri
contenuto del registro R
 Grande spazio di indirizzamento (2n)
Puntatore all’operando Operando
 Un accesso in meno in M rispetto
all’indirizzamento indiretto

11 12
Indirizzamento con spiazzamento Indirizzamento con spiazzamento
Istruzione
 Combinazione di indirizzamento diretto e
indirizzamento registro indiretto Cod.Op.Registro R Indirizzo A
Memoria
 Il campo indirizzo ha due sottocampi
A = valore di base (diretto) Registri
 R = registro che contiene l’indirizzo di un
valore da sommare ad A per ottenere
Puntatore ad operando
l’indirizzo + Operando
 o viceversa (R base e A spiazzamento)

13 14

Indirizzamento relative Indirizzamento registro-base

 Una versione dell’indirizzamento con  A contiene lo spiazzamento


spiazzamento  R contiene il puntatore all’indirizzo base
 R = registro PC (program counter) R puo’ essere esplicito o implicito
 Indirizzo dell’operando = A + (PC)
A celle dalla cella di M puntata da PC

15 16

Indicizzazione Indirizzamento a pila

 A = base  Pila: sequenza lineare di locazioni


 R = spiazzamento riservate di M
 Esempio: elenco di dati memorizzati in M a
 Puntatore (nel registro SP, stack pointer)
partire da un indirizzo A
 Per accedere a tutti, la sequenza di indirizzi e’ A, A+1, con l’indirizzo della cima della pila
A+2, ...
 L’operando e’ sulla cima della pila
 A viene messo nel campo indirizzo e il registro
(indice) contiene 0 all’inizio e viene incrementato di 1  Quindi e’ un esempio di indirizzamento a
dopo ogni accesso
registro indiretto

17 18
Modi di indirizzamento del Pentium
Modi di indirizzamento del Pentium

 12 modi di indirizzamento
 Immediato
 Registro
 Spiazzamento
 Base
 Base con spiazzamento
 Indice scalato con spiazzamento
 Indice scalato con base e spiazzamento
 Relativo

19 20

Formato delle istruzioni Lunghezza delle istruzioni


 Struttura dei campi dell’istruzione  Condiziona ed e’ condizionata da:
 Include il codice operativo  Dimensione della M
 Include (in modo implicito o esplicito) uno  Organizzazione della M

o piu’ operandi  Struttura del bus


 Complessita’ della CPU
 Di solito piu’ di un formato per un
 Velocita’ della CPU
linguaggio macchina
 Compromesso tra repertorio di istruzioni
potente e necessita’ di risparmiare spazio
21 22

Formato delle istruzioni del PDP-8


Allocazione dei bit
 Vari modi di indirizzamento
 Vari numeri di operandi (di solito 2)
 Registri verso M (di solito almeno 32 registri)
 Banchi di registri (esempio: Pentium ha due banchi)
 Due banchi da 8 registri ciascuno  solo 3 bit per indicare un
registro (il codice operativo indica il banco)
 Intervallo di indirizzi
 Granularita’ degli indirizzi (es.: byte o parola)
 L’indirizzamento di byte richiede piu’ bit ma e’ utile (es. per
manipolare caratteri)

23 24
Formato delle istruzioni del PDP-11
Formato delle istruzioni del PDP-10

25 26

Formato delle istruzioni del VAX Formato delle istruzioni del


Pentium

27 28

Formato delle istruzioni del PowerPC (1) Formato delle istruzioni del PowerPC (2)

29 30