Microprogrammazione

Download Report

Transcript Microprogrammazione

Microprogrammazione
Codice operativo
Supponiamo di avere una CPU che contenga registri 8 (da
R0 a R7) e sappia eseguire un set limitato di istruzioni.Inoltre
l’AB e il DB abbiano dimensione pari a 1 byte
Le istruzioni siano le seguenti:
• NOP
• LEGGI
• SCRIVI
• SOMMA
• SOTTRAI
• SALTA_SE
• SE_ALLORA
Normalmente le istruzioni si compongono al
minimo di 2 byte
1.Il codice operativo
2.L’eventuale operando
Nelle istruzioni a due operandi uno può essere
il dato stesso oppure l’indirizzo dove si trova
il dato, l’altro è sempre un registro
Dovendo codificare in binario le informazioni
riguardanti i registri e le istruzioni avremo bisogno di:
• tre bit per codificare i registri
• tre bit per codificare le istruzioni
• due bit per le modalità di reperimento del
secondo operando (indirizzamento ) supposto
che:
– il dato sia presente nell’istruzione(immediato)
– Il dato sia in memoria(diretto)
– Il secondo operando si individua attraverso l’uso del
registro indice( indicizzato)
In totale 8 bit
Un esempio di codifica delle istruzioni potrà
allora essere la seguente:
Istruzione
Cod operativo
eventuale operando
b7 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 b0
indirizzamento
Tipo di operazione
Eventuale registro
Come verrà ’ codificata l’istruzione: SOMMA IN R2 ,6F ?
TABELLE DI CONVERSIONE
NOP
000
LEGGI
001
R0[IP]
000
SCRIVI
010
R1
001
SOMMA
011
R2
010
SOTTRAI
100
R3
011
SALTA_SE
101
R4 [INDICE]
100
SE_ALLORA
110
R5
101
IMMEDIATO
00
01
10
R6
110
R7
111
DIRETTO
INDICIZZATO
AVREMO
b7 b6 b5 b4 b3 b2 b1 b0
b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 0 1 0 0 0
0 1 1 0 1 1 1 1
ESERCIZI
TROVATE LA CODIFICA DELLE SEGUENTI ISTRUZIONI
•
•
•
•
SOTTRAI DA R3 53
SOMMA A R3 R4
SCRIVI IN R2 [54]
SALTA A 100