[HomePage di Architettura]

Precedente Successiva

13: Il Set di Istruzioni (1)

[Slide]
[Riferimenti]
 [Schema]
[Auto-verifica]
[Esercizi]
 [Problemi]
 [Link]

Slides: (bianco e nero)

Riferimenti bibliografici

bullet

[Patterson]: Cap. 3 (par. 1, 2 e 3)

bullet

"SIM: A Simple Interpreter for MIPS" (versione 1.0) presso http://www.dia.unisa.it/~vitsca/SIM

Schema della lezione

bullet

La programmazione dei calcolatori

bullet

Alcuni principi progettuali

bullet

Introduzione al linguaggio macchina MIPS
bullet

operazioni

bullet

operandi

bullet

Operazioni
bullet

aritmetiche (add e sub)

bullet

di trasferimento dati (lw e sw)

bullet

Indirizzamento indicizzato della memoria

Auto-verifica della comprensione degli argomenti della lezione

"Cosa si intende per auto-verifica?"
bullet

Quali sono i principi guida per la progettazione di un linguaggio macchina?

bullet

Quali sono i requisiti tra cui bisogna "mediare" una soluzione?

bullet

Perché i registri "devono" essere pochi?

bullet

Perché i registri "devono" essere in numero potenza di due?

bullet

Cosa fanno le istruzioni di add e sub?

bullet

Perché servono le istruzioni di trasferimento dati?

bullet

Come indirizza i dati da caricare in un registro la istruzione lw?

bullet

Come indirizza i dati da prelevare da un registro la istruzione sw?

bullet

Perché le istruzioni di trasferimento dati devono essere almeno 2?

bullet

Una parola (32 bit) cosa può rappresentare in un calcolatore?

bullet

Perché è necessario rendere le istruzioni con un numero di formati diversi?

bullet

Perché sono sufficienti 3 campi di 5 bit per rappresentare i tre registri da usare in una istruzione in formato R? Perché 3 registri? Perché di 5 bit?

bullet

Perché nel formato I è necessario "ampliare" il campo indirizzo per memorizzare la locazione di base da cui calcolare l'indirizzo indicizzato? Non bastava il campo  rd del formato R?

bullet

Perché (nel formato R) i 4 campi da 5 bit sono posizionati al "centro" della parola da 32 bit? Perché non "conviene" posizionarli" altrove nella parola di 32 bit?

Esercizi

bullet

Come si fa a realizzare la istruzione (C) g = h + A[i] ? (Vedere esempi a pag. 95)

bullet

Scrivere un programma che, assumendo di avere dei valori nei registri $s0, $s1 e $s2  scriva nella parola con indirizzo 1000 la somma dei tre registri.

bullet

Scrivere un programma che, assumendo di avere nel registro $s0 il valore 10, nel registro $1 il valore 4, nel registro $2 il valore 3, scriva nelle parole con indirizzo 1000, 1004, 1008, rispettivamente il valore 10, 13 e 16.

Problemi

bullet

Che tipo di indirizzamento dovremmo avere a disposizione per poter fare a meno dell'indirizzamento indicizzato?

bullet

Perché le istruzioni di trasferimento dati lw e sw prevedono un metodo di indirizzamento dati indicizzato? 
bullet

Non sarebbe stato più facile prevedere un indirizzamento "diretto" vale a dire specificare direttamente la locazione di memoria da cui (o verso cui) prelevare (o scrivere) il dato di un registro?

Alcuni link utili:

Modificato il: 30/09/2003
Vittorio Scarano
Dipartimento di Informatica ed Applicazioni "R.M. Capocelli"
Università degli Studi di Salerno
vitsca@unisa.it