Esercizio B
Scrivere
un programma in Assembly MIPS che legga da input due array di interi
signed contenenti lo stesso numero di elementi e li salvi in uno spazio
opportunamente allocato nel segmento
.data.
Il programma costruisca poi un terzo array (anch'esso da
memorizzare nel segmento .data) in cui ogni elemento è costituito dal massimo degli elementi omologhi appartenenti ai due array letti.
Si consideri a titolo di
riferimento il
seguente codice C:
int vet1[100];
int vet2[100];
int vetmax[100];
int riemp;
void main()
{
int riemp1,riemp2;
leggi_vet(vet1,riemp1);
leggi_vet(vet2,riemp2);
if(riemp1!=riemp2)
{
cout<<"Errore: vettori di dimensioni diverse\n";
exit();
}
riemp=riemp1;
build_vet(vet1,vet2,vet3,riemp);
stampa_vet(vet3,riemp);
}
void leggi_vet(int v[],int &n)
{
int x;
int i;
cout << "Numero elementi: ";
cin >> n;
for(i=0;i<n;i++)
{
cout << "Elemento
" << i <<": ";
cin >> x;
vet[i]=x;
}
}
void build_vet(int v1[],int v2[],int v3[], int n)
{
int i;
for(i=0;i<n;i++)
if(v1[i]>v2[i])
v3[i]=v1[i];
else
v3[i]=v2[i];
}
void stampa_vet(int v[],int n)
{
int i;
for(i=0;i<n;i++)
cout << "Elemento
" << i <<": "<< vet[i]<<"\n";
}
|