Если решение функции должно быть одно из двух , то при ее задании в булевой форме или в виде переключательной схемы можно применить метод отображения входного набора или метод маскирования.
Пусть .
Представим функцию в виде: ,
где Y 1 (x)=(–000– 1-1); Y2(x)=(–––– 110—).
В приведенных выражениях черточки указывают на отсутствие условий, а переменные размещены в байте следующим образом:
[ x8 x7 x6 x5 x4 x3 x2 x1 ].
Поместим Y 1(x) и Y 2(x) в соседние ячейки памяти и подготовим маски для анализа вводимой информации.
Первая маска G должна закрыть все переменные, которые не несут условий:
• для Y 1(x) G 1=(01110101)=75Н;
• для Y 2(x) G 2=(00001110)=0СН.
Вторая маска G (гамма) должна выделить единичные значения в Y.
Маски размещаются в памяти попарно: G 1, G 1, G 2, G 2.
Программная реализация автомата заключается в том, что на входной набор накладывается маска G 1 с помощью операции ANI G 1, а потом маска G 1 операцией XRI G 1. Если входной набор удовлетворяет условиям Y 1(x), то в регистре флагов F микропроцессора устанавливается бит z =1 (нулевой результат) и осуществляется вывод значения функции F =1. Если условия не удовлетворены (z =0), то на входной набор накладывается другая пара масок Γ 2 и G 2 и проверяется условие z =1.
|
|
Функция может содержать несколько операций ИЛИ. Пусть, например, функция содержит две операции ИЛИ:
.
В этом случае потребуется представить ее в виде и получить три пары масок.
Для удобства выборки из памяти маски записываются попарно и последовательно: G 1, Γ 1, G 2 Γ 2,… G n.... Γ n.
Достоинство метода - программа универсальная, так как при изменении функции достаточно изменить маски.
Недостаток метода - при большом числе переменных и конъюнкций значительно увеличивается количество масок.