Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <inttypes.h>
- #include <ctime>
- #include <bitset>
- #include <string>
- #include <stdio.h>
- #define _CRT_SECURE_NO_WARNINGS
- using namespace std;
- int main()
- {
- srand(time(NULL));
- setlocale(LC_ALL, "ru");
- uint8_t num1 = rand() % (32 - 6) + 6;
- uint8_t num2;
- uint8_t expectedResult = 0;
- int operation = rand() % (7) + 1;
- cout << operation;
- switch (operation)
- {
- case 1:
- {num2 = rand() % (32 - 6) + 6;
- cout << "Выполните операцию AND";
- break;}
- case 2:
- {num2 =- rand() % (32 - 6) + 6;
- cout << "Выполните операцию OR";
- break; }
- case 3:
- {num2 = rand() % (32 - 6) + 6;
- cout << "Выполните операцию XOR";
- break; }
- case 4:
- {num2 = rand() % (5 - 2) + 2;
- cout << "Выполните операцию LEFT";
- break; }
- case 5:
- {num2 = rand() % (5 - 2) + 2;
- cout << "Выполните операцию RIGHT";
- break; }
- case 6:
- {num2 = rand() % (5 - 2) + 2;
- cout << "Выполните операцию LEFT_CYCLE";
- break; }
- case 7:
- {num2 = rand() % (5 - 2) + 2;
- cout << "Выполните операцию RIGHT_CYCLE";
- break; }
- default:
- {num2 = 0;
- break; }
- }
- cout << endl;
- cout << "\nПервый аргумент: " << static_cast<int>(num1) << endl;
- cout << "(" << std::bitset<8>(num1) << ")" << endl;
- cout << "\nВторой аргумент: " << static_cast<int>(num2) << endl;
- cout << "(" << std::bitset<8>(num2) << ")" << endl;
- _asm
- {
- xor edx,edx
- xor ebx, ebx
- xor cl,cl
- mov dl, num1
- mov bl, num2
- }
- switch (operation)
- {
- case 1:
- {_asm
- {and dl, bl
- mov expectedResult, dl}
- break; }
- case 2:
- {_asm
- {or dl, bl
- mov expectedResult, dl}
- break; }
- case 3:
- {_asm
- {xor dl, bl
- mov expectedResult, dl}
- break; }
- case 4:
- {_asm
- {
- mov cl, bl
- shl dl, cl
- mov expectedResult, dl
- }
- break; }
- case 5:
- {_asm
- {
- mov cl, bl
- shr dl, cl
- mov expectedResult, dl
- }
- break; }
- case 6:
- {_asm
- {
- mov cl, bl
- rol dl, cl
- mov expectedResult, dl
- }
- break; }
- case 7:
- {_asm
- {
- mov cl, bl
- ror dl, cl
- mov expectedResult, dl
- }
- break; }
- default:
- break;
- }
- string res = bitset<8>(expectedResult).to_string();
- string answer;
- cout << "\nВведите ответ в двоичной системе счисления: ";
- cin >> answer;
- if (answer == res)
- {
- cout << "\nОтвет верный!\n";
- }
- else
- {
- cout << "\nОтвет не верный!\nВерный ответ: ";
- cout << (int)expectedResult << " (" << bitset<8>(expectedResult).to_string() << ")";
- cout << endl;
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement