Salve ,
Mi è stato delegato un programma in c++ in cui devo simulare il funzionamento della cpu riconoscendo istruzioni e dati forniti in una memoria composta da n celle. Per fare ciò ho scelto dei numeri a cui assegnare un istruzione , per esempio 33 per caricare il dato nella cella successiva all'istruzione nel registro a (stessa cosa per 34 e 35 rispettivamente nei registri b e c), 36 per sommare a e b , e 37 per memorizzare il dato nell'accumulatore, ovvero il registro a. Questo è il codice.
codice:
#include <iostream>using namespace std;
const int mx=10;
int main()
{
int memoria[mx],a=0,b=0,c=0,i=1,acc=0;
for( i=1;i<=mx;i++)memoria[i]=0;
for( i=1;i<=mx;i++)
{
cout<<"inserisci il numero n."<<i<<":";
cin>>memoria[i];
}
while(i<=mx)
{
switch(memoria[i])
{
case 33:
i++;
a=memoria[i];
cout<<"eseguita istruzione load in a N."<<endl;
i++;
break;
case 34:
i++;
b=memoria[i];
cout<<"eseguita istruzione load in b N."<<endl;
i++;
break;
case 35:
i++;
c=memoria[i];
cout<<"eseguita istruzione load in c N."<<endl;
i++;
break;
case 36:
i++;
acc=a+b;
break;
case 37:
i++;
a=a+b;
break;
default:
cout<<"ciao"<<endl;
i++;
break;
}
}
return 0;
}
Ora , il problema è che quando inserisco tutti i numeri nella memoria il programma finisce e non restituisce nulla , neanche un cout . Come posso risolvere?