Метод адресных переходов

Метод бинарных программ (разложение в ряд Шеннона)

Метод бинарных программ основан на поочередном анализе каждой переменной. Результатом анализа является бинарное дерево решений. Для проведения анализа используются команды условных переходов. Наиболее удобно применение команд, связанных с анализом переносов, например, RRC – сдвиг вправо через бит переноса. Переменная, которая поступает в бит переноса С, подвергается бинарному анализу - определению значения 0 или 1. В зависимости от результата алгоритм разветвляется в двух направлениях, образуя логику решения.

Рассмотрим пример построения блок-схемы алгоритма анализа булевой функции, которые зависит от четырех переменных – x, y, z, w:

Пусть .

Анализ функции позволяет сделать вывод о том, что переменная во втором слагаемом не анализируется. В связи с этим принимаем следующий порядок анализа:

Здесь сначала анализируется x, потом y, дальше w и z.

Построим блок-схему алгоритма анализа логической функции в виде дерева решений. Для построения блок-схемы используем операции сдвига, и операцию анализа состояния бита переноса , которую обозначим на схеме цифрой 1. Схема алгоритма приведена на рисунке 3.1.

Рисунок 3.1 - Блок-схема алгоритма программной реализации логической функции

Как видно со схемы алгоритма для программной реализации автомата потребуется ввести не больше пяти процедур анализа переменных, что отвечает хорошему варианту программы.

Другим широко распространенным методом является метод адресных переходов (таблиц). Значение функций выхода для всех вариантов входного набора записываются в памяти. При этом код входного набора используется для получения адреса результата.

Пример. Пусть нужно превратить двоичный код в код семисегментного индикатора. Обозначение сегментов такого индикатора приведено на рисунке 3.2, а соответствие двоичного кода коду семисегментного индикатора приведено в таблице 3.1.

Рисунок 3.2 - Обозначение сегментов индикатора

Таблица 3.1 - Таблица истинности для входных наборов (00...04)

Символ на индикаторе Двоичный код входа h q f e d c b a Код индика-тора
                    3FH
                    06H
                    5BH
                    4FH
                    66H

Ячейке, которая содержит информацию о работе сегментов при поступлении кода 0000B, присваивается базовый адрес памяти BASE. Адреса других ячеек будут определяться автоматически путем суммирования базового адреса с кодом подаваемого на автомат числа.

При поступлении входного набора автомат выполняет его суммирование с адресом BASE и по полученному адресу считывает значение выходного сигнала.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: