Вариант программы с меньшим числом команд

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет ИТМО»

 

Факультет программной инженерии и компьютерной техники

 

 

Дисциплина: Основы профессиональной деятельности

 

 

Лабораторная работа №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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!