Index
Related
Introduzione
Ogni Istruzione è rappresentata in 32 bit, assegnando significati diversi a sequenze di questi bit sono state decise 3 principali formattazioni per le istruzioni:
Formattazione delle istruzioni:
31 26 - 25 21 - ... - 05 00
sono i range di bit in cui sono rappresentati i parametri delle istruzioni ad esempio, in J-Type dal bit 31 al 26 è contenuta l’opcode e dal 25 allo 0 l’indirizzo.
Significato acronimi
opcode:
operation coders:
first register source operandrt:
second register source operandrd:
register destination operandshamt:
shift amountfunct:
function code
R-type
Le istruzioni R-type eseguono operazioni aritmetico/logiche.
op | rs | rt | rd | shamt | funct |
---|---|---|---|---|---|
6 bit | 5 bit | 5 bit | 5 bit | 5 bit | 6 bit |
I 32 bit sono suddivisi in:
opcode:
operazione base dell’istruzioners:
registro contenente il primo operando sorgentert:
registro contenente il secondo operando sorgenterd:
registro di destinazioneshamt:
numero di posizioni di scorrimento (utilizzato solo per operazioni di shifting, default zero)funct:
specifica la variante dell’operazione base definita dal codice operativo
Esempio
Quindi se faccio
add $t0,$s1,$s2
op
rs
rt
rd
shamt
funct
000000 10001 10010 01000 00000 100000 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit
rd
corrisponderà a t0rs
corrisponderà a s1rt
corrisponderà a s2
I-type
Le istruzioni di tipo I-type (immediato), hanno 16 bit per un indirizzo di memoria (o meglio una sua parte) o una costante.
op | rs | rt | imm |
---|---|---|---|
6 bit | 5 bit | 5 bit | 16 bit |
I 32 bit sono suddivisi in:
opcode:
operazione base dell’istruzioners:
registro contenente il primo operando sorgentert:
registro contenente il secondo operando sorgenteimm:
costante o indirizzo
Utilizzo
Questo tipo di istruzione è utilizzato per effettuare operazioni di tipo:
load
/store
doveimm
(ultimi 16 bit) è utilizzata per passare una costantesalti
di tipo immediato doveimm
(ultimi 16 bit) è utilizzata per passare una indirizzo di un indirizzo del pc
Esempio
Quindi se faccio
addi $t2,$s2,4
|
op
|rs
|rt
|imm
| | ----- | ----- | ----- | ----- | ------- | ------- | | 00 1000 | 0 1010 | 0 1010 | 0000 0000 0000 0100 | | 6 bit | 5 bit | 5 bit | 16 bit |
J-type
Le istruzioni di tipo J-type permettono di effettuare salti non condizionati (salti assoluti).
op | address |
---|---|
6 bit | 26 bit |
I 32 bit sono suddivisi in:
opcode:
operazione base dell’istruzioneaddress:
registro contenente il primo operando sorgente
Esempio
Quindi se faccio
addi $t2,$s2,4
|
op
|rs
|rt
|imm
| | ----- | ----- | ----- | ----- | ------- | ------- | | 00 1000 | 0 1010 | 0 1010 | 0000 0000 0000 0100 | | 6 bit | 5 bit | 5 bit | 16 bit |