
ЛАБОРАТОРНАЯ РАБОТА №2
.docМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Московский государственный институт электроники и математики
(технический университет)
Кафедра информационных технологий и автоматизированных систем
ОТЧЕТ ПО ЛАБОРАТОРНОМУ ПРАКТИКУМУ ЗА 2 СЕМЕСТР
ЛАБОРАТОРНАЯ РАБОТА №2
по дисциплине
«ОПЕРАЦИОННЫЕ СИСТЕМЫ»
Группа АП-41
Выполнил студент
Евдокимова Е.А.
Руководитель
Витушкин П.И..
Москва 2007
-
Постановка задачи
При выполнении лабораторной работы необходимо разработать алгоритм и составить программу, имитирующую работу микропроцессора, (в дальнейшем будем называть МП), которая должна выполнять перечисленные ниже действия:
-
отображать содержимое регистров МП: 8 регистров общего назначения (РОН), регистра флагов(F), отображающего признаки результата (z-нулевой результат, m-отрицательный результат, c-признак переноса ), регистра-счетчика команд;
-
отображать содержимое ячеек оперативной памяти системы
-
программа должна распознавать различные форматы команд: двухадресные и одноадресные
-
программа должна определять состав машинных инструкций, которые надо реализовать
-
программа должна определять реализуемый режим адресации- интерпретация содержимого РОН : прямая адресация, косвенная, с автоувеличением, с автоуменьшением;
-
над содержимым РОН и ячеек оперативной памяти программа выполняет следующие арифметико-логические команды:
-
INC увеличение на 1;
-
DCR уменьшение на 1;
-
ADD арифметическое сложение;
-
SUB арифметическое вычитание;
-
AND логическое умножение;
-
OR логическое сложение;
-
CM инвертирование;
-
MOV пересылка.
-
Структура программы
Программа содержит функции :
-
void __fastcall showpdpClick(TObject *Sender);- при нажатии кнопки отображается код вводимой пользователем команды в формате PDP-11; при этом проверяется также правильность введения оперндов;
-
void __fastcall CheckBox1Click(TObject *Sender); -функция определения режима адресации для 1-ого операнда;
-
void __fastcall CheckBox2Click(TObject *Sender); - функция определения режима адресации для 2-ого операнда; в случае унарных операций не рассматривается;
-
void __fastcall enterClick(TObject *Sender);- ввод команды и размещение ее кода в оперативной памяти;
-
v
oid __fastcall RadioButton1Click(TObject *Sender);
-
void __fastcall RadioButton2Click(TObject *Sender);
-
v
Выбор арифметико-логической команды
oid __fastcall RadioButton3Click(TObject *Sender); -
void __fastcall RadioButton4Click(TObject *Sender);
-
void __fastcall RadioButton5Click(TObject *Sender);
-
void __fastcall RadioButton6Click(TObject *Sender);
-
void __fastcall RadioButton7Click(TObject *Sender);
-
void __fastcall RadioButton8Click(TObject *Sender);
-
void __fastcall RadioButton9Click(TObject *Sender);
-
void __fastcall Button1Click(TObject *Sender); -выполнение команды – выполнение необходимых действий над операндами в РОН или в ОП; занесение команды в список выполненных;
-
void __fastcall Button2Click(TObject *Sender); - отмена команды;
-
void __fastcall helpClick(TObject *Sender); - спарвка;
-
v
oid_incr(TObject *Sender);
-
void_decr(TObject *Sender);
-
v
Функции обработки арифметико-логических команд;
oid_add(TObject *Sender); -
void_sub(TObject *Sender);
-
void_cm(TObject *Sender);
-
void_and(TObject *Sender);
-
void_or(TObject *Sender);
-
v
Функции обрабатывают режимы адресации автоувеичения и автоуменьшения
oid_mov(TObject *Sender); -
v
oid_ainc(TObject *Sender);
-
void_adcr(TObject *Sender)