- •«Кузбасский государственный технический университет
- •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.4.3. Последовательность выполнения работы
Данная лабораторная работа предполагает выполнение следующих этапов:
1) Написать программу определения заданной характеристики последовательности чисел С1, С2, … , Сn.
2) Записать программу в мнемокодах, введя ее в поле окна Текст программы.
3) Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов.
4) Загрузить в ОЗУ необходимые константы и исходные данные.
5) Отладить программу.
6) Оформить и защитить отчет по лабораторной работе.
3.4.4. Варианты заданий
Составить и отладить программу учебной ЭВМ для решения следующей задачи.
Три массива в памяти заданы начальными адресами и длинами. Вычислить и вывести на устройство вывода среднее арифметическое параметров этих массивов. Варианты заданий приведены в таблице 3.9.
Таблица 3.9
Варианты задания
Номер варианта |
Характеристика последовательности чисел С1, С2, … , Сn |
1 |
Максимальное отрицательное число |
2 |
Количество чисел, равных введенному в IR |
3 |
Минимальное положительное число |
4 |
Количество нечетных чисел |
5 |
Разность сумм четных и нечетных элементов массивов |
6 |
Количество чисел, меньших введенного в IR |
7 |
Количество четных чисел |
8 |
Отношение сумм четных и нечетных элементов массивов |
9 |
Номер последнего отрицательного числа |
10 |
Произведение всех нечетных чисел |
11 |
Отношение сумм отрицательных и положительных чисел |
12 |
Номер последнего положительного числа |
13 |
Номер минимального числа |
14 |
Номер максимального числа |
В процессе организации циклов необходимо применять регистры общего назначения (РОН) для размещения наиболее часто используемых в программе данных (промежуточных результатов, счетчиков циклов, косвенных адресов и т. п.). В реальных ЭВМ доступ в РОН занимает значительно меньшее время, чем в ОЗУ; кроме того, команды обращения с регистрами короче команд обращения к памяти.
Кроме обычных способов адресации (прямой и косвенной) рекомендуется использовать два новых – постинкрементная и предекрементная (см. табл. 2.2). Кроме того, к регистровым командам относится команда организации цикла JRNZ R…,L. По этой команде содержимое указанного в команде регистра R… уменьшается на 1, и если в результате вычитания содержимое регистра R… не равно 0, то управление передается на метку L.
3.4.5. Пример выполнения работы
Даны три массива чисел. Требуется вычислить среднее арифметическое их максимальных элементов. Каждый массив задается двумя параметрами: адресом первого элемента и длиной. Пусть первый массив начинается с адреса 080 и имеет длину 8 элементов, второй 090 и 6, третий 100 и 7.
Поскольку в программе трижды необходимо выполнить поиск максимального элемента массива, то следует написать соответствующую подпрограмму. Параметры в подпрограмму будут передаваться через регистры общего назначения: R1 – начальный адрес массива, R2 – длина массива. Эти регистры используются подпрограммой в качестве регистра текущего адреса и счетчика цикла соответственно. Для хранения максимальных элементов массивов служат регистры R5, R6 и R7. Кроме того, R3 используется для хранения текущего максимума, а R4 – для временного хранения текущего элемента.
Программа будет состоять из основной части и подпрограммы. Основная программа задает параметры подпрограмме, вызывает ее и сохраняет результаты работы подпрограммы в рабочих ячейках. Затем осуществляет вычисление среднего арифметического и выводит результат на устройство вывода. Подпрограмма возвращает результат через аккумулятор.
Текст основной программы и подпрограммы приведен в табл. 3.10. Модификация текущего адреса в подпрограмме организована средствами индексной адресации с постинкрементом.
Таблица 3.10
Текст основной программы и подпрограммы с комментариями
Адрес |
Команда |
Примечание |
Основная программа | ||
000 |
RD #80 |
Загрузка параметров первого массива |
001 |
WR R1 | |
002 |
RD #8 | |
003 |
WR R2 | |
004 |
CALL M |
Вызов подпрограммы |
005 |
WR R5 |
Сохранение результата |
006 |
RD #90 |
Загрузка параметров второго массива |
007 |
WR R1 | |
008 |
RD #6 | |
009 |
WR R2 | |
010 |
CALL M |
Вызов подпрограммы |
011 |
WR R6 |
Сохранение результата |
012 |
RD #100 |
Загрузка параметров третьего массива |
013 |
WR R1 | |
014 |
RD #7 | |
015 |
WR R2 | |
016 |
CALL M |
Вызов подпрограммы |
017 |
WR R7 |
Сохранение результата |
018 |
ADD R5 |
Вычисление среднего арифметического |
019 |
ADD R6 | |
020 |
DIV #3 | |
021 |
OUT |
Вывод результата |
022 |
HLT |
Стоп |
Подпрограмма M | ||
023 |
M: RD @R1 |
Загрузка первого элемента в R3 |
024 |
WR R3 | |
025 |
L2: RD @R1+ |
Чтение элемента и модификация адреса |
026 |
WR R4 |
Сравнение и замена, если R3<R4 |
027 |
SUB R3 | |
028 |
JS L1 | |
029 |
MOV R3,R4 | |
030 |
L1: JRNZ R2,L2 |
Цикл |
031 |
RD R3 |
Чтение результата в Acc |
032 |
RET |
Возврат |