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.
Ora , il problema è che quando inserisco tutti i numeri nella memoria il programma finisce e non restituisce nulla , neanche un cout . Come posso risolvere?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; }

Rispondi quotando