60
напишите программу на c++, которая моделирует работу процессора. процессор имеет 4 регист-ра, они обозначаются r0, r1, r2 и r3. все команды состоят из трех десятичных цифр: код операции, номер первого регистра и номер второго регистра (или число от 0 до 9). коды команд и примеры их использования в таблице:
код операции описание пример псевдокод
1 запись константы 128 r2: =8
2 копирование значения 203 r3: =r0
3 сложение 331 r1: =r1+r3
4 вычитание 431 r1: =r1-r3
обратите внимание, что результат записывается во второй регистр. команды вводятся последовательно как символьные строки. после ввода каждой строки программа показывает значения всех регистров.
ответ:#include <bits/stdc++.h>
using namespace std;
int main() {
const int x = 3, y = 4;
int N[x], M[y] = { 0, 0, 0, 0 };
int r = 0;
do {
r = 0;
for (int q = 0; q < x; q++) {
N[q] = getchar() - 48;
if (N[q] == -38) q--;
if (N[q] == 0) r++;
}
switch (N[0]) {
case 1: M[N[1]] = N[2]; break;
case 2: M[N[2]] = M[N[1]]; break;
case 3: M[N[2]] = M[N[2]] + M[N[1]]; break;
case 4: M[N[2]] = M[N[2]] - M[N[1]]; break;
}
for (int e = 0; e < y; e++) {
cout << "R" << e << " = " << M[e] << "\n";
}
} while (r != x);
return 0;
}
Объяснение: