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