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. 3 - 5/2/2008

 

Esercizio A

 

Scrivere un programma in Assembly MIPS che calcoli il Massimo Comune Denominatore tra due numeri interi letti da input e salvati in due spazi opportunamente allocati 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, che implementa l'algoritmo di Euclide:

 

 unsigned int a,b,mcd;

 

void main()

{

  unsigned int x,y,appo,r;

  

  cout << "Primo valore: ";

  cin >> a;

  cout << "Secondo valore: ";

  cin >> b;

 

  if (a>=b)

  {

    x = a;

    y = b;

  }

  else

  {

    x = b;

    y = a;

  }

 

  r = x%y;

  while (r!=0)

  {

     x = y;

     y = r;

            r = x%y;

  }

 

  mcd = y;

  cout << "Il MCD tra " << a << " e " << b;

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

}

 

 

 

Esercizio B

 

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";

}

 

 
     

 

 


Home page del corso

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