Operații logice de bază (și, sau, xor, nu). Un exemplu de rezolvare a problemei XOR - OR exclusiv Instrucțiunea xor logică evaluează la adevărat dacă

Indicat prin figura de stil „ori... sau...” Afirmația compusă „ori A sau B” este adevărată atunci când fie A, fie B este adevărată, dar nu ambele; altfel afirmaţia compusă este falsă.

Acestea. rezultatul este adevărat (egal cu 1), Dacă A nu este egal cu B (A≠B).

Această operație este adesea comparată cu disjuncția deoarece sunt foarte asemănătoare ca proprietăți și ambele au asemănări cu conjuncția „sau” din vorbirea de zi cu zi. Comparați regulile pentru aceste operațiuni:

1. adevărat dacă adevărat sau , sau ambele deodată.

2. adevărat dacă adevărat sau, Dar Nu ambele deodată.

Operațiune exclude cea din urmă opțiune („ambele deodată”) și din acest motiv se numește exclusiv „SAU”. Ambiguitate limbajul natural este că conjuncția „sau” poate fi folosită în ambele cazuri.

5. Implicație (consecință logică) se formează prin combinarea a două enunțuri într-unul singur folosind figura de stil „dacă ... atunci ....”.

Înregistrare: A®B

O afirmație compusă formată prin operația de implicare este falsă dacă și numai dacă dintr-o premisă adevărată (prima afirmație) rezultă o concluzie falsă (a doua afirmație).

Acestea. dacă 1 implică 0, atunci rezultatul este 0, în alte cazuri – 1.

De exemplu, afirmația „Dacă un număr este divizibil cu 10, atunci este divizibil cu 5” este adevărată deoarece atât prima cât și a doua afirmație sunt adevărate.

Afirmația „Dacă un număr este divizibil cu 10, atunci este divizibil cu 3” este falsă deoarece dintr-o premisă adevărată se trage o concluzie falsă.

„Acest patrulater este un pătrat” (A) Și „Un cerc poate fi circumscris în jurul unui patrulater dat” (ÎN). Apoi declarația compusă se citește ca „Dacă un patrulater dat este un pătrat, atunci poate fi desenat un cerc în jurul lui.”

În vorbirea obișnuită conjunctivul "daca atunci" descrie relația cauză-efect dintre enunțuri. Dar în operațiile logice sensul enunțurilor nu este luat în considerare. Se ia în considerare doar adevărul sau falsitatea lor. Prin urmare, nu ar trebui să ne fie stânjenit de „nesensul” implicațiilor formate din afirmații care nu sunt complet legate de conținut. De exemplu, așa: „dacă președintele Statelor Unite este democrat, atunci există girafe în Africa”, „dacă un pepene verde este o boabă, atunci este benzină în benzinărie”.

6. Echivalența (egalitatea logică, ~ º Û) se formează prin combinarea a două enunțuri într-unul singur folosind figura de stil „...dacă și numai dacă...”

O afirmație compusă formată dintr-o operație de echivalență este adevărată dacă și numai dacă ambele afirmații sunt simultan fie false, fie adevărate.

De exemplu, afirmațiile „Un computer poate calcula dacă și numai dacă este pornit” și „Un computer nu poate calcula dacă și numai dacă nu este pornit” sunt adevărate deoarece ambele afirmații simple sunt adevărate simultan.


Tabelele de adevăr

Pentru fiecare afirmație compusă (funcție logică), este posibil să se construiască un tabel de adevăr care determină adevărul sau falsitatea acestuia pentru toate combinațiile posibile ale valorilor inițiale ale afirmațiilor simple.

Tabelul adevărului este o reprezentare tabelară a unui circuit logic (operație) care listează toate combinațiile posibile ale valorilor de adevăr ale semnalelor de intrare (operanzi) împreună cu valoarea de adevăr a semnalului de ieșire (rezultatul operației) pentru fiecare dintre aceste combinații.

Să reflectăm operațiile logice discutate mai sus în tabelul de adevăr:

În algebra propozițională, toate funcțiile logice prin transformări logice pot fi reduse la trei de bază: adunare logică, înmulțire logică și negație logică.

Să demonstrăm că operația de implicare A®B este echivalentă cu expresia logică:

Instrucțiunea XOR în limbajul Asamblare realizează o operație OR exclusivă între toți biții ai doi operanzi. Rezultatul operației XOR este scris în primul operand. Sintaxă:

RECEPTOR XOR, SURSA

Instrucțiunea XOR resetează întotdeauna CF și OF și, de asemenea, (în funcție de rezultat) schimbă steagurile SF, ZF și PF. Valoarea steagului AF poate fi orice - nu depinde de rezultatul operației.

RECEPTORUL poate fi unul dintre următoarele:

  • Zona de memorie (MEM)

SURSA poate fi una dintre următoarele:

  • Zona de memorie (MEM)
  • Registrul de uz general (REG)
  • Valoare imediată - constantă (IMM)

Sub rezerva limitărilor descrise mai sus, combinațiile RECEIVER-SOURCE pot fi următoarele:

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

Operațiune SAU exclusivă

Când se efectuează o operație SAU exclusivă, valoarea rezultatului va fi 1 dacă biții comparați sunt diferiți (nu egali). Dacă biții comparați au aceeași valoare, atunci rezultatul va fi 0.

De aceea această operațiune este numită exclusivă. Exclude biții identici din comparație și efectuează operația pe biți inegali.

Dar, deoarece orice pereche de biți inegali este 0 și 1, operația logică SAU va avea ca rezultat 1.

Tabelul de adevăr SAU exclusiv

Tabelul de adevăr XOR este prezentat mai jos:

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

Caracteristicile operațiunii XOR

Operația XOR are proprietatea de reversibilitate. Dacă este executat de două ori cu același operand, valoarea rezultată este inversată. Adică dacă efectuați această operație de două ori între biți XȘi Y, apoi în rezultatul final vom obține valoarea inițială a biților X.

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

Această proprietate poate fi folosită, de exemplu, pentru criptarea simplă a datelor (mai multe despre aceasta altădată).

Verificarea indicatorului de paritate după operarea XOR

Comanda XOR funcționează cu operații pe 8, 16 și 32 de biți.

Uneori, după efectuarea unei operații, este necesar să se verifice indicatorul de paritate PF pentru a afla câți biți (pari sau impar) sunt conținuti în octet mic rezultat (acest lucru este necesar nu numai când se efectuează o operație XOR, ci și când se efectuează alte operații aritmetice și logice).

Dacă indicatorul de paritate este setat, rezultatul este un număr par de biți unu. În caz contrar, steagul va fi resetat.

De asemenea, puteți verifica pur și simplu orice număr pentru paritate fără a modifica valoarea rezultatului. Pentru a face acest lucru, trebuie să executați comanda XOR cu o valoare zero. Adică RECEIVERUL trebuie să conțină numărul testat, iar SOURCE trebuie să conțină zero. Și apoi trebuie să verificați indicatorul de paritate. Exemplu:

AL, 10110101b ;Plasați în AL un număr cu un număr de biți impar;(5) XOR AL, 0 ;În acest caz, indicatorul de paritate PF nu este;setat (PO) MOV AL, 10110111b ;Plasați în AL un număr cu un număr par de biți (6 ) XOR AL, 0 ;În acest caz, indicatorul de paritate PF ;va fi setat (PE)

În depanare, abrevierea PE (Parity Even) este de obicei folosită pentru a desemna un număr par de uni în rezultatul rezultat, iar PO (Parity Odd) pentru un număr impar.

Paritate în cuvinte de 16 biți

După cum sa menționat deja, indicatorul de paritate este setat în funcție de numărul de unități conținute în octetul inferior al rezultatului. Pentru a verifica paritatea unui operand pe 16 biți, trebuie să XOR octetul mare și cel scăzut al numărului:

MOV AX, 64C1h ;0110 0100 1100 0001 - 6 un biți XOR AH, AL ;Pavilionul de paritate va fi setat

În acest mod simplu, operandul de 16 biți este împărțit în doi octeți (2 grupuri de 8 biți), iar la executarea comenzii XOR, biții aflați în biții corespunzători ai celor doi operanzi de 8 biți nu vor fi luați în considerare. cont. Deoarece bitul corespunzător al rezultatului este zero.

Instrucțiunea XOR elimină orice biți suprapus din doi operanzi de 8 biți din rezultat și adaugă un biți disjunși la rezultat. Adică, paritatea numărului de 8 biți pe care îl primim va fi aceeași cu paritatea numărului original de 16 biți.

0110 0100 1100 0001 - număr original pe 16 biți 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

Rezultatul este de 4 unități, adică va fi setat steagul PF

Paritate în cuvinte duble de 32 de biți

Ei bine, ce se întâmplă dacă trebuie să determinați paritatea unui număr de 32 de biți?

Apoi numărul este împărțit în patru octeți, iar pe acești octeți se efectuează o operație SAU exclusivă, unul câte unul.

De exemplu, împărțim un număr de 32 de biți B cu patru octeți B0, B1, B2, B3, Unde B0- acesta este octetul mic.

Apoi, pentru a determina paritatea numărului B, va trebui să folosim următoarea formulă:

B0 XOR B1 XOR B2 XOR B3

Dar în asamblare o astfel de notație nu este permisă. Așa că va trebui să te gândești puțin.

Și, în sfârșit, despre originea mnemonicii XOR. În engleză există un cuvânt e X receptie - exceptie. Abrevierea acestui cuvânt este litera X(asa s-a intamplat). Probabil ați văzut asta în reclame sau în numele produselor ai căror producători pretind (sau cred că pretind) exclusivitate. De exemplu, Lada XRAY, Sony XPeria etc. Deci XOR este un acronim format din două cuvinte - e X recepţie SAU- exclusiv sau.

Adesea, pentru a demonstra capacitățile limitate ale perceptronilor cu un singur strat atunci când rezolvă probleme, aceștia recurg la luarea în considerare a așa-numitei probleme. XOR – OR exclusiv.

Esența sarcinii este următoarea. Este dată funcția logică XOR - SAU exclusiv. Este o funcție a două argumente, fiecare dintre acestea putând fi zero sau unul. Ia valoarea , când unul dintre argumente este egal cu unul, dar nu ambele, în caz contrar. Problema poate fi ilustrată folosind un sistem cu un singur strat, un singur neuron, cu două intrări, prezentat în figura de mai jos.

Să notăm o intrare cu , iar cealaltă cu , atunci toate combinațiile lor posibile vor consta din patru puncte pe plan. Tabelul de mai jos arată relația necesară dintre intrări și ieșiri, unde combinațiile de intrări care ar trebui să producă o ieșire zero sunt etichetate și , o singură ieșire este etichetată și .

Puncte Sens Sens Ieșire necesară
0 0 0
1 0 1
0 1 1
1 1 0

Un neuron cu două intrări poate forma o suprafață de decizie sub forma unei linii drepte arbitrare. Pentru ca rețeaua să implementeze funcția XOR specificată în tabelul de mai sus, trebuie să poziționați linia astfel încât punctele să fie pe o parte a liniei și punctele pe cealaltă parte. După ce am încercat să trasăm o astfel de linie dreaptă în figura de mai jos, suntem convinși că acest lucru este imposibil. Aceasta înseamnă că indiferent de ce valori sunt atribuite greutăților și pragului, o rețea neuronală cu un singur strat nu poate reproduce relația de intrare-ieșire necesară pentru a reprezenta funcția XOR.

Cu toate acestea, funcția XOR este ușor formată dintr-o rețea cu două straturi și în multe feluri. Să luăm în considerare una dintre aceste metode. Să modernizăm rețeaua din figură adăugând un alt strat ascuns de neuroni:

Rețineți că această rețea este dată așa cum este, adică putem presupune că a fost deja instruită. Numerele de deasupra săgeților arată valorile greutăților sinaptice. Ca funcție de activare, vom folosi o singură funcție de salt cu un prag având următorul grafic:

Apoi rezultatul funcționării unei astfel de rețele neuronale poate fi prezentat sub forma următorului tabel:

Puncte Sens Sens Ieșire necesară
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Fiecare dintre cei doi neuroni ai primului strat formează o suprafață de decizie sub forma unei linii drepte arbitrare (împarte planul în două semiplane), iar neuronul stratului de ieșire combină aceste două soluții, formând o suprafață de decizie în forma unei benzi formate din linii drepte paralele ale neuronilor primului strat:

Rețeaua neuronală folosită în acest articol pentru a rezolva problema XOR este primitivă și nu profită pe deplin de capacitățile rețelelor multistrat. Este evident că rețelele neuronale multistrat au o putere de reprezentare mai mare decât cele cu un singur strat numai în prezența neliniarității. Și în această rețea se aplică o funcție de activare liniară de prag. O astfel de rețea nu poate fi antrenată, de exemplu, folosind un algoritm de backpropagation.

funcția pe care o îndeplinesc este ceva mai complexă decât în ​​cazul unui element AND sau al unui element SAU. Toate intrările porților XOR sunt egale, dar nicio intrare nu poate bloca celelalte intrări prin setarea ieșirii la unu sau la zero. Tabelul 4.1. Tabelul adevărului elemente SAU exclusive cu două intrări
Intrare 1 Intrarea 2 Ieșire
0 0 0
0 1 1
1 0 1
1 1 0


Orez. 4.1.

Funcția SAU exclusivă înseamnă următoarele: un unu apare la ieșire când doar o intrare are unul. Dacă există două sau mai multe intrări sau dacă toate intrările sunt zero, atunci ieșirea va fi zero. Tabelul adevărului element cu două intrări SAU exclusiv este dat în tabel. 4.1. Denumirile adoptate în schemele interne și externe sunt prezentate în Fig. 4.1. Inscripția pe denumirea internă a elementului Exclusiv SAU „=1” înseamnă doar că situația este evidențiată atunci când există una și o singură unitate la intrări.

Există puține elemente XOR în seria standard. Seria domestică oferă microcircuite LP5 (patru elemente cu două intrări cu o ieșire 2C), LL3 și LP12, care diferă de LP5 la ieșirea OK. O funcție prea specifică este implementată de aceste elemente.

Din punct de vedere matematic, elementul XOR realizează operația așa-numitei însumări modulo-2. Prin urmare, aceste elemente sunt numite și sumatori modulo-doi. După cum sa menționat în prelegerea anterioară, însumarea modulo 2 este indicată de un semn plus închis într-un cerc.

Aplicația principală a elementelor este Exclusive OR, care decurge direct din tabele de adevăr, constă în compararea a două semnale de intrare. În cazul în care la intrări ajung doi unu sau două zerouri (semnalele coincid), la ieșire se formează un zero (vezi Tabelul 4.1). De obicei, în această aplicație, la o intrare a elementului este aplicat un nivel constant, cu care este comparat un semnal variabil în timp care ajunge la cealaltă intrare. Dar mult mai des, microcircuite speciale sunt folosite pentru a compara semnale și coduri comparatoare de coduri, despre care se va discuta în prelegerea următoare.

Ca un adunator modulo 2, elementul XOR este, de asemenea, utilizat în divizoare modulo 2 paralele și seriale utilizate pentru a calcula sumele de verificare ciclice. Dar aceste scheme vor fi discutate în detaliu în prelegerile 14,15.

O aplicație importantă a elementelor XOR este un invertor controlat (Fig. 4.2). În acest caz, una dintre intrările elementului este utilizată ca una de control, iar un semnal de informare este primit la cealaltă intrare a elementului. Dacă intrarea de control este una, atunci semnalul de intrare este inversat, dar dacă este zero, nu este inversat. Mai des semnal de control este setat la un nivel constant, determinând modul de funcționare al elementului, iar semnalul de informare este pulsat. Adică, elementul XOR poate sau nu schimba polaritatea semnalului de intrare sau a marginii, în funcție de semnal de control.


Orez. 4.2.

În cazul în care există două semnale de aceeași polaritate (pozitive sau negative), iar sosirea lor simultană este exclusă, elementul SAU Exclusiv poate fi utilizat pentru a amesteca aceste semnale (Fig. 4.3). Pentru orice polaritate a semnalelor de intrare, semnalele de ieșire ale elementului vor fi pozitive. Pentru semnalele de intrare pozitive, poarta XOR va acționa ca o poartă 2OR, iar pentru intrările negative, va înlocui poarta 2ȘI-NU. Astfel de înlocuiri pot fi utile în cazurile în care unele elemente SAU exclusive rămân neutilizate în circuit. Adevărat, trebuie luat în considerare faptul că întârziere de propagare Semnalul din elementul XOR este de obicei puțin mai mare (de aproximativ 1,5 ori) decât întârzierea în cele mai simple elemente AND, NAND, OR, NOR.

În practică, cele mai frecvent utilizate elemente cu două intrări sunt „SAU exclusiv”. În fig. Figura 1 prezintă o denumire grafică convențională a unui element fără inversare și tabelul de stare a acestuia. Mai simplu spus, esența acestui element se rezumă la următoarele: semnalul de ieșire apare numai atunci când nivelurile logice la intrări nu sunt aceleași.

Schema de identificare a marginii și a decupării unui puls

În acest circuit, trei porți XOR sunt folosite pentru a întârzia impulsurile. DD1.4 - însumarea. Impulsurile de ieșire au muchii înainte și margini descendente stabile. Durata fiecărui impuls de ieșire este egală cu triplul timpului de întârziere de comutare al fiecăruia dintre cele trei elemente. Intervalul de timp dintre marginile impulsurilor de ieșire este egal cu durata impulsului de intrare. Acest dispozitiv dublează și frecvența semnalului de intrare.

Există o altă proprietate interesantă numită „SAU exclusivist”. Dacă la una dintre intrări se aplică o constantă „0”, atunci semnalul de la ieșirea elementului va repeta semnalul de intrare, iar dacă constanta „0” este schimbată la o constantă „1”, atunci semnalul de ieșire va fi deja o inversare a semnalului de intrare.

Uneori devine necesar să se obțină o poartă „SAU exclusivă” de la porțile logice standard individuale. Un exemplu este circuitul elementului „SAU exclusiv” implementat pe patru elemente 2-ȘI-NU. Figura 3 prezintă un circuit XOR în cele patru stări ale sale. Aceasta arată toate nivelurile logice posibile la fiecare dintre porțile logice 2-NAND utilizate.

Astfel de elemente sunt incluse în diagramă. În acest circuit, elementul „SAU exclusiv” este format din patru elemente 2-ȘI-NU incluse într-un pachet al microcircuitului K561LA7.

Generator de semnal discret cu diferență de frecvență

Circuitul driver este prezentat în Figura 4. Aici, elementul logic SAU exclusiv este implementat și pe patru elemente 2-ȘI-NU.

Impulsurile dreptunghiulare cad la intrările 1 și 2 ale modelului (vezi graficele 1 și 2), care diferă ca frecvență de repetiție. Un nod bazat pe elemente logice DD1.1-DDI.4 multiplică aceste semnale. Semnalul de impuls de ieșire (graficul 3) de la elementul DD1.4 este alimentat circuitului de integrare R3, C1, care îl transformă într-un semnal triunghiular (graficul 4) cu o frecvență egală cu diferența de frecvență a semnalelor de intrare și op-amp DA1 convertește semnalul primit într-o undă pătrată (vezi. Schema 5). Rezistorul R1 reglează durata semi-undelor pozitive și negative ale semnalului de ieșire. O schema foarte interesanta. Designerul radio are la ce să se gândească. De exemplu, semnalul prezentat în al treilea grafic este un semnal PWM cu undă sinusoidală.
Desigur, gama de utilizare a elementelor „SAU exclusiviste” este mult mai largă. Am prezentat aici, după părerea mea, mai interesante pentru radioamatorii.



Se încarcă...
Top