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?