Calcolatori Elettronici I

  

Università degli Studi di Cassino

Corso di Laurea in
Ingegneria delle Telecomunicazioni

   prof. Francesco Tortorella  (mail)

     Anno Accademico 2007/2008

     secondo quadrimestre

 


 

 

Esercitazione n. 4 - 11/2/2008

 

Esercizio A

 

Scrivere un programma in Assembly MIPS che calcoli la somma degli elementi di un array di interi letti da input e salvati in uno spazio opportunamente allocato nel segmento .data. Nello stesso modo si salvi il valore calcolato prima di stamparlo in output.

Si consideri a titolo di riferimento il seguente  codice C:

 

 unsigned int vet[128];

 unsigned int riemp;

 unsigned int somma;

 

void main()

{

  unsigned int x,i,n,s;

  

  cout << "Numero elementi: ";

  cin >> n;

  riemp=n;

 

  for(i=0;i<n;i++)

  {

    cout << "Elemento " << i <<": ";

    cin >> x;

    vet[i]=x;

  }

 

  s=0;

  for(i=0;i<n;i++)

  {

    x=vet[i];

    s=s+x;

  }

 

  somma = s;

 

  cout << "La somma degli " << n << " elementi ";

  cout << "e' " << somma << "\n";

}

 

 

 

 

Esercizio B

 

Scrivere un programma in Assembly MIPS che legga da input una stringa di max 63 caratteri  e salvati in uno spazio opportunamente allocato nel segmento .data. Il programma costruisca poi una nuova stringa (anch'essa da memorizzare nel segmento .data) ottenuta convertendo in maiuscolo i caratteri alfabetici minuscoli e lasciando inalterati gli altri.

Si consideri a titolo di riferimento il seguente  codice C:

 

 char string1[64];

 char string2[64];

 

 void main()

 {

   int i;

   cout << "Stringa: ";

   cin >> string1;

 

 

   while(string1[i] != '\0')

   {

      if((string1[i] >= 'a') && (string1[i] <= 'z'))

        string2[i]=string1[i]-'a'+'A';

      else

        string2[i]=string1[i];

     

      i++;

   }

  

   string2[i]='\0';

 

   cout << "Stringa in maiuscolo: " << string2;

   cout << "\n";

 }

 

Nota:

E' possibile caricare il codice ASCII di un carattere in un registro considerando il carattere come costante.

Esempio: 

li $t0,'a'  carica il valore 97 (codice ASCII di 'a') nel registro $t0.


     

 

 


Home page del corso

© 2008 Francesco Tortorella.
Ultimo aggiornamento: 9/2/2008.