Лабораторные работы по дисциплине "Архитектура компьютерных систем"
Формат - Microsoft Word, ASM (Жмакин)
1. Дана последовательность мнемокодов, которые необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ.
Для того, чтобы ввести команды в ОЗУ, необходимо:
- ввести последовательно команды в окно Текст программы (рисунок 2.3);
- запустить процедуру компиляции (рисунок 2.4).
Рисунок 2.3 – Текстовый редактор
Рисунок 2.4 – Компиляция
При этом, дизассемблированные команды запишутся в ячейки ОЗУ, начиная с адреса 000, и автоматически появятся в окне Программа (рисунок 2.5).
Рисунок 2.5 – Окна Память и Программа после произведенной компиляции
Также возможна работа непосредственно с кодом команд. Для этого необходимо: внести последовательно в ОЗУ, начиная с адреса 000, код команд; при переходе на следующую ячейку, команда автоматически ассемблируется и отобразится в окне Текст программы (рисунок 2.6). Например: код операции
RD – 21, нам необходимо непосредственно адресовать операнд (20). Код непосредственной операции – 1. Заносим код (211020) команды RD #20 в ячейку памяти, начиная с адреса 000 и нажимаем кнопку Go в окне Память.
Рисунок 2.6 – Код команд в ОЗУ
2. В соответствии с вариантом задания (таблица 2.3), необходимо установить начальное значение в устройство ввода IR (рисунок 2.7).
Рисунок 2.7 – Установленное значение в IR
3. Выполнить в режиме Шаг последовательность команд (рисунок 2.8).
Рисунок 2.8 – Выполнение команд в режиме Шаг
4. Оформить последовательность мнемокодов и соответствующие машинные коды (таблица 2.1).
Таблица 2.1 – Команды и коды команд
Адрес | Мнемокод | Код | Примечание |
000 | RD #20 | 211020 | АСС ← 20 |
001 | WR 30 | 220030 | М(30) ← ACC |
002 | ADD #5 | 231005 | АСС ← АСС + 5 |
003 | WR @30 | 222030 | АСС ← М(М(30)) |
004 | JNZ 002 | 120002 | Переход к команде по адресу 002, если ≠ 0 |
5. Выполняя команды в режиме Шаг, зафиксировать изменения программно-доступных объектов (в данном случае Асс, PC и ячейки ОЗУ
М (30), М (М(30)) (таблица 2.2).
Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
6. В соответствии с вариантом задания (таблица 2.4), записать состояние учебной модели ЭВМ на уровне микрокоманд (таблица 2.3).
Таблица 2.2 – Содержимое регистров
PC | Асc | М(30) | М(М(30)) |
000 | 000000 | 000000 | 000000 |
001 | 000020 | ||
002 | 000020 | ||
003 | 000025 | ||
004 | 000025 | ||
002 | |||
003 | 000030 | ||
004 | 000030 |
Таблица 2.3 – Состояние модели в режиме моделирования на уровне микрокоманд
Адрес (РС) | Мнемокод | Микрокоманда | ОЗУ | CR | АУ | Ячейки | |||||
MAR | MDR | COP | TA | ADR | Acc | DR | 020 | 030 | |||
000 | RD #20 | MAR := PC | 000 | 000000 | 00 | 0 | 000 | 000000 | 000000 | 000000 | 000000 |
MRd | 000 | ||||||||||
CR := MDR | 211020 | ||||||||||
PC := PC+1 | 21 | 1 | 020 | ||||||||
001 | Acc := ADR | ||||||||||
WR 30 | MAR := PC | 000020 | |||||||||
MRd | 001 | ||||||||||
CR := MDR | 220030 | ||||||||||
PC := PC+1 | 22 | 0 | 030 | ||||||||
002 | MAR := ADR | ||||||||||
MDR:=Acc | 030 | ||||||||||
MWr | 000020 | ||||||||||
ADD #5 | MAR := PC | 000020 | |||||||||
MRd | 002 | ||||||||||
CR := MDR | 231005 | ||||||||||
PC := PC+1 | 23 | 1 | 005 | ||||||||
003 | DR: = ADR | ||||||||||
Fау:= ALI | 000005 | ||||||||||
WR @30 | MAR := PC | 000025 |
7. Сохранить программу, для чего в окне Текст программы выбрать меню Файл → Сохранить как. В открывшемся окне, выбрать расположение файла на диске и задать имя файла. Тип файла указать .asm и нажать кнопку Сохранить.
Для каждого варианта индивидуального задания, последовательность мнемокодов приведена в таблице 2.4.
1. Записать в ОЗУ программу, состоящую из пяти команд. Команды разместить в последовательных ячейках памяти.
2. При необходимости установить начальное значение в устройство ввода IR.
3. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
4. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов.
5. Если в программе образуется цикл, необходимо просмотрен, не более двух повторений каждой команды, входящей в тело цикла.
Таблица 2.4 – Список последовательности команд по вариантам
№ | IR | Команда 1 | Команда 2 | Команда 3 | Команда 4 | Команда 5 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1 | 000007 | IN | MUL #2 | WR 10 | WR @10 | JNS 001 |
Разработать программу вычисления и вывода значения функции:
Fi (х), при х ≥ а
Fj (х), при х < а
для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в таблице 3.2, варианты задании в таблице 3.3.
1. Исходя из допустимых пределов изменения аргумента функций и значения параметра а для своего варианта задания (таблица 3.3) выделим, на числовой оси 0х области, в которых функция у вычисляется по представленной в п.1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на ОR максимальное отрицательное число: 199 999 (рисунок 3.2).
Рисунок 3.2 – Вывод в регистр вывода максимального отрицательного числа
2. Ввести текст программы в окно «Текст программы», при этом возможен набор и редактирование текста непосредственно в окне «Текст программы» или загрузка текста из файла, подготовленного в другом редакторе.
3. Ассемблировать текст программы, при необходимости, исправить синтаксические ошибки.
4. Отладить программу:
а) записать в IR значение аргумента х > а (в области допустимых значений);
б) записать в PC стартовый адрес программы;
в) проверить правильность выполнения программы (т.е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить п. 4, г и п. 4, д; иначе перейти к п. 4, е;
г) записать в РС стартовый адрес программы;
д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить п.4, a – 4, в;
е) записать в IR значение аргумента х < а (в области допустимых значений); выполнить п. 4, б и п. 4, в;
ж) записать в IR недопустимое значение аргумента х и выполнить п.4, б и п. 4, в.
5. Для выбранного допустимого значения аргумента JC наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме таблицы 2.2 содержимое регистров ЭВМ перед выполнением каждой команды.
Таблица 3.2 – Функции
Номер варианта | i | j | a |
13 | 7 | 6 | 25 |
1. Написать программу определения заданной характеристики последовательности чисел С1 , С2, ..., Сn. (варианты заданий приведены в таблице 4.2).
2. Записать программу в мнемокодах, введя ее в поле окна Текст программы.
3. Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов.
4. Загрузить в ОЗУ необходимые константы и исходные данные.
5. Отладить программу.
Таблица 4.2 – Варианты задания
Номер варианта | Характеристика последовательности чисел С1, С2 ,..., Сn |
13 | Разность сумм четных и нечетных элементов массивов |
Комментариев нет:
Отправить комментарий