Файл: Отчет о лабораторной работе по курсу Организация эвм условные и безусловные переходы обработка массивов. Оэвм 42. 2201. 0.doc
Добавлен: 29.04.2024
Просмотров: 18
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ГУАП
Кафедра 42
Рейтинг за работу
Преподаватель Осипов C.C.
Отчет
о лабораторной работе по курсу:
Организация ЭВМ
условные и безусловные переходы. обработка массивов.
ОЭВМ 42.2201.03.02 ЛР
Работу выполнил Алексеев П.И.
студент гр. 4343
Санкт-Петербург
2006
Цель работы:
Изучение особенностей адресации в командах условного и безусловного переходов, изучение адресации с индексированием, изучение организации циклических вычислений, выполнение программы арифметико-логической обработки массивов данных, хранящихся в памяти.
Порядок выполнения работы
-
Постановка задачи:
Исходные данные:
Реализуемый алгоритм - найти логическую сумму элементов массива, содержащих 0 в младшем разряде.
Способ проверки конца массива - по достижению максимального адреса в массиве.
Способ адресации для вычисления базового адреса массива – Dx.
Формат элементов массива – Длинное слово (L)
Исходные данные должны располагаться в памяти, начиная с адреса 0x05.
Текст программ размещается с адреса 0х42
Промежуточные ячейки начинаются с адреса 0х132
Необходимо составить программы в мнемокоде, выполняющие операции с массивом в соответствии с заданием. При этом первая программа для обращения к элементам массивов должна использовать косвенные способы адресации, а другая - адресацию с индексированием; во второй программе для организации цикла необходимо использовать команду ACB, а в первой программе использование команды организации цикла ACB запрещено. После составления программ требуется проделать ручную трассировку программы и проверить их работу на симуляторе.
-
Ход работы:
Написание программы с использованием косвенных способов адресации
В соответствии с системой команд составим программу в мнемокоде, Далее, распишем полученную программу в кодах:
Оп. | Адр. | Шестнадцатеричный код | Мнемокод | Комментарии |
1 | 42 | C0 8F 04000000 50 | ADDL2 #04, R0 | |
2 | 49 | D1 50 51 | CMPL @(R0), R1 | |
3 | 4C | 13 0E | BEQL 0E | выход из программы |
4 | 4E | 78 8F 1F 60 53 | ASHL 15, @(R0), R3 | |
5 | 53 | 12 ED | BNEQ ED | переход к п.1 |
6 | 55 | C8 60 52 | BISL3 @(R0), R2 | |
7 | 58 | 17 CF E6FF | JMP FFE6 | переход к п.1 |
8 | 5C | 00 | HALT | ОСТАНОВ |
В регистры запишем следующие значения:
R0 – адрес начального элемента массива минус 4
R1 – адрес конца массива
R2 – результат работы программы
R0 | R1 |
01 | 31 |
Начиная с адреса 0x05 запишем 10 чисел в формате длинного слова (L):
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A
Таблицы трассировки программы:
Оператор | Регистр, PSW | Значение до операции | Значение после операции |
1 | R0 | 01 | 05 |
2 | T N Z V C | 0 0 0 0 0 | 0 1 0 0 1 |
3 | R15 | 4C | 4E |
4 | R3 T N Z V C | 0 0 1 0 0 1 | 0 0 0 1 0 0 |
5 | R15 | 53 | 55 |
6 | R2 | 0 | 0 |
7 | R15 | 58 | 42 |
Цикл | R0 | Результат (R2) |
0 | 05 | 00 |
1 | 09 | 00 |
2 | 0D | 02 |
3 | 11 | 02 |
4 | 15 | 06 |
5 | 19 | 06 |
6 | 1D | 06 |
7 | 21 | 06 |
8 | 25 | 0E |
9 | 29 | 0E |
10 | 2D | 0E |
Написание программы с использованием команды ACB и адресации с индексированием
Оп. | Адр. | Шестнадцатеричный код | Мнемокод | Комментарии |
1 | 42 | F1 51 8F 04000000 50 0200 | ACBL R1, #04, R0, | |
2 | 4C | 00 | HALT | ОСТАНОВ |
3 | 4E | 78 8F 1F 60 53 | ASHL 15, @(R0), R3 | |
4 | 53 | 12 ED | BNEQ ED | переход к п.1 |
5 | 55 | C8 60 52 | BISL3 @(R0), R2 | |
6 | 58 | 17 CF E6FF | JMP FFE6 | переход к п.1 |
Таблицы трассировки программы:
Оператор | Регистр, PSW | Значение до операции | Значение после операции |
1 | R0 | 01 | 05 |
2 | | | |
3 | R3 T N Z V C | 0 0 1 0 0 1 | 0 0 0 1 0 0 |
4 | R15 | 53 | 55 |
5 | R2 | 0 | 0 |
6 | R15 | 58 | 42 |
-
Вывод
В ходе работы были составлены две программы, выполняющие операции над массивами в соответствии с заданием. При проверке работы программы полученные на симуляторе результаты совпали с результатами, предполагаемыми в ходе ручной трассировки.