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 00sono 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
oprsrtrdshamtfunct000000 10001 10010 01000 00000 100000 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit
rdcorrisponderà a t0rscorrisponderà a s1rtcorrisponderà 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/storedoveimm(ultimi 16 bit) è utilizzata per passare una costantesaltidi 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 |
