Professional Documents
Culture Documents
Звіт 2 Фісуненко К25
Звіт 2 Фісуненко К25
ЛАБОРАТОРНА РОБОТА №2
з теми
"Імітаційна модель процесора"
Виконав
студент 1-ого курсу
групи К-15
спеціальності "Інформатика"
Савчук Олександр Юрійович
Київ – 2023
Постановка задачі
Необхідно розробити програмну модель процесора та реалізувати його
імітаційну (тобто комп’ютерну) модель.
Мій варіант:
1) Стекова адресність
2) 18 бітів на регістр
3) Арифметичний зсув вправо або вліво
#include <bitset>
#include <string>
return binary_R1;
}
int main() {
int value1, value2, value3, value4, value, value11, value22, value33, value44;
string command, r;
int tc = 1;
int pc = 0;
int ps;
int i = 0;
cout << "Commands" << endl << "1: Load" << endl << "2: MoveLeft" << endl << "3:
MoveRight" << endl << "4: Exit" << endl;
while(1)
if(r == "R1"){
value1 = value;
if(r == "R2"){
value2 = value;
if(r == "R3"){
value3 = value;
if(r == "R4"){
value4 = value;
value11 = value1;
value22 = value2;
value33 = value3;
value44 = value4;
i++;
if(command != command1)
{
pc++;
tc = 1;
return 0;
if(r == "R1")
cout << "R1" << ": " << MoveLeft(value11, value1) << endl;
cout << "R2" << ": " << load(value22) << endl;
cout << "R3" << ": " << load(value33) << endl;
cout << "R4" << ": " << load(value44) << endl;
if(r == "R2")
cout << "R1" << ": " << MoveLeft(value11, value1) << endl;
cout << "R2" << ": " << MoveLeft(value22, value2) << endl;
cout << "R3" << ": " << load(value33) << endl;
cout << "R4" << ": " << load(value44) << endl;
if(r == "R3")
{
cout << "R1" << ": " << MoveLeft(value11, value1) << endl;
cout << "R2" << ": " << MoveLeft(value22, value2) << endl;
cout << "R3" << ": " << MoveLeft(value33, value3) << endl;
cout << "R4" << ": " << load(value44) << endl;
if(r == "R4")
cout << "R1" << ": " << MoveLeft(value11, value1) << endl;
cout << "R2" << ": " << MoveLeft(value22, value2) << endl;
cout << "R3" << ": " << MoveLeft(value33, value3) << endl;
cout << "R4" << ": " << MoveLeft(value44, value4) << endl;
if(value <= 0)
else
tc++;
if(r == "R1")
cout << "R1" << ": " << MoveRight(value11, value1) << endl;
cout << "R2" << ": " << load(value2) << endl;
cout << "R3" << ": " << load(value3) << endl;
cout << "R4" << ": " << load(value4) << endl;
if(r == "R2")
cout << "R1" << ": " << MoveRight(value11, value1) << endl;
cout << "R2" << ": " << MoveRight(value22, value2) << endl;
cout << "R3" << ": " << load(value3) << endl;
cout << "R4" << ": " << load(value4) << endl;
if(r == "R3")
cout << "R1" << ": " << MoveRight(value11, value1) << endl;
cout << "R2" << ": " << MoveRight(value22, value2) << endl;
cout << "R3" << ": " << MoveRight(value33, value3) << endl;
cout << "R4" << ": " << load(value4) << endl;
if(r == "R4")
cout << "R1" << ": " << MoveRight(value11, value1) << endl;
cout << "R2" << ": " << MoveRight(value22, value2) << endl;
cout << "R3" << ": " << MoveRight(value33, value3) << endl;
cout << "R4" << ": " << MoveRight(value44, value4) << endl;
if(value <= 0)
else
tc++;
if(r == "R1")
cout << "R1" << ": " << load(value1) << endl;
if(r == "R2")
cout << "R1" << ": " << load(value1) << endl;
cout << "R2" << ": " << load(value2) << endl;
if(r == "R3")
cout << "R1" << ": " << load(value1) << endl;
cout << "R2" << ": " << load(value2) << endl;
cout << "R3" << ": " << load(value3) << endl;
if(r == "R4")
cout << "R1" << ": " << load(value1) << endl;
cout << "R2" << ": " << load(value2) << endl;
cout << "R3" << ": " << load(value3) << endl;
cout << "R4" << ": " << load(value4) << endl;
if(value <= 0)
else
tc++;
}
}
}