Применение метода маскирования

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

Пусть .

Представим функцию в виде: ,

где 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.

Достоинство метода - программа универсальная, так как при изменении функции достаточно изменить маски.

Недостаток метода - при большом числе переменных и конъюнкций значительно увеличивается количество масок.


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



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