Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Concetti preliminari
Modi di indirizzamento fondamentali
Altri modi di indirizzamento (cenni)
2k-4 2k-3 2k-2 2k-1 Parola 2k-4 2k-1 2k-2 2k-3 2k-4 Parola 2k-4
Address size:
» Numero di bit che compongono un indirizzo di memoria
Register size:
» Numero di bit che compongono un registro
Non è detto che le due dimensioni coincidano. Tipicamente,
la seconda è uguale o maggiore della prima
Non è detto che tutti i bit del registro vengano fisicamente
connessi con la memoria. Ciò implica che:
» Lo spazio di indirizzamento logico è in generale diverso dallo spazio di
indirizzamento fisico
» Possono sorgere problemi di “aliasing”
indirizzo Memoria
00000 --
20 bit
FFFFF --
20 bit
8 bit
indirizzo Memoria
000000 -- --
32 bit
FFFFFE -- --
24 bit
16 bit
indirizzo Memoria
00000000 -- -- -- --
32 bit
FFFFFFFC -- -- -- --
32 bit 32 bit
00XXXXXX
01XXXXXX
XXXXXX
…
FFXXXXXX
Absolute Long
» Short Relative
» Long Relative Indexed
Address-register Indirect Short
Long
Auto-Increment
Auto-Decrement
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli 18
Register Direct Addressing
L’istruzione indica
il registro dati
M OV E.B D0,D1
L’operando sorgente
è il registro dati D0
25 D0
D1
M OVE.B D0,D1
25 D0
D1
L’operando destinazione
è il registro dati D1
M OVE.B D0,D1
25 D0
25 D1
Esempio:
M OVE.B #4,D0
D0
D0
M OVE.B #4,D0
D0
M OVE.B #4,D0
4 D0
Memor y
Questa istruzione ha un operando
M OVE.B 20,D0
absolute
20 42
D0
Memor y
M OVE.B 20,D0
20 42
42 D0
Esempio:
» MOVE.B (A0),D0
Questa istruzione
Memor y significa: carica D0
MOVE.B (A0),D0 con il contenuto della
A0
1000
locazione puntata dal
registro indirizzo A0
1000 57 57 D0
Memor y
A0 M OVE.B (A0),D0
1000
1000 57 D0
Memor y
A0 M OVE.B (A0),D0
1000
1000 57 57 D0
Memor y
A0 ADD.B (A0)+,D0
1000
1000 57 D0
Memor y
A0 ADD.B (A0)+,D0
1000
1000 57 D0
1001
Memor y
A0 ADD.B (A0)+,D0
1001
1000 D0
1001 43
ORG $8000
MOVE.B #5,D0
LEA Table,A0 A0 punta ai numeri
CLR.B D1 Inizializza la somma
Loop ADD.B (A0)+,D1 Somma il numero al totale
SUB.B #1,D0
BNE Loop
STOP #$2700
Table DC.B 1,2,3,4,5 Dati d’esempio
EA = (An) + d16
EA = (An) + (Xn) + d8
ASSEMBLER SYNTAX: (d8 ,An, Xn.SIZE*SCALE)
EA = (An) + (Xn) + bd
ASSEMBLER SYNTAX: (bd,An,Xn.SIZE*SCALE)
EA = (PC) + d
ASSEMBLER SYNTAX: (d ,PC)
EA = (PC) + (Xn) + d8
ASSEMBLER SYNTAX: (d8 ,PC,Xn.SIZE*SCALE)
EA = (PC) + (Xn) + bd
ASSEMBLER SYNTAX: (bd, PC, Xn. SIZE*SCALE)