Основни логически операции (и, или, xor, не). Пример за решаване на задачата XOR - логическата инструкция OR се оценява на true if

Обозначава се с фигурата на речта „или... или...“ Съставното твърдение „или А, или Б“ е вярно, когато или А, или Б е вярно, но не и двете; в противен случай съставното твърдение е невярно.

Тези. резултатът е верен (равен на 1), Ако A не е равно на B (A≠B).

Тази операция често се сравнява с дизюнкция, защото са много сходни по свойства и двете имат прилики със съюза „или“ в ежедневната реч. Сравнете правилата за тези операции:

1. вярно, ако е вярно или , илии двете наведнъж.

2. вярно, ако е вярно или, Но Неи двете наведнъж.

Операция изключвапоследната опция („и двете наведнъж“) и поради тази причина се нарича изключително „ИЛИ“. Неяснотаестествен език е, че връзката „или“ може да се използва и в двата случая.

5. Импликация (логическо следствие)се формира чрез комбиниране на две твърдения в едно с помощта на фигурата на речта „ако ... тогава ....“.

Запис: A®B

Съставно твърдение, образувано от операцията на импликация, е невярно тогава и само ако невярно заключение (второ твърдение) следва от истинска предпоставка (първото твърдение).

Тези. ако 1 означава 0, то резултатът е 0, в останалите случаи – 1.

Например твърдението „Ако едно число се дели на 10, то се дели на 5“ е вярно, защото както първото, така и второто твърдение са верни.

Твърдението „Ако едно число се дели на 10, то се дели на 3“ е невярно, защото фалшиво заключение се прави от истинска предпоставка.

"Този четириъгълник е квадрат" (А) И „Окръжност може да бъде описана около даден четириъгълник“ (IN). Тогава съставният израз се чете като „Ако даден четириъгълник е квадрат, тогава около него може да се начертае кръг.“

В обикновената реч съединителната "ако... тогава"описва причинно-следствената връзка между твърденията. Но в логическите операции значението на твърденията не се взема предвид. Разглежда се само тяхната истинност или неистинност. Следователно не бива да се смущаваме от „безсмислието“ на импликациите, формирани от твърдения, които са напълно несвързани по съдържание. Например така: „ако президентът на Съединените щати е демократ, значи в Африка има жирафи“, „ако динята е зрънце, значи има бензин в бензиностанцията“.

6. Еквивалентността (логическо равенство, ~ º Û) се формира чрез комбиниране на две твърдения в едно с помощта на фигурата на речта „...ако и само ако...“

Съставно твърдение, образувано от операция за еквивалентност, е вярно тогава и само ако и двете твърдения са едновременно неверни или верни.

Например твърденията „Един компютър може да изчислява, ако и само ако е включен“ и „Един компютър не може да изчислява, ако и само ако не е включен“ са верни, защото и двете прости твърдения са едновременно верни.


Таблици на истината

За всяко съставно твърдение (логическа функция) е възможно да се изгради таблица на истината, която определя неговата истинност или фалшивост за всички възможни комбинации от първоначалните стойности на прости твърдения.

Таблица на истинатае таблично представяне на логическа схема (операция), която изброява всички възможни комбинации от стойностите на истината на входните сигнали (операнди) заедно с стойността на истината на изходния сигнал (резултат от операцията) за всяка от тези комбинации.

Нека отразим обсъдените по-горе логически операции в таблицата на истината:

В пропозиционалната алгебра всички логически функции чрез логически трансформации могат да бъдат сведени до три основни: логическо събиране, логическо умножение и логическо отрицание.

Нека докажем, че импликационната операция A®B е еквивалентна на логическия израз:

Инструкцията XOR в асемблерния език изпълнява изключителна операция ИЛИ между всички битове на два операнда. Резултатът от операцията XOR се записва в първия операнд. Синтаксис:

XOR ПРИЕМНИК, ИЗТОЧНИК

Инструкцията XOR винаги нулира CF и OF, а също така (в зависимост от резултата) променя флаговете SF, ZF и PF. Стойността на флага AF може да бъде всякаква - не зависи от резултата от операцията.

ПОЛУЧАТЕЛЯТ може да бъде един от следните:

  • Област на паметта (MEM)

ИЗТОЧНИКЪТ може да бъде едно от следните:

  • Област на паметта (MEM)
  • Регистър с общо предназначение (REG)
  • Незабавна стойност - константа (IMM)

При спазване на ограниченията, описани по-горе, комбинациите ПРИЕМНИК-ИЗТОЧНИК могат да бъдат както следва:

REG, MEM MEM, REG REG, REG MEM, IMM REG, IMM

Изключително ИЛИ операция

При извършване на операция изключително ИЛИ, стойността на резултата ще бъде 1, ако сравняваните битове са различни (не са равни). Ако сравнените битове имат една и съща стойност, тогава резултатът ще бъде 0.

Ето защо тази операция се нарича изключителна. Той изключва идентични битове от сравнението и извършва операцията върху неравни битове.

Но тъй като всяка двойка неравни битове е 0 и 1, логическата операция ИЛИ ще доведе до 1.

Изключителна таблица на истината ИЛИ

Таблицата на истината XOR е дадена по-долу:

0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0

Характеристики на операцията XOR

Операцията XOR има свойството на обратимост. Ако се изпълни два пъти с един и същ операнд, стойността на резултата се обръща. Тоест, ако извършите тази операция два пъти между битовете хИ Y, тогава в крайния резултат ще получим оригиналната битова стойност х.

0 XOR 0 = 0 XOR 0 = 0 0 XOR 1 = 1 XOR 1 = 0 1 XOR 0 = 1 XOR 0 = 1 1 XOR 1 = 0 XOR 1 = 1

Това свойство може да се използва, например, за просто криптиране на данни (повече за това друг път).

Проверка на флага за паритет след операция XOR

Командата XOR работи с 8-, 16- и 32-битови операции.

Понякога има нужда след извършване на операция да се провери флагът за паритет PF, за да се установи колко единици бита (четни или нечетни) се съдържат в нисък байтрезултат (това е необходимо не само при извършване на операция XOR, но и при извършване на други аритметични и логически операции).

Ако флагът за паритет е зададен, резултатът е четен брой от един бит. В противен случай флагът ще бъде нулиран.

Можете също така просто да проверите всяко число за паритет, без да променяте стойността на резултата. За да направите това, трябва да изпълните командата XOR с нулева стойност. Тоест RECEIVER трябва да съдържа числото, което се проверява, а SOURCE трябва да съдържа нула. И тогава трябва да проверите флага за паритет. Пример:

AL, 10110101b ;Поставете в AL число с нечетно число от един бит (5) XOR AL, 0 ;В този случай флагът за паритет PF не е;зададено (PO) MOV AL, 10110111b ;Поставете в AL число с четен брой от един бит (6 ) XOR AL, 0 ; В този случай флагът за паритет PF ; ще бъде зададен (PE)

В дебъгерите съкращението PE (Parity Even) обикновено се използва за обозначаване на четен брой единици в резултантния резултат и PO (Parity Odd) за нечетно число.

Паритет в 16-битови думи

Както вече споменахме, флагът за паритет се задава в зависимост от броя единици, съдържащи се в ниския байт на резултата. За да проверите паритета на 16-битов операнд, трябва да извършите XOR високия и ниския байт на числото:

MOV AX, 64C1h ;0110 0100 1100 0001 - 6 еднобитови XOR AH, AL ;ще бъде зададен флаг за четност

По този прост начин 16-битовият операнд се разделя на два байта (2 групи от по 8 бита) и при изпълнение на командата XOR, единичните битове, разположени в съответните битове на двата 8-битови операнда, няма да бъдат взети в сметка. Тъй като съответният бит на резултата е нула.

Инструкцията XOR премахва всички припокриващи се един бита от два 8-битови операнда от резултата и добавя несвързани един бита към резултата. Тоест паритетът на 8-битовото число, което получаваме, ще бъде същият като паритета на оригиналното 16-битово число.

0110 0100 1100 0001 - оригинално 16-битово число 0 XOR 1 = 1 1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 0 = 0 0 XOR 0 = 0 1 XOR 0 = 1 0 XOR 0 = 0 0 XOR 1 = 1

Резултатът е 4 единици, тоест флагът PF ще бъде зададен

Паритет в 32-битови двойни думи

Е, какво ще стане, ако трябва да определите паритета на 32-битово число?

След това числото се разделя на четири байта и върху тези байтове един по един се извършва операция изключително ИЛИ.

Например, разделяме 32-битово число бс четири байта B0, B1, B2, B3, Където B0- това е ниският байт.

След това, за да определим паритета на число B, ще трябва да използваме следната формула:

B0 XOR B1 XOR B2 XOR B3

Но в асемблера такава нотация не е разрешена. Така че ще трябва да помислите малко.

И накрая, за произхода на мнемониката XOR. В английския има дума e хрецепция - изключение. Съкращението на тази дума е буквата х(така стана). Вероятно сте виждали това в реклами или в имената на продукти, чиито производители претендират (или мислят, че претендират) за изключителност. Например Lada XRAY, Sony XPeria и др. Така че XOR е акроним, съставен от две думи - напр хрецепция ИЛИ- изключително ИЛИ.

Често, за да демонстрират ограничените възможности на еднослойните перцептрони при решаване на проблеми, те прибягват до разглеждане на т.нар. XOR – изключително ИЛИ.

Същността на задачата е следната. Дадена е логическата функция XOR - изключително ИЛИ. Това е функция на два аргумента, всеки от които може да бъде нула или едно. Приема стойността, когато един от аргументите е равен на единица, но не и двете, в противен случай. Проблемът може да бъде илюстриран с помощта на еднослойна система с един неврон и два входа, показана на фигурата по-долу.

Нека означим единия вход с , а другия с , тогава всички техни възможни комбинации ще се състоят от четири точки на равнината. Таблицата по-долу показва необходимата връзка между входове и изход, където входните комбинации, които трябва да произведат нулев изход, са означени с , а един изход е означен с .

Точки Значение Значение Задължителен изход
0 0 0
1 0 1
0 1 1
1 1 0

Един неврон с два входа може да образува повърхност за вземане на решение под формата на произволна права линия. За да може мрежата да приложи функцията XOR, посочена в таблицата по-горе, трябва да позиционирате линията така, че точките да са от едната страна на линията, а точките да са от другата. След като се опитахме да начертаем такава права линия на фигурата по-долу, се убедихме, че това е невъзможно. Това означава, че без значение какви стойности са присвоени на теглата и прага, еднослойната невронна мрежа не е в състояние да възпроизведе връзката вход-изход, необходима за представяне на функцията XOR.

Функцията XOR обаче се формира лесно от двуслойна мрежа и то по много начини. Нека разгледаме един от тези методи. Нека модернизираме мрежата на фигурата, като добавим още един скрит слой от неврони:

Имайте предвид, че тази мрежа е дадена такава, каквато е, т.е. можем да предположим, че тя вече е обучена. Числата над стрелките показват стойностите на синаптичните тегла. Като функция за активиране ще използваме функция за единично прескачане с праг със следната графика:

Тогава резултатът от работата на такава невронна мрежа може да бъде представен под формата на следната таблица:

Точки Значение Значение Задължителен изход
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Всеки от двата неврона на първия слой образува повърхност на решение под формата на произволна права линия (разделя равнината на две полуравнини), а невронът на изходния слой комбинира тези две решения, образувайки повърхност на решение в форма на лента, образувана от успоредни прави линии на невроните на първия слой:

Невронната мрежа, използвана в тази статия за решаване на проблема с XOR, е примитивна и не се възползва напълно от възможностите на многослойните мрежи. Очевидно е, че многослойните невронни мрежи имат по-голяма представяща сила от еднослойните само при наличие на нелинейност. И в тази мрежа се прилага функция за прагово линейно активиране. Такава мрежа не може да бъде обучена, например, с помощта на алгоритъм за обратно разпространение.

функцията, която изпълняват, е малко по-сложна, отколкото в случай на елемент И или елемент ИЛИ. Всички входове на портите XOR са равни, но нито един вход не може да блокира другите входове, като зададе изхода на единица или нула. Таблица 4.1. Таблица на истинатаексклузивни ИЛИ елементи с два входа
Вход 1 Вход 2 Изход
0 0 0
0 1 1
1 0 1
1 1 0


Ориз. 4.1.

Функцията Exclusive OR означава следното: единица се появява на изхода, когато само един вход има единица. Ако има две или повече единици на входовете или ако всички входове са нули, тогава изходът ще бъде нула. Таблица на истинатадвувходов елемент Изключващо ИЛИ е дадено в табл. 4.1. Обозначенията, приети в местни и чуждестранни схеми, са показани на фиг. 4.1. Надписът върху вътрешното обозначение на елемента Изключително ИЛИ "=1" просто означава, че ситуацията е подчертана, когато има един и само един модул на входовете.

В стандартните серии има малко XOR елементи. Вътрешните серии предлагат микросхеми LP5 (четири елемента с два входа с изход 2C), LL3 и LP12, които се различават от LP5 в изхода OK. Тези елементи изпълняват твърде специфична функция.

От математическа гледна точка елементът XOR изпълнява операцията на така нареченото сумиране по модул 2. Следователно тези елементи се наричат ​​също суматори по модул две. Както беше отбелязано в предишната лекция, сумирането по модул 2 се обозначава със знак плюс, ограден в кръг.

Основното приложение на елементите е Изключително ИЛИ, което следва директно от таблици на истината, се състои от сравняване на два входни сигнала. В случай, че на входовете постъпят две единици или две нули (сигналите съвпадат), на изхода се образува нула (виж таблица 4.1). Обикновено в това приложение към един вход на елемента се прилага постоянно ниво, с което се сравнява променлив във времето сигнал, пристигащ на другия вход. Но много по-често се използват специални микросхеми за сравняване на сигнали и кодове кодови компаратори, за които ще стане дума в следващата лекция.

Като суматор по модул 2 елементът XOR се използва и в паралелни и последователни делители по модул 2, използвани за изчисляване на циклични контролни суми. Но тези схеми ще бъдат разгледани подробно в лекции 14,15.

Важно приложение на елементите XOR е управляван инвертор (фиг. 4.2). В този случай един от входовете на елемента се използва като управляващ, а на входа на другия елемент се получава информационен сигнал. Ако управляващият вход е единица, тогава входният сигнал се инвертира, но ако е нула, не се инвертира. По-често управляващ сигналсе задава на постоянно ниво, определящо режима на работа на елемента, а информационният сигнал е импулсен. Това означава, че елементът XOR може или не може да промени полярността на входния сигнал или фронта, в зависимост от управляващ сигнал.


Ориз. 4.2.

В случай, че има два сигнала с еднаква полярност (положителна или отрицателна) и тяхното едновременно пристигане е изключено, елементът Изключително ИЛИ може да се използва за смесване на тези сигнали (фиг. 4.3). За всяка полярност на входните сигнали, изходните сигнали на елемента ще бъдат положителни. За положителни входни сигнали портата XOR ще действа като врата 2OR, а за отрицателни входове ще замени вратата 2AND-NOT. Такива замествания могат да бъдат полезни в случаите, когато някои изключителни ИЛИ елементи остават неизползвани във веригата. Вярно е, че трябва да се вземе предвид забавяне на разпространениетоСигналът в елемента XOR обикновено е малко по-голям (около 1,5 пъти) от забавянето в най-простите елементи AND, NAND, OR, NOR.

На практика най-често използваните елементи с два входа са „изключително ИЛИ“. На фиг. Фигура 1 показва конвенционално графично обозначение на елемент без инверсия и неговата таблица на състоянието. Най-просто казано, същността на този елемент се свежда до следното: изходният сигнал се появява само когато логическите нива на входовете не са еднакви.

Схема за идентифициране на фронта и прекъсването на импулса

В тази схема се използват три XOR гейта за забавяне на импулсите. DD1.4 - сумиране. Изходните импулси имат стабилни предни ръбове и спадащи ръбове. Продължителността на всеки изходен импулс е равна на утроеното време на забавяне на превключването на всеки от трите елемента. Интервалът от време между фронтовете на изходните импулси е равен на продължителността на входния импулс. Това устройство също удвоява честотата на входния сигнал.

Има още един интересен имот, наречен “Exclusive OR”. Ако към един от входовете се приложи константа „0“, тогава сигналът на изхода на елемента ще повтори входния сигнал и ако константата „0“ се промени на константа „1“, тогава изходният сигнал ще вече е инверсия на входния сигнал.

Понякога става необходимо да се получи порта "изключително ИЛИ" от отделни стандартни логически врати. Пример е веригата на елемента „изключително ИЛИ“, реализирана върху четири елемента 2-И-НЕ. Фигура 3 показва верига XOR в нейните четири състояния. Това показва всички възможни логически нива на всеки от използваните 2-NAND портове.

Такива елементи са включени в диаграмата. В тази схема елементът "Изключително ИЛИ" е направен от четири елемента 2-И-НЕ, включени в един пакет на микросхемата K561LA7.

Генератор на дискретни сигнали с диференциална честота

Веригата на драйвера е показана на фигура 4. Тук изключителният логически елемент ИЛИ също е реализиран върху четири елемента 2-И-НЕ.

На входове 1 и 2 на формовчика (виж графики 1 и 2) попадат правоъгълни импулси, които се различават по честота на повторение. Възел, базиран на логически елементи DD1.1-DDI.4, умножава тези сигнали. Изходният импулсен сигнал (графика 3) от елемент DD1.4 се подава към интегриращата верига R3, C1, която го преобразува в триъгълен сигнал (графика 4) с честота, равна на разликата в честотите на входните сигнали, и op-amp DA1 преобразува получения сигнал в квадратна вълна (виж график 5). Резисторът R1 регулира продължителността на положителните и отрицателните полувълни на изходния сигнал. Много интересна схема. Радиодизайнерът има за какво да мисли. Например сигналът, показан в третата графика, е синусоидален PWM сигнал.
Разбира се, обхватът на използване на елементите „изключително ИЛИ“ е много по-широк. Тук съм представил според мен по-интересни за радиолюбителите.



Зареждане...
Връх