Вариант программы с меньшим числом команд
Министерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет ИТМО»
Факультет программной инженерии и компьютерной техники
Дисциплина: Основы профессиональной деятельности
Лабораторная работа №2
«Исследование работы БЭВМ»
Вариант №11286
Выполнил:
Мокров Семён Андреевич
Группа:
P3120
Проверил:
Белозубов А.В.
Санкт-Петербург
2020
Оглавление
Задание. 3
Выполнение работы.. 4
Описание программы.. 5
Таблица трассировки. 6
Вариант программы с меньшим числом команд. 7
Код программы на Ассемблере. 8
Заключение. 9
Литература. 10
Задание
По выданному преподавателем варианту:
· определить функцию, вычисляемую программой,
· область представления и область допустимых значений исходных данных и результата,
· выполнить трассировку программы,
· предложить вариант с меньшим числом команд,
· написать программу на коде Ассемблера.
При выполнении работы представлять результат и все операнды арифметических операций знаковыми числами, а логических операций беззнаковым набором из шестнадцати логических значений.
Выданный вариант:
|
|
Выполнение работы
Текст исходной программы:
Адрес | Код команды | Мнемоника | Комментарии |
050 | 405В | R | Ячейка памяти, выделенная для итогового результата программы |
051 | 0200 | CLA | Очистка содержимого аккумулятора |
052 | 3059 | OR 59 | Логическое или содержимого аккумулятора с содержимым ячейки 059 (получится содержимое ячейки 059, т.к. аккумулятор обнулён) |
053 | 305C | OR 5C | Логическое или содержимого аккумулятора с содержимым ячейки 05C |
054 | E05B | ST 5B | Сохранение содержимого аккумулятора в ячейку 05В |
055 | A05A | LD 5A | Загрузка содержимого ячейки 05А в аккумулятор |
056 | 405B | ADD 5B | Сложение содержимого аккумулятора с содержимым ячейки 05В |
057 | E050 | ST 50 | Сохранение содержимого аккумулятора в ячейку 050 |
058 | 0100 | HLT | Останов |
059 | 0200 | X | Ячейка памяти, выделенная для исходных данных (0200) |
05А | A05A | Y | Ячейка памяти, выделенная для исходных данных (0200) |
05В | 405B | TMP | Ячейка памяти, выделенная для промежуточного результата программы |
05С | 305C | Z | Ячейка памяти, выделенная для исходных данных (0200) |
Описание программы
Программа вычисляет значения функции вида:
|
|
R = ( X | Z ) + Y
Область представления:
R – знаковое, целое, 16-ти разрядное число;
X, Z – набор из 16 логических однобитовых значений;
Y – знаковое, целое, 16-ти разрядное число;
Результат логической операции X | Z трактуется как арифметический операнд:
(X | Z) – знаковое, целое, 16- разрядное число.
Область допустимых значений исходных данных:
Область допустимых значений результата:
Текст программы:
Первая выполненная команда находится в ячейке с адресом 051, последняя – в ячейке с адресом 058.
Расположение исходных данных:
X – 059;
Y – 05С;
Z – 05A;
Итоговый результат (R) – 050;
Промежуточный результат (TMP) – 05B.
Таблица трассировки
Выполняемая команда | Содержимое регистров процессора после выполнения команды. | Ячейка, содержимое кот. изменилось после выполнения команды | |||||||||
Адрес | Код | IP | CR | AR | DR | SP | BR | AC | NZVC | Адрес | Новый код |
051 | 0200 | 052 | 0200 | 051 | 0200 | 000 | 0051 | 0000 | -Z-- | - | - |
052 | 3059 | 053 | 3059 | 059 | 0200 | 000 | FDFF | 0200 | ---- | - | - |
053 | 305C | 054 | 305C | 05C | 305C | 000 | CDA3 | 325C | ---- | - | - |
054 | E05B | 055 | E05B | 05B | 325C | 000 | 0054 | 325C | ---- | 05B | 325С |
055 | A05A | 056 | A05A | 05A | A05A | 000 | 0055 | A05A | N--- | - | - |
056 | 405B | 057 | 405B | 05B | 325C | 000 | 0056 | D2B6 | N--- | - | - |
057 | E050 | 058 | E050 | 050 | D2B6 | 000 | 0057 | D2B6 | N--- | 050 | D2B6 |
058 | 0100 | 059 | 0100 | 058 | 0100 | 000 | 0058 | D2B6 | N--- | - | - |
|
|
Вариант программы с меньшим числом команд
Адрес | Код команды | Мнемоника | Комментарии |
050 | 405В | R | Ячейка памяти, выделенная для итогового результата программы |
051 | 0200 | CLA | Очистка содержимого аккумулятора |
052 | 3059 | OR 59 | Логическое или содержимого аккумулятора с содержимым ячейки 059 (получится содержимое ячейки 059, т.к. аккумулятор обнулён) |
053 | 305C | OR 5C | Логическое или содержимого аккумулятора с содержимым ячейки 05C |
054 | 405A | ADD 5A | Сложение содержимого аккумулятора с содержимым ячейки 05А |
055 | E050 | ST 50 | Сохранение содержимого аккумулятора в ячейку 050 |
056 | 0100 | HLT | Останов |
059 | 0200 | X | Ячейка памяти, выделенная для исходных данных (0200) |
05А | A05A | Y | Ячейка памяти, выделенная для исходных данных (0200) |
05С | 305C | Z | Ячейка памяти, выделенная для исходных данных (0200) |
|
|
Код программы на Ассемблере
ORG 0x050
R: WORD 0x405B
START:
CLA
OR $X
OR $Z
ST $TMP
LD $Y
ADD $TMP
ST $R
HLT
X: WORD 0x0200
Y: WORD 0xA05A
TMP: WORD 0x405B
Z: WORD 0x305C
Заключение
В ходе данной работы было изучено устройство БЭВМ (основные команды, представление отрицательных чисел и логических значений в БЭВМ).
Были изучены особенности БЭВМ, такие как ограниченная разрядная сетка, а также способы учёта данных особенностей при работе с БЭВМ, такие как задание области допустимых значений.
Была составлена рабочая программа, которая находит значения функции вида R = (X | Z) + Y и ее трассировка. Программа была оптимизирована, а также написана на коде Ассемблера.
Изученные материалы позволяют работать с ЭВМ на уровне, близком к машинному, что открывает новые возможности взаимодействия с ней.
Литература
· Конспект лекций на se.ifmo.ru
Дата добавления: 2021-11-30; просмотров: 94; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!