SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Progetto MIPS/SPIM


Descrizione
Questa tipologia di progetto consiste in

          Sviluppare un programma in linguaggio MIPS assembly
          Simulare il programma in QtSPIM (o PCSPIM)
          Preparare una relazione del progetto (max 20 pagine)

Inoltre,

          Si può presentare il progetto individualmente o in coppie
          Al momento dell’esame, occorre presentare una copia cartacea della relazione e una copia digitale
           (CD o DVD, comprensiva di codice)

Infine,

          Lo studente potrà scegliere tra i progetti presenti in questo documento, oppure proporre progetti
           differenti. Nel secondo caso, il Professore valuterà la coerenza e la fattibilità della proposta.
          In ogni caso, il progetto scelto va comunicato al Prof. Leonardo Pasini via mail
           (leonardo.pasini@unicam.it).

Nella pagina seguente, sono elencati alcuni progetti disponibili e un template esemplificativo per la
relazione.
Lista dei progetti disponibili


                                           Progetto 1 - Primalità
Implementare una procedura in MIPS per calcolare e stampare i primi 100 numeri primi.
Un naturale n>1 è detto primo se è divisibile solo per sè stesso e per 1.
Suggerimento:
Implementate due routine:
     test_prime (n): ritorna 1 se n è primo; 0 altrimenti
     main (): cicla sui naturali, testando se ogni numero è primo. Stampa i primi 100 numeri primi e si
       ferma.


                                       Progetto 2 – Calcolo del pi-greco
Implementare una procedura in MIPS per calcolare e stampare un valore approssimato del pi-greco.
Il metodo da utilizzare è quello del prodotto di Wallis: (http://it.wikipedia.org/wiki/Prodotto_di_Wallis).
                                             Prodotto di Wallis:




Suggerimenti:
    Trasformare l’espressione del prodotto di Wallis in modo tale da minimizzare le operazioni
       aritmetiche
    Basta un numero limitato di iterazioni. 100 sono sufficienti.
    Naturalmente avrete bisogno di utilizzare i registri floating-point
Progetto 3 – Bubble sort
Implementare una procedura in MIPS che esegue l’algoritmo di ordinamento noto come Bubble sort.
Il programma dovrà prendere in input un’array di interi e stampare gli elementi ordinati secondo
l’algoritmo indicato.
All’indirizzo http://it.wikipedia.org/wiki/Bubble_sort , potete trovare una descrizione più dettagliata
dell’algoritmo, mentre http://it.wikibooks.org/wiki/Implementazioni_di_algoritmi/Bubble_sort mostra
alcune implementazioni più ad alto livello.
Bubble sort - codice Java:

  public void bubbleSort(int[] x)
    {
    int temp;
    int j = x.length-1;
    while(j>0)
      {
      for(int i=0; i<j; i++)
        {
        //controllo valori adiacenti; scambio se il corrente è > del successivo
        if(x[i]>x[i+1]){
           //esegue lo scambio
           temp=x[i];
           x[i]=x[i+1];
           x[i+1]=temp;
           }
        }
      j--;
      }
    }

Suggerimenti:
    L’array di interi in input può avere lunghezza fissa o variabile


                                        Progetto 4 – Macchina del caffè
Implementare una procedura in MIPS che simuli una macchina del caffè. Si richiedono le seguenti
interazioni utente-macchina:
     La macchina può erogare coffee o tea.
     L’utente può inserire monete da 5, 10, 20, 50, 100, o 200 centesimi.
     I prezzi delle bevande sono: coffee=35 e tea=40.
     Ad ogni inserimento, il display stampa il credito corrente
     In ogni momento, l’utente può chiedere l’erogazione della bevanda specificando in input “coffee”
        o “tea”
     Se il credito non è sufficiente per la bevanda, il display stampa l’importo rimanente da inserire
        per la bevanda richiesta
     Una volta inserito un importo adeguato e scelta la bevanda, il display deve indicare che sta
        erogando la bevuta
     In qualsiasi momento, l’utente può richiedere l’importo inserito (o il resto) specificando “quit”. In
        tal caso, il display stampa l’importo dovuto e la macchina si spegne.
Progetto 5 – Hex to Dec
Implementare una procedura in MIPS che effettua la conversione di una stringa esadecimale passata in
input in un numero decimale. Si considerano interi esadecimali non segnati. Il programma dovrà stampare
il numero decimale convertito.


                                         Progetto 6 – Dec to Hex
Implementare una procedura in MIPS che effettua la conversione di un numero decimale passato in input
in una stringa esadecimale. Si considerano interi non segnati.
Suggerimenti:
     Si può utilizzare il metodo delle divisioni successive
NOME PROGETTO
      Progetto di Architettura degli Elaboratori – Prof. Leonardo Pasini
      Corso di Laurea in Informatica – Scuola di Scienze e Tecnologie – Università di Camerino

                                  Anno Accademico: 2010/2011




Candidati:

Candidato 1 – Matricola n. 1

Candidato 2 – Matricola n. 2

...
Specifica del problema
Descrivere il problema da risolvere. La lunghezza di questa parte dipende naturalmente dal progetto scelto.


Descrizione dell’algoritmo
Descrivere in modo dettagliato e più formale l’algoritmo da implementare. In questa parte, si consiglia di
inserire lo pseudocodice dell’algoritmo e la sua codifica in un linguaggio ad alto livello a scelta (C, Java, ...).
Si spieghino e si giustifichino in modo dettagliato le scelte adottate.


Implementazione
In questa parte va aggiunto il codice MIPS assembly implementato e commentato in modo chiaro ed
esauriente. Sono consigliati commenti all’interno del codice, e commenti più ampi nella relazione.


Simulazione
In questa sezione andranno gli screenshot commentati di una simulazione-tipo.

Más contenido relacionado

Destacado

18 embarazo de alto_riesgo_1
18 embarazo de alto_riesgo_118 embarazo de alto_riesgo_1
18 embarazo de alto_riesgo_1Mocte Salaiza
 
Principios doutrinarios iese
Principios doutrinarios iesePrincipios doutrinarios iese
Principios doutrinarios ieseIsde
 
Anencefalia
AnencefaliaAnencefalia
AnencefaliaNanys
 
Aborto Fac Med Uchile Oriente
Aborto Fac Med Uchile OrienteAborto Fac Med Uchile Oriente
Aborto Fac Med Uchile OrienteHugo Ibañez
 
Considerações a respeito do aborto espontâneo e provocado
Considerações a respeito do aborto espontâneo e provocadoConsiderações a respeito do aborto espontâneo e provocado
Considerações a respeito do aborto espontâneo e provocadoCleiton Ribeiro Alves
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Sergio Porcu
 
Hemorragia de la primera mitad del embarazo
Hemorragia de la primera mitad del embarazoHemorragia de la primera mitad del embarazo
Hemorragia de la primera mitad del embarazoDaniel Mactavish
 
Hemorragias de la primera mitad del embarazo
Hemorragias de la primera mitad del embarazoHemorragias de la primera mitad del embarazo
Hemorragias de la primera mitad del embarazoAndrey Martinez Pardo
 

Destacado (11)

18 embarazo de alto_riesgo_1
18 embarazo de alto_riesgo_118 embarazo de alto_riesgo_1
18 embarazo de alto_riesgo_1
 
Principios doutrinarios iese
Principios doutrinarios iesePrincipios doutrinarios iese
Principios doutrinarios iese
 
Anencefalia
AnencefaliaAnencefalia
Anencefalia
 
Aborto Fac Med Uchile Oriente
Aborto Fac Med Uchile OrienteAborto Fac Med Uchile Oriente
Aborto Fac Med Uchile Oriente
 
Considerações a respeito do aborto espontâneo e provocado
Considerações a respeito do aborto espontâneo e provocadoConsiderações a respeito do aborto espontâneo e provocado
Considerações a respeito do aborto espontâneo e provocado
 
Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086Esercizi in linguaggio Assembly 8086
Esercizi in linguaggio Assembly 8086
 
anencefalia
anencefaliaanencefalia
anencefalia
 
Anencefalia
AnencefaliaAnencefalia
Anencefalia
 
Hemorragia de la primera mitad del embarazo
Hemorragia de la primera mitad del embarazoHemorragia de la primera mitad del embarazo
Hemorragia de la primera mitad del embarazo
 
Anencefalia
AnencefaliaAnencefalia
Anencefalia
 
Hemorragias de la primera mitad del embarazo
Hemorragias de la primera mitad del embarazoHemorragias de la primera mitad del embarazo
Hemorragias de la primera mitad del embarazo
 

Similar a Progetto MIPS/SPIM AA 2010-2011

Ricerca Operativa - AMPL
Ricerca Operativa - AMPLRicerca Operativa - AMPL
Ricerca Operativa - AMPLmacdario
 
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...Alessandro Umek
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningAndrea Ciccotta
 
Corso isvap matlab per traders quantitativi
Corso isvap matlab per traders quantitativiCorso isvap matlab per traders quantitativi
Corso isvap matlab per traders quantitativiLuigi Piva CQF
 
Coding class da scratch a python
Coding class  da scratch a pythonCoding class  da scratch a python
Coding class da scratch a pythonEnrico La Sala
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understandLuigi La Torre
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Donato Clun
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft, solutions to collaborate
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java BaseK-Tech Formazione
 
Modulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictModulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictAndreina Concas
 
Book impianti Centralizzati TV e SAT-FTE Maximal Italia
Book impianti Centralizzati TV e SAT-FTE Maximal ItaliaBook impianti Centralizzati TV e SAT-FTE Maximal Italia
Book impianti Centralizzati TV e SAT-FTE Maximal ItaliaMassimo Talia
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataVincenzo Manzoni
 
Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Alexander Minichino
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Henry Muccini
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Paradisi63
 

Similar a Progetto MIPS/SPIM AA 2010-2011 (20)

La scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptxLa scomposizione in sotto programmi in C++.pptx
La scomposizione in sotto programmi in C++.pptx
 
La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++La metodologia Top - Down - applicazione al C++
La metodologia Top - Down - applicazione al C++
 
Calcolo Parallelo
Calcolo ParalleloCalcolo Parallelo
Calcolo Parallelo
 
Ricerca Operativa - AMPL
Ricerca Operativa - AMPLRicerca Operativa - AMPL
Ricerca Operativa - AMPL
 
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...
Integrazione e sviluppo di una piattaforma per la gestione delle conformità a...
 
Java Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine LeariningJava Symbolic Regression - Machine Learining
Java Symbolic Regression - Machine Learining
 
Corso isvap matlab per traders quantitativi
Corso isvap matlab per traders quantitativiCorso isvap matlab per traders quantitativi
Corso isvap matlab per traders quantitativi
 
Algoritmi
Algoritmi Algoritmi
Algoritmi
 
Coding class da scratch a python
Coding class  da scratch a pythonCoding class  da scratch a python
Coding class da scratch a python
 
Presentazione understand
Presentazione understandPresentazione understand
Presentazione understand
 
Programmazione Top Down in C++
Programmazione Top Down in C++Programmazione Top Down in C++
Programmazione Top Down in C++
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
Emerasoft Day 2012 - TRS "Uso del metodo Cosmic e di Polarion per la gestione...
 
Corso Programmazione Java Base
Corso Programmazione Java BaseCorso Programmazione Java Base
Corso Programmazione Java Base
 
Modulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ictModulo 1 concetti di base dell'ict
Modulo 1 concetti di base dell'ict
 
Book impianti Centralizzati TV e SAT-FTE Maximal Italia
Book impianti Centralizzati TV e SAT-FTE Maximal ItaliaBook impianti Centralizzati TV e SAT-FTE Maximal Italia
Book impianti Centralizzati TV e SAT-FTE Maximal Italia
 
Introduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big DataIntroduzione ai Big Data e alla scienza dei dati - Big Data
Introduzione ai Big Data e alla scienza dei dati - Big Data
 
Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...Final presentation of Project Management course (Gestione Progetti Software) ...
Final presentation of Project Management course (Gestione Progetti Software) ...
 
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
Web Engineering L7: Sequence Diagrams and Design Decisions (7/8)
 
Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014Flavio ATZENI - SMAU 2014
Flavio ATZENI - SMAU 2014
 

Progetto MIPS/SPIM AA 2010-2011

  • 1. Progetto MIPS/SPIM Descrizione Questa tipologia di progetto consiste in  Sviluppare un programma in linguaggio MIPS assembly  Simulare il programma in QtSPIM (o PCSPIM)  Preparare una relazione del progetto (max 20 pagine) Inoltre,  Si può presentare il progetto individualmente o in coppie  Al momento dell’esame, occorre presentare una copia cartacea della relazione e una copia digitale (CD o DVD, comprensiva di codice) Infine,  Lo studente potrà scegliere tra i progetti presenti in questo documento, oppure proporre progetti differenti. Nel secondo caso, il Professore valuterà la coerenza e la fattibilità della proposta.  In ogni caso, il progetto scelto va comunicato al Prof. Leonardo Pasini via mail (leonardo.pasini@unicam.it). Nella pagina seguente, sono elencati alcuni progetti disponibili e un template esemplificativo per la relazione.
  • 2. Lista dei progetti disponibili Progetto 1 - Primalità Implementare una procedura in MIPS per calcolare e stampare i primi 100 numeri primi. Un naturale n>1 è detto primo se è divisibile solo per sè stesso e per 1. Suggerimento: Implementate due routine:  test_prime (n): ritorna 1 se n è primo; 0 altrimenti  main (): cicla sui naturali, testando se ogni numero è primo. Stampa i primi 100 numeri primi e si ferma. Progetto 2 – Calcolo del pi-greco Implementare una procedura in MIPS per calcolare e stampare un valore approssimato del pi-greco. Il metodo da utilizzare è quello del prodotto di Wallis: (http://it.wikipedia.org/wiki/Prodotto_di_Wallis). Prodotto di Wallis: Suggerimenti:  Trasformare l’espressione del prodotto di Wallis in modo tale da minimizzare le operazioni aritmetiche  Basta un numero limitato di iterazioni. 100 sono sufficienti.  Naturalmente avrete bisogno di utilizzare i registri floating-point
  • 3. Progetto 3 – Bubble sort Implementare una procedura in MIPS che esegue l’algoritmo di ordinamento noto come Bubble sort. Il programma dovrà prendere in input un’array di interi e stampare gli elementi ordinati secondo l’algoritmo indicato. All’indirizzo http://it.wikipedia.org/wiki/Bubble_sort , potete trovare una descrizione più dettagliata dell’algoritmo, mentre http://it.wikibooks.org/wiki/Implementazioni_di_algoritmi/Bubble_sort mostra alcune implementazioni più ad alto livello. Bubble sort - codice Java: public void bubbleSort(int[] x) { int temp; int j = x.length-1; while(j>0) { for(int i=0; i<j; i++) { //controllo valori adiacenti; scambio se il corrente è > del successivo if(x[i]>x[i+1]){ //esegue lo scambio temp=x[i]; x[i]=x[i+1]; x[i+1]=temp; } } j--; } } Suggerimenti:  L’array di interi in input può avere lunghezza fissa o variabile Progetto 4 – Macchina del caffè Implementare una procedura in MIPS che simuli una macchina del caffè. Si richiedono le seguenti interazioni utente-macchina:  La macchina può erogare coffee o tea.  L’utente può inserire monete da 5, 10, 20, 50, 100, o 200 centesimi.  I prezzi delle bevande sono: coffee=35 e tea=40.  Ad ogni inserimento, il display stampa il credito corrente  In ogni momento, l’utente può chiedere l’erogazione della bevanda specificando in input “coffee” o “tea”  Se il credito non è sufficiente per la bevanda, il display stampa l’importo rimanente da inserire per la bevanda richiesta  Una volta inserito un importo adeguato e scelta la bevanda, il display deve indicare che sta erogando la bevuta  In qualsiasi momento, l’utente può richiedere l’importo inserito (o il resto) specificando “quit”. In tal caso, il display stampa l’importo dovuto e la macchina si spegne.
  • 4. Progetto 5 – Hex to Dec Implementare una procedura in MIPS che effettua la conversione di una stringa esadecimale passata in input in un numero decimale. Si considerano interi esadecimali non segnati. Il programma dovrà stampare il numero decimale convertito. Progetto 6 – Dec to Hex Implementare una procedura in MIPS che effettua la conversione di un numero decimale passato in input in una stringa esadecimale. Si considerano interi non segnati. Suggerimenti:  Si può utilizzare il metodo delle divisioni successive
  • 5. NOME PROGETTO Progetto di Architettura degli Elaboratori – Prof. Leonardo Pasini Corso di Laurea in Informatica – Scuola di Scienze e Tecnologie – Università di Camerino Anno Accademico: 2010/2011 Candidati: Candidato 1 – Matricola n. 1 Candidato 2 – Matricola n. 2 ...
  • 6. Specifica del problema Descrivere il problema da risolvere. La lunghezza di questa parte dipende naturalmente dal progetto scelto. Descrizione dell’algoritmo Descrivere in modo dettagliato e più formale l’algoritmo da implementare. In questa parte, si consiglia di inserire lo pseudocodice dell’algoritmo e la sua codifica in un linguaggio ad alto livello a scelta (C, Java, ...). Si spieghino e si giustifichino in modo dettagliato le scelte adottate. Implementazione In questa parte va aggiunto il codice MIPS assembly implementato e commentato in modo chiaro ed esauriente. Sono consigliati commenti all’interno del codice, e commenti più ampi nella relazione. Simulazione In questa sezione andranno gli screenshot commentati di una simulazione-tipo.