- •Лабораторная работа №1
- •Лабораторная работа №2
- •Лабораторная работа №4 Изучение команд «Сервис – Монитора»
- •Лабораторная работа №5 Переключение микропроцессора в защищенный режим
- •Методические указания Простая программа переключения режима мп
- •Изменения в коде программы
- •Лабораторная работа №6
- •Результаты и вывод
Лабораторная работа №1
Цель работы - получить навыки проектирования виртуальной ЭВМ заданной архитектуры, выполнения ее в виде программной модели и тестирования.
Программа работы - составить программу вычислений по заданной формуле и продемонстрировать ее работу.
Вариант 7:
Формуа: 2(a + bd - c)/(d + 2)
Листинг программы:
Prog.cod
00002000 060 константа "2"
00000136 061 косвен.адр.команды 136
00000134 062 - АДР.ЗАГРУЗКИ ПРОГР. и косвен.адр.команды 134
00000014 063 - константа сдвига ( 12 в 10 с\с )
00000120 064 - косвенный адрес команды 120
00000001 065 - константа "1"
00000126 066 - косвенный адрес команды 126
00000123 067 - косвенный адрес команды 123
00000000 070 - константа "0"
10000101 071 - псевдокоманда 134
00000134 072 - косвенный адрес команды 134
00000116 073 - косвенный адрес ПП ДЕЛ
00000111 074 - косвенный адрес ПП УМН
07000020 075 - АДР.ПУСКА ПРОГР. и команда ввода исх.данных
05021101 076 – R1:=(021)->B
05023102 077 – R2:=(023)->D
16474200 100 – R1:=R1*R2
01020101 101 – R1:=R1+(20)->A
02022101 102 - R1:=R1-(22)->C
05060102 103 – R2:=(060)->2.0
16474200 104 - R1:=R1*R2
05023102 105 – R2:=(023)->D
01060102 106 – R2:=R2+(060)->2.0
16473200 107 - R1:=R1/R2
16461000 108 - Безусл. переход на 136
03102101 111 - ПП УМН . R1,R2 := R1 * R2
10211102 112 - лог.сдв.вправо R2 на 11(9) разрядов
10115101 113 - ариф.сдв.влево R1 на 15(13) разрядов
11102101 114 - R1 := R1 лог.слож. R2
16200000 115 - возврат из ПП УМН
05071472 116 - ПП ДЕЛ. Восстан.исх.сост. команды 134
05070103 117 - R3( счетчик сдвигов L ) := 0
05101300 120 - АК := делимое
13102300 121 - АК := делимое - делитель
06467466 122 - усл.переход на 123 по >=0 и на 126 по <0
10101102 123 - ариф.сдв.влево R2 на 1 разряд
01065103 124 - L(R3) := L + 1
16464000 125 - Безусл. переход на 120 (продолж.сдвигов)
04102101 126 - R1 (R2) : = R1 / R2
05063300 127 - АК := 14(12) - нач.знач. константы сдвигов
02103300 130 - АК := 14 - L
05300103 131 - R3 := AK
10311103 132 - сдв.влево R3 на 11(9) разр.-на место АДР1
11103462 133 - занесение в ком.134 числа сдвигов
10000101 134 - ариф.сдв.вправо частного (R1)
16200000 135 - возврат из ПП ДЕЛ
17101000 136 - Печать результата - R1
00000000 137 - Останов программы
17777777 140 - Конец программного файла (prog.cod)
Data1.cod
00003000 20 – A (3 в 10с.с.)
00000400 21 - B (0.5 в 10с.с.)
10003000 22 - C (-3 в 10с.с.)
00010000 23 – D (8 в 10с.с.)
Out data.cod
00002000 (2 в 10с.с.)
Выполнил: |
|
|
Проверил: |
Гурчин И.И. |
|
Лабораторная работа №2
Программа работы: изменить ресурсы виртуальной ЭВМ и проверить с помощью программных тестов выполненные изменения.
Вариант 7:
ОП = 207; РП = 17;
СП = 29; КП = 19.
Изменение в листинге виртуальной машины:
……………………………………..
Wop=207; (* 317 8с/с = 0-316 8с/с *)
NRON=17; (* 21 8с/с = 0-20 8с/с *)
Wstek=29; (* 35 8с/с = 0-34 8с/с *)
Wkesh=19; (* 23 8с/с = 0-22 8с/с *)
………………………………………..
Программы проверки:
Оперативная память:
00000316 10 / косвенный адрес последней ячейки
00000317 11 / несуществующий адрес
05410101 12 / пересылка содержимого ячейки 316 в R1
05411101 13 / попытка прочитать ячейку 317 и переслать в R1 (Здесь получаем ошибку)
00000000 14 / конец программы
17777777
Стековая память:
05101200 / 21
05101200 / 22
05101200 / 23
05101200 / 24
05101200 / 25
05101200 / 26
05101200 / 27
05101200 / 30
05101200 / 31
05101200 / 32
05101200 / 33
05101200 / 34
05101200 / 35
05101200 / 36
05101200 / 37
05101200 / 40
05101200 / 41
05101200 / 42
05101200 / 43
05101200 / 44
05101200 / 45
05101200 / 46
05101200 / 47
05101200 / 50
05101200 / 51
05101200 / 52
05101200 / 53
05101200 / 54
05101200 / 55 Успешная 29-ая запись в стек
05101200 / 56 Переполнение стека, при записи 30-ой записи в стек
17777777
Кэш память:
05101101 / 21
05101101 / 22
05101101 / 23
05101101 / 24
05101101 / 25
05101101 / 26
05101101 / 27
05101101 / 30
05101101 / 31
05101101 / 32
05101101 / 33
05101101 / 34
05101101 / 35
05101101 / 36
05101101 / 37
05101101 / 40
05101101 / 41
05101101 / 42
05101101 / 43 сохраняет в Кэше текущую и первую операции– успешно
05101101 / 44 сохраняет в Кэше текущую операцию, но перезаписывается первая
00000000 / 45 конец программы
17777777
РОНы:
05101100 07 / R0 : = R1 Проверка 0-ого РОНа – успешно.
05101120 10 / R20 : = R1 проверка 20-ого РОНа– успешно.
05101121 11 / R21 : = R1 – Ошибка при пересылки в 21 РОН, т.к.его не сушествует
00000000 12 / конец программы
17777777
Выполнил: |
|
|
Проверил: |
Гурчин И.И. |
|