- •«Кузбасский государственный технический университет
- •1. Описание цикла лабораторных работ
- •2. Описание архитектуры учебной эвм
- •2.1. Программные модели для изучения архитектуры эвм
- •2.2 Структура учебной эвм
- •2.3. Представление данных в модели
- •2.4. Система команд учебной эвм
- •2.5. Состояния и режимы работы учебной эвм
- •2.6. Интерфейс пользователя
- •2.7. Микрокомандный уровень учебной эвм
- •2.8. Внешние устройства
- •2.8.1 Общая характеристика моделей внешних устройств
- •2.8.2 Контроллер клавиатуры
- •2.8.3. Дисплей
- •2.8.4. Блок таймеров
- •2.8.5. Тоногенератор
- •2.8.6. Блок индикаторов
- •2.9. Подсистема прерываний
- •2.9. Программная модель кэш-памяти
- •2.10. Программная модель alu-1
- •2.10.1. Общие сведения о программной модели alu-1
- •2.10.2. Операционный автомат
- •2.10.3. Регистры операционного автомата
- •2.10.4. Арифметико-логический блок
- •2.10.5. Блок сдвигателя
- •2.10.6. Счетчик
- •2.10.7. Микрооперации и логические условия
- •2.10.8. Управляющий автомат с программируемой логикой (уапл)
- •3. Лабораторные работы
- •3.1. Лабораторная работа № 1. Основы работы с программной моделью учебной эвм
- •3.1.1. Цель работы
- •3.1.2. Общие положения
- •3.1.3. Последовательность выполнения работы
- •3.1.4. Варианты заданий
- •3.1.5. Пример выполнения работы
- •3.1.6. Содержание отчета
- •3.2.3. Последовательность выполнения работы
- •3.2.4. Варианты заданий
- •3.2.5. Пример выполнения работы
- •3.2.6. Содержание отчета
- •3.3.3. Последовательность выполнения работы
- •3.3.4. Варианты заданий
- •3.3.5. Пример выполнения работы
- •3.3.6. Содержание отчета
- •3.3.7. Задания повышенной сложности
- •3.3.8. Контрольные вопросы
- •3.4. Лабораторная работа №4. Подпрограммы и стек
- •3.4.1. Цель работы
- •3.4.2. Общие положения
- •3.4.3. Последовательность выполнения работы
- •3.4.4. Варианты заданий
- •3.4.5. Пример выполнения работы
- •3.4.6. Содержание отчета
- •3.5.5 Пример выполнения работы
- •3.5.4 Варианты заданий
- •3.5.5 Пример выполнения работы
- •3.5.6. Содержание отчета
- •3.5.7. Задания повышенной сложности
- •3.5.8. Контрольные вопросы
- •3.6. Лабораторная работа №6. Программирование внешних устройств
- •3.6.1. Цель работы
- •3.6.2. Общие положения
- •3.6.3. Последовательность выполнения работы
- •3.6.4. Содержание отчета
- •3.6.5. Варианты заданий
- •3.6.6. Пример выполнения работы
- •3.6.7. Задания повышенной сложности
- •3.6.8. Контрольные вопросы
- •3.7. Лабораторная работа №7. Принципы работы кэш-памяти
- •3.7.1. Цель работы
- •3.7.2. Общие положения
- •3.7.3. Последовательность выполнения работы
- •3.7.4. Содержание отчета
- •3.7.5. Варианты заданий
- •3.7.6. Контрольные вопросы
- •Рекомендуемая литература
- •Лабораторный практикум по архитектуре эвм и систем
- •230201 «Информационные системы и технологии»
3.3.6. Содержание отчета
Отчет по лабораторной работе должен содержать следующие разделы:
1) формулировка варианта задания;
2) граф-схема алгоритма решения задачи;
3) распределение памяти (размещение в ОЗУ переменных, программы и необходимых констант)
4) программа;
5) значения исходных данных и результата выполнения программы.
3.3.7. Задания повышенной сложности
Приведенные задания являются необязательными и выполняются по желанию:
1). Найти количество чисел в массиве кратных заданному числу (вводится через IR) и автоматически удалить эти числа из массива.
2). Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами.
3.3.8. Контрольные вопросы
1. В чем заключается механизм косвенной адресации?
2. Каковы достоинства и недостатки косвенной адресации?
3. Каким образом, используя систему команд модели учебной ЭВМ, можно определить четность (нечетность) числа?
4. Посредством каких операций в теле цикла осуществляется последовательный переход от одного элемента массива к другому?
5. Как поведет себя программа, приведенная в табл. 3.8, если в ней будет отсутствовать команда WR 31 по адресу 014?
6. Как поведет себя программа, приведенная в табл. 3.8, если метка М1 будет поставлена по адресу 005? 007?
3.4. Лабораторная работа №4. Подпрограммы и стек
3.4.1. Цель работы
Цель работы – изучение организации программ с использованием подпрограмм и стека на уровне машинных команд
3.4.2. Общие положения
В программировании часто встречаются ситуации, когда одинаковые действия необходимо выполнять многократно в разных частях программы. При этом с целью экономии памяти не следует многократно повторять одну и ту же последовательность команд – достаточно один раз написать так называемую подпрограмму (в терминах языков высокого уровня – процедуру) и обеспечить правильный вызов этой подпрограммы и возврат в точку вызова по завершении подпрограммы. По отношению к подпрограмме остальную часть программы принято называть основной программой.
Для вызова подпрограммы необходимо указать ее начальный адрес в памяти и передать (если необходимо) параметры – те исходные данные, с которыми будут выполняться предусмотренные в подпрограмме действия. Адрес подпрограммы указывается в команде вызова CALL, а параметры могут передаваться через определенные ячейки памяти, регистры или стек.
Возврат в точку вызова обеспечивается сохранением адреса текущей команды (содержимого регистра PC) при вызове и при использовании в конце подпрограммы команды возврата RET, которая возвращает сохраненное значение адреса возврата в PC.
Для реализации механизма вложенных подпрограмм (возможность вызова подпрограммы из другой подпрограммы и т. д.) адреса возврата целесообразно сохранять в стеке.
Стеком называется особая область оперативной памяти, которая работает по принципу «последним вошел, первым вышел» (LIFO – Last In First Out). Обычно под стек отводится область оперативной памяти с наибольшими адресами, а стек расширяется в сторону уменьшения адресов.
Рис. 3.4. Организация стека: а) – принцип работы стека; б) – стековая адресация
В стеке присутствует выделенная ячейка TOS (Top of Stack), называемая вершиной стека, которая служит для записи и чтения информации. Адрес вершины стека хранится в специальном регистре процессора – указателе стека SP.
При занесении в стек очередного слова производится уменьшение на единицу содержимого SP, которое затем используется как адрес ячейки, куда производится запись. При считывании слова из стека в качестве адреса этого слова берется текущее содержимое SP, а после того как слово извлечено содержимое SP увеличивается на единицу.
В стек можно поместить содержимое регистра общего назначения по команде PUSH или извлечь содержимое верхушки в регистр общего назначения по команде POP. Кроме того, по команде вызова подпрограммы CALL значение программного счетчика PC (адрес следующей команды) помещается в верхушку стека, а по команде RET содержимое верхушки стека извлекается в PC. При каждом обращении в стек регистр SP автоматически модифицируется.