void FuncInstr::initFormat() { bool is_R = ( instr.asR.opcode == 0x0); uint8 ident = is_R ? instr.asR.funct : instr.asR.opcode; for ( size_t i = 0; i < isaTableSize; i++) { bool is_i_R = ( isaTable[i].format == FORMAT_R); if ( isaTable[i].opcode == ident && ( is_i_R == is_R)) { format = isaTable[i].format; operation = isaTable[i].operation; mem_size = isaTable[i].mem_size; isaNum = i; if ( FORMAT_R == format) assert( instr.asR.opcode == 0x0); return; } } initUnknown(); }
FuncInstr::FuncInstr( uint32 bytes, uint32 PC) : instr(bytes), PC(PC) { src1 = src2 = dst = REG_NUM_ZERO; complete = false; initFormat(); switch ( format) { case FORMAT_R: initR(); break; case FORMAT_I: initI(); break; case FORMAT_J: initJ(); break; case FORMAT_UNKNOWN: initUnknown(); break; } new_PC = PC + 4; }
int main () { char unknown [MAXLENGTH]; char letter; int num_of_wrong_guesses=0; char word[MAXLENGTH]; char words[][MAXLENGTH] = { "india", "pakistan", "nepal", "malaysia", "philippines", "australia", "iran", "ethiopia", "oman", "indonesia", "srilanka", "Bangladesh", "Singapoor" }; //choose and copy a word from array of words randomly randomize(); int n=random(10); strcpy(word,words[n]); // Initialize the secret word with the * character. initUnknown(word, unknown); // welcome the user cout << "\n\nWelcome to hangman...Guess a country Name"; cout << "\n\nEach letter is represented by a star."; cout << "\n\nYou have to type only one letter in one try"; cout << "\n\nYou have " << MAX_TRIES << " tries to try and guess the word."; cout << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; // Loop until the guesses are used up while (num_of_wrong_guesses < MAX_TRIES) { cout << "\n\n" << unknown; cout << "\n\nGuess a letter: "; cin >> letter; // Fill secret word with letter if the guess is correct, // otherwise increment the number of wrong guesses. if (letterFill(letter, word, unknown)==0) { cout << endl << "Whoops! That letter isn't in there!" << endl; num_of_wrong_guesses++; } else { cout << endl << "You found a letter! Isn't that exciting!" << endl; } // Tell user how many guesses has left. cout << "You have " << MAX_TRIES - num_of_wrong_guesses; cout << " guesses left." << endl; // Check if they guessed the word. if (strcmp(word, unknown) == 0) { cout << word << endl; cout << "Yeah! You got it!"; break; } } if(num_of_wrong_guesses == MAX_TRIES) { cout << "\nSorry, you lose...you've been hanged." << endl; cout << "The word was : " << word << endl; } getch(); return 0; }