ОБФедеральное государственное автономное образовательное учреждение высшего образования

«Санкт-Петербургский национальный исследовательский

университет информационных технологий, механики и оптики»

Кафедра Вычислительной Техники

Дисциплина: Основы Вычислительной Техники

Лабораторная работа №6

«Обмен данными с ВУ по прерыванию»

Вариант 6855.

Выполнила: meow

  Группа: Р3102 

2017г

Задание:

Номер варианта: 6855

По выданному преподавателем варианту разработать и исследовать работу комплекса программ обмена данными в режиме прерывания программы. Основная программа должна изменять содержимое заданной ячейки памяти (Х), которое должно быть представлено как знаковое число. Область допустимых значений изменения Х должна быть ограничена заданной функцией F(X) и конструктивными особенностями регистра данных ВУ (8-ми битное знаковое представление). Программа обработки прерывания должна выводить на ВУ модифицированное значение Х в соответствии с вариантом задания, а также игнорировать все необрабатываемые прерывания.

НЕ нашли? Не то? Что вы ищете?
Основная программа должна декрементировать содержимое X (ячейки памяти с адресом 03416) в цикле. Обработчик прерывания должен по нажатию кнопки готовности ВУ-1 осуществлять вывод результата вычисления функции F(X)=-4X+1 на данное ВУ, a по нажатию кнопки готовности ВУ-3 вычесть Х из содержимого РД данного ВУ Если Х оказывается вне ОДЗ при выполнении любой операции по его изменению, то необходимо в Х записать максимальное по ОДЗ число.

Цель: изучение организации системы ввода-вывода базовой ЭВМ,

команд ввода-вывода и исследование процесса функционирования ЭВМ при обмене

данными по сигналам готовности внешних устройств (ВУ).

ОДЗ: [-3110, 3110]

ORG

032

SAVED_A:

WORD

; Ячейка для проверки результата

SAVED_C:

WORD

; Ячейка, для хранения carry

X :

WORD

; X

TMP:

WORD

; Временное хранение результата

MAX

0020

MIN

-0020

MASK

FF00

SAVE :

EX_SAVE

; Функция, которая запоминает содержимое аккумулятора и carry

MOV SAVE_A

ROR

MOV SAVE_C

BR (EX_SAVE)

BACK:

EX_BACK

; Восстановления бита переноса и аккумулятора

CLA

; Восстановление бита С

ADD SAVED_C

ROL

CLA

; Восстановить значение аккумулятора, не изменяя С

CMA

AND SAVED_A

BR (EX_BACK)

LOOP:

CLA

; Основная программа, которая декрементирует содержимое Х

; NOP

ADD X

DEC

MOV X

JSR CHECK

NOP

BR (LOOP)

ORG

000

HANDLER:

EX_HANDLER

; Обработчик прерываний

JSR SAVE

CHECK1:

TSF 1

; Если flaf 1 = 1, то выполняем F = -4X+1. Вывести на ВУ-1

; NOP2

BR CHECK2

MOV TMP

ADD TMP

ADD TMP

ADD TMP

CMA

INC

INC

JSR CHECK

NOP

OUT 1

CHECK2:

TSF 3

; Если flag 3 = 1, то вычесть Х из содержимого РД  ВУ-3

BR RETURN

IN 3

SUB X

CHECK X

MOV X

RETURN:

JSR BACK

BR (EX_HANDLER)

FIXED:

EX_FIXED

Перевести в 16-разрядную сетку

MOV TMP

AND MASK

BEQ EX_FIXED

CLA

ADD TMP

BR (EX_FIXED)

CHECK:

WORD

Проверка на ОДЗ

CLA

ADD X

SUB MAX

BPL CHANGE

ADD MAX

SUB MIN

BPL CHANGE

BR (CHECK)

CHANGE:

CLA

Если не удовлетворяет ОДЗ

ADD MAX

MOV X

BR (CHECK)


Методика проверки:

Входит ли изменённый Х в ОДЗ:

Загрузить комплекс программ в память БЭВМ. Изменить значение Х, находящееся в ячейке 034, на проверяемое число. Изменить точку останова NOP1, на HLT. Запустить программу. Записать значение аккумулятора в момент останова программы. Посчитать значение программы (), которое должно получится. Проверить, совпадает ли значение с тем, что должно было получиться. Если не совпадает, то число вышло за границы ОДЗ и ему присвоилось минимальное значение = -31

Проверить корректность функции F = -4x + 1

Загрузить комплекс программ в память БЭВМ. Изменить значение Х, находящееся в ячейке 034, на проверяемое число. Изменить точку останова NOP2, на HLT. Установить кнопку «Готовность ВУ-3» Запустить программу Записать содержимое РДВУ-1 в момент останова программы. Ввести в клавишный регистр 034, нажать на кнопку ввода адреса, переписать число, хранящееся в ячейке 034. Посчитать значение функции F = -4x  + 1 Сравнить полученное значение и значение в ячейке в ячейке 034. Если значения не равны, то число вышло за границы ОДЗ и ему присвоилось минимальное значение = -31

Вывод: В ходе выполнения лабораторной работы я изучила организацию системы ввода-вывода базовой ЭВМ