6
Имитатор УУ содержит коммутатор отсылок В и С, которые указывают на адрес следующей команды. Выбор отсылки определен состоянием линии управления (ЛУ), которое вычисляется ИУ при выполнении команды в зависимости от состояния активной секции ленты и сигнала У5 по логике «И».
Отсылка, выбранная с помощью коммутатора, В - нижняя или С -
верхняя, является адресом, который поступает в память для выборки очередной команды. Команды, сформированные списком, как показаны в таблице 1. Порядковый номер в списке определяет код операции (КОП). В
столбце КОП показана двоичная запись одноименного номера.
Терминал предназначен для указания режима работы (ПДП или ВЫ-
ЧИСЛЕНИЯ), а также для управления «Пуском» машины или продолжением выполнении программы. Кроме того, с пульта управления оператор указывает пусковой адрес (ПА).
В таблице 1 выделены следующие группы операций поддерживаемые машиной Поста:
позиции 1-2 - группа «Запись» в активную ячейку;
позиции 3-4 - группа «Сдвиг»;
позиция 5 - команда «Решение»;
позиция 6 - команда «Останов».
Таблица 1
п/п |
Оператор (КОП) |
|
Сигналы микроопераций |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Мнемоника КОП |
Двоичный |
Y1 |
|
Y2 |
Y3 |
Y4 |
|
Y5 |
|
|
код КОП |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
Запись «1» |
001 |
1 |
|
0 |
0 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
2 |
Запись «0» |
010 |
0 |
|
1 |
0 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
3 |
Сдвиг |
011 |
0 |
|
0 |
1 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
4 |
Сдвиг |
100 |
0 |
|
0 |
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
5 |
1/C RD = 1? 0/В |
101 |
0 |
|
0 |
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
6 |
Останов |
000 |
0 |
|
0 |
0 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
7
При выполнении команды «Останов» никакие управляющие сигналы не генерируются и выполнение программы прекращается.
В графе «Сигналы микроопераций» указаны наименования сигналов управления и момент их активизации - логическая «1».
Эти сигналы могут быть отображены функцией, которая реализуется дешифратором команд DC, как показано на рисунке 4.
Рисунок 2 – Дешифратор команд
Дешифраторы DCS и DCR использованы для записи «1» и «0» в секцию регистра, а мультиплексор для чтения состояния секции, указанной счетчиком СТ. Входы С (синхронизация) дешифраторов и входы (+1, -1) счетчика подключены к источнику управляющих сигналов (У), хотя на рисунке это явно не показано. Такие сигналы вырабатывает дешифратор кодов операций (КОП),
подключенный к полю КОП регистра команд RGK. Сигнал У5 поступает на другой вход логического элемента «И», который определяет условие выбора отсылки В или С.
Справа на рисунке 1 дано обобщенное описание оперативного запоминающего устройства (RAM) и терминала. Оперативное запоминающее устройство связано посредством шины адресной (шА) и шины данных (шD) с
процессором (все, что размещено на рисунке левее ОЗУ и терминала).
Шина адреса (шА) подключена ко входу регистру адреса (RA) памяти ОЗУ и соединена с выходом мультиплексора отсылок и пультовым терминалом. Шину шА загружают отсылкой (В, С) с выхода мультиплексора отсылок по команде «Р» (продолжить), которая формируется с пультового терминала.
8
Шина шD связывает ОЗУ с регистром RGK команд и терминалом. ОЗУ имеет порт ввода-вывода RS (регистр слова). Передача слова из порта RS на
RGK возможна при условии, что клавиша Р (продолжить) не нажата, другими словами, команда «Р» пультового терминала не введена, и был произведен запуск программы («ПУСК»). Через порт RS в память по шине шD данные вводятся с пультового терминала (управляющий сигнал «W»).
Ко входам WO и W1 элемента RAМ подключена схема (четыре логических элемента) выбора режима «чтение-запись» работы ОЗУ. Эта схема синхронизируется сигналом «W», т.е. когда W=1 - запись, иначе - чтение. К
выходу регистра RA адреса ОЗУ подключен дешифратор, имеющий два выхода А и В, которые указывают адрес запоминающего элемента,
установленного на пересечении столбцов В и строк А матрицы RAМ.
2.2. Написание программы Для того чтобы запустить модель машины Поста необходимо скачать
архив «MAC_POST.AOS» из электронного курса. Распаковать этот архив и запустить файл «AOS0.bat».
Рисунок 3 – Запуск программы Для нашего задания составим таблицу истинности.
9
Таблица 2 – Таблица истинности
m0 |
m1 |
m2 |
m3 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
|
|
|
|
0 |
1 |
0 |
0 |
|
|
|
|
0 |
1 |
1 |
0 |
|
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
1 |
0 |
1 |
0 |
|
|
|
|
1 |
1 |
0 |
0 |
|
|
|
|
1 |
1 |
1 |
0 |
|
|
|
|
В ходе выполнения работы была написана программа, представленная
на рисунке 4.
Рисунок 4 – Готовая программа
2.3.Алгоритм и код программы и его объяснение
1)50208 // Команда сверяет значение в начальной ячейке, если 0, то переходит к команде 2, если 1, то переходит к команде 8.
2)30300 // Сдвиг на одну ячейку влево, переход к 3 команде.
3)50409 // Команда сверяет значение в следующей ячейке, если 0,
то переходит к 4 команде, если 1, то к 9 команде.
4)30500 // Сдвиг на одно ячейку влево, переход к команде 5.
10
5)50610 // Команда сверяет значение в последней ячейке, если 0, то переходит к команде 6, если 1, то переходит к команде 10.
6)30700 // Сдвиг на одно ячейку влево, переход к 7 команде.
7)11100 // Записывает в ячейку 3 значение 1, переход к команде 11.
8)30900 // Сдвиг на одну ячейку влево, переход к команде 9.
9)31000 // Сдвиг на одну ячейку влево, переход к команде 10.
10)31100 // Сдвиг на одну ячейку влево, переход к команде 11.
11)00000 // Конец
Число в ячейке 3 — это ответ. Алгоритм программы представлен на рисунке 5.
Рисунок 5 – Алгоритм программы