Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 39
Текст из файла (страница 39)
ГЛАВА 9
Лабораторные работы
Цикл лабораторных работ рассчитан на выполнение студентами в рамках курса "Архитектура ЭВМ" и других, подобных по содержанию.
Цикл включает работы различного уровня. Лабораторные работы № 1—4 ориентированны на первичное знакомство с архитектурой процессора, системой команд, способами адресации и основными приемами программирования на машинно-ориентированном языке. Лабораторная работа № 5 иллюстрирует реализацию командного цикла процессора на уровне микроопераций. Лабораторная работа № 6 посвящена способам организации связи процессора с внешними устройствами, а в лабораторных работах № 7 и 8 рассматривается организация кэш-памяти и эффективность различных алгоритмов замещения.
Все работы выполняются на программной модели учебной ЭВМ и взаимодействующих с ней в программных моделях ВУ и кэш-памяти, описанных в
главе 8.
Описание работы включает постановку задачи, пример выполнения, набор вариантов индивидуальных заданий, порядок выполнения работы, требования к содержанию отчета и контрольные вопросы.
9.1. Лабораторная работа № 1. Архитектура ЭВМ и система команд
9.1.1. Общие положения
Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭИМ, t ществляется последовательно по командам в порядке возрастания ади команд или в порядке, определяемом командами передачи управления. ,
Для того чтобы получить результат выполнения программы, пользоЦИ должен:
□ ввести программу в память ЭВМ;
□ определить, если это необходимо, содержимое ячеек ОЗУ и РОИ, оЩ жащих исходные данные, а также регистров IR и BR;
□ установить в PC стартовый адрес программы; П перевести модель в режим Работа.
Каждое из этих действий выполняется посредством интерфейса модели, | санного в главе 8. Ввод программы может осуществляться как в маши кодах непосредственно в память модели, так и в мнемокодах в окно программы с последующим ассемблированием.
Цель настоящей лабораторной работы — знакомство с интерфейсом ЭВМ, методами ввода и отладки программы, действиями основных команд и способов адресации. Для этого необходимо ввести в память выполнить в режиме Шаг некоторую последовательность команд (о ленную вариантом задания) и зафиксировать все изменения на уронi к граммно-доступных объектов ЭВМ, происходящие при выполнении команд.
Команды в память учебной ЭВМ вводятся в виде шестиразрядных д ных чисел (см. форматы команд на рис. 8.3, коды команд и способов ции в табл. 8.2—8.4).
В настоящей лабораторной работе будем программировать ЭВМ в маш кодах.
9.1.2. Пример 1
Дана последовательность мнемокодов, которую необходимо преобразо машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и заф ровать изменение состояний программно-доступных объектов ЭВМ (табл.9.1)
Введем полученные коды последовательно в ячейки ОЗУ, начиная с адреса 000. Выполняя команды в режиме Шаг, будем фиксировать изменения программно-доступных объектов (в данном случае это Асе, PC и ячейки ОЗУ 020 и 030) в табл. 9.2.
9.1.3. Задание 1
1. Ознакомиться с архитектурой ЭВМ (см. часть I).
2. Записать в ОЗУ "программу", состоящую из пяти команд— варианты задания выбрать из табл. 9.3. Команды разместить в последовательных ячейках памяти.
3. При необходимости установить начальное значение в устройство ввода IR.
4. Определить те программно-доступные объекты ЭВМ, которые будут изменяться при выполнении этих команд.
5. Выполнить в режиме Шаг введенную последовательность команд, фиксируя изменения значений объектов, определенных в п. 4, в таблице (см. форму табл. 9.2).
6. Если в программе образуется цикл, необходимо просмотреть не более двух повторений каждой команды, входящей в тело цикла.
9.1.4. Содержание отчета
1. Формулировка варианта задания.
2. Машинные коды команд, соответствующих варианту задания.
3. Результаты выполнения последовательности команд в форме табл. 9.2,
9.1.5. Контрольные вопросы
1. Из каких основных частей состоит ЭВМ и какие из них предали i в модели?
2. Что такое система команд ЭВМ?
3. Какие классы команд представлены в модели?
4. Какие действия выполняют команды передачи управления?
5. Какие способы адресации использованы в модели ЭВМ? В чем отлИ| между ними?
6. Какие ограничения накладываются на способ представления длины) модели ЭВМ?
7. Какие режимы работы предусмотрены в модели и в чем отличив ними?"
8. Как записать программу в машинных кодах в память модели ЭВМ?
9. Как просмотреть содержимое регистров процессора и изменить со* мое некоторых регистров?
10. Как просмотреть и, при необходимости, отредактировать соде" ячейки памяти?
11. Как запустить выполнение программы в режиме приостановки работы после выполнения каждой команды?
12. Какие способы адресации операндов применяются в командах ЭВМ?
13. Какие команды относятся к классу передачи управления?
9.2. Лабораторная работа № 2. Программирование разветвляющегося процесса
Для реализации алгоритмов, пути в которых зависят от исходных данны> используют команды условной передачи управления.
9.2.1. Пример 2
В качестве примера (несколько упрощенного по сравнению с заданиями л бораторной работы № 2) рассмотрим программу вычисления функции
причем х вводится с устройства ввода IR, результат у выводится на OR. Граф-схема алгоритма решения задачи показана на рис. 9.1.
В данной лабораторной работе используются двухсловные команды с непосредственной адресацией, позволяющие оперировать отрицательными числами и числами по модулю, превышающие 999, в качестве непосредственного операнда.
Оценив размер программы примерно в 20—25 команд, отведем для области данных ячейки ОЗУ, начиная с адреса 030. Составленная программа с комментариями представлена в виде табл. 9.4.
9.2.2. Задание 2
1. Разработать программу вычисления и вывода значения функции:
для вводимого из IR значения аргумента х. Функции и допустимые пределы изменения аргумента приведены в табл. 9.5, варианты заданий — в табл. 9.6.
2. Исходя из допустимых пределов изменения аргумента функций (табл. 9.5) и значения параметра а для своего варианта задания (табл. 9.6) выделить на числовой оси Ох области, в которых функция у вычисляется по представленной в п. 1 формуле, и недопустимые значения аргумента. На недопустимых значениях аргумента программа должна выдавать на OR максимальное отрицательное число: 199 999.
3. Ввести текст программы в окно Текст программы, при этом возможен набор и редактирование текста непосредственно в окне Текст программы или загрузка текста из файла, подготовленного в другом редакторе.
4. Ассемблировать текст программы, при необходимости исправить синтаксические ошибки.
5. Отладить программу. Для этого:
а) записать в IR значение аргумента х > а (в области допустимых значений);
б) записать в PC стартовый адрес программы;
в) проверить правильность выполнения программы (т. е. правильность результата и адреса останова) в автоматическом режиме. В случае наличия ошибки выполнить пп. 5, г и 5, д; иначе перейти к п. 5, е;
г) записать в PC стартовый адрес программы;
д) наблюдая выполнение программы в режиме Шаг, найти команду, являющуюся причиной ошибки; исправить ее; выполнить пп. 5, a — 5, в;
е) записать в IR значение аргумента х < а (в области допустимых значений); выполнить пп. 5, б и 5, в;
ж) записать в IR недопустимое значение аргумента х и выполнить пп. 5, б
и 5, е.
6. Для выбранного допустимого значения аргумента х наблюдать выполнение отлаженной программы в режиме Шаг и записать в форме табл. 9.2 содержимое регистров ЭВМ перед выполнением каждой команды.
9.2.3. Содержание отчета
Отчет о лабораторной работе должен содержать следующие разделы:
1. Формулировка варианта задания.
2. Граф-схема алгоритма решения задачи.
3. Размещение данных в ОЗУ.
4. Программа в форме табл. 9.4.
5. Последовательность состояний регистров ЭВМ при выполнении программы в режиме Шаг для одного значения аргумента.
6. Результаты выполнения программы для нескольких значений аргумента, выбранных самостоятельно.
9.2.4. Контрольные вопросы
1. Как работает механизм косвенной адресации?
2. Какая ячейка будет адресована в команде с косвенной адресацией через ячейку 043, если содержимое этой ячейки равно 102 347?
3. Как работают команды передачи управления?
4. Что входит в понятие "отладка программы"?
5. Какие способы отладки программы можно реализовать в модели?
9.3. Лабораторная работа № 3. Программирование цикла с переадресацией
При решении задач, связанных с обработкой массивов, возникает необходимость изменения исполнительного адреса при повторном выполнении некоторых команд. Эта задача может быть решена путем использования косвенной адресации.
9.3.1. ПримерЗ
Разработать программу вычисления суммы элементов массива чисел С{ С2, С„. Исходными данными в этой задаче являются: п — количеств суммируемых чисел и С,, С2,..., С„ — массив суммируемых чисел. Заметем, что должно выполняться условие п > 1, т. к. алгоритм предусматривает по крайней мере, одно суммирование. Кроме того, предполагается, что суммируемые числа записаны в ОЗУ подряд, т. е. в ячейки памяти с последовательными адресами. Результатом является сумма S.
Составим программу для вычисления суммы со следующими конкретными параметрами: число элементов массива— 10, элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042,049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: Л, — адрес числа С,, i е {l, 2,10}; ОЗУ(Л,) — число по адресу A,, S — текущая сумма; к — счетчик цикла, определяющий число повторений тела цикла.
Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 000, примерная оценка объема программы — 20 команд; промежуточные переменные: At — в ячейке ОЗУ с адресом 030, к — по адресу 031, S — по адресу 032. ГСА программы показана на рис. 9.2, текст программы с комментариями приведен в табл. 9.7.