Corso di Laurea in Informatica
Architettura degli elaboratori
a.a. 2014-15
ISA e Asm: esempi e suggerimenti
Obiettivi e suggerimenti
• Capire come sono codificate le istruzioni a livello macchina e
come possono essere rappresentate
• Una istruzione macchina è sempre di 32 bit (1 Word)
rappresentati spesso in esadecimale
• Per capire che istruzione è e cosa fa:
1.
2.
3.
•
Convertire in binario
Guardare il codice operativo (opcode) (primo field dell’istruzione, bit
31:26), che consente di capire di che tipo di istruzione si tratta e quindi
come i bit successivi vadano raggruppati in field
Guardare i singoli field, capirne il significato e capire in dettaglio cosa fa
l’istruzione
Come si fa? Suggerimenti:
•
•
•
Usare la tabella Fig. A.10.2 dell’Appendice A del Patterson-Hennessy
(Appendice B in edizioni più recenti rispetto a quella disponibile sul sito)
La tabella è piuttosto complicata. Concentrarsi sulla prima colonna con
intestazione op(31:26) e, se serve, sulla sesta con intestazione func(5:0).
Le altre colonne sono relative a istruzioni “strane” che non saranno
oggetto di esame (ma non è una cattiva idea guardarne qualcuna...)
Cercare in Appendice A l’istruzione, ricavando il formato e il significato
A.A 2014-15
ISA (esempi e suggerimenti)
2
Esempio 1 (istruzione R-type)
•
•
•
•
•
•
•
•
Istruzione hex: 0x010a4822
Binario: 00000001000010100100100000100010
opcode: 000000 ovvero 0x00 ovvero 0
Dalla tabella (Fig. A.10.2, colonna 1): si capisce che è una
istruzione di tipo R
funct: 100010 ovvero 0x22 ovvero 34
Dalla tabella, colonna 6: istruzione “sub”
Cercare “sub” in Appendice: Subtract
Quindi i campi successivi a opcode sono:
•
L’istruzione:
•
Formati asm:
•
•
•
•
•
•
•
•
primo registro sorgente (5 bit) 01000 ovvero 0x08 ovvero 8
secondo registro sorgente (5 bit) 01010 ovvero 0x0a ovvero 10
registro destinazione (5 bit) 01001 ovvero 0x09 ovvero 9
il campo shamt non è rilevante per questa istruzione
sottrae il contenuto del registro 10 dal contenuto del registro 8
mette il risultato nel registro 9
sub $9, $8, $10
sub $t1, $t0, $t2 (vedere Fig. A.6.1)
A.A 2014-15
ISA (esempi e suggerimenti)
3
Esempio 2 (istruzione I-type)
•
•
•
•
•
Istruzione hex: 0xad0a0000
Binario: 10101101000010100000000000000000
opcode: 101011 ovvero 0x2b ovvero 43
Dalla tabella (Fig. A.10.2, colonna 1): istruzione “sw”
Cercare “sw” in Appendice: Store word, da cui si capisce che:
•
è una istruzione che fa riferimento a memoria (formato I)
• Quindi i campi successivi a opcode sono:
•
•
•
registro base (5 bit) 01000 ovvero 0x08 ovvero 8
registro sorgente (5 bit) 01010 ovvero 0x0a ovvero 10
offset (spiazzamento) rispetto al registro base (16 bit) 0000000000000000
• L’istruzione:
•
•
memorizza il contenuto del registro 10
all’indirizzo ottenuto sommando offset e contenuto del registro base
• Formati asm:
•
•
sw $10, 0($8)
sw $t2, 0($t0) (vedere Fig. A.6.1)
A.A 2014-15
ISA (esempi e suggerimenti)
4
Scarica

Slides_14-15_ISA_Asm_Suggerimenti_V2 - e