XOR

 BBS: Inland Empire Archive
Date: 08-20-92 (14:12)             Number: 194
From: ED BEROSET                   Refer#: NONE
  To: ERAN GRANOT                   Recvd: NO  
Subj: XOR                            Conf: (1) 80xxx

In a message to All <14 Aug 92 15:37> Eran Granot wrote: EG> HI. EG> I need to write a procedure that cnvert the XOR gate. EG> Does anyone know how can I write this procedure without use the XOR EG> statment ? Assuming that you mean, "How do I calculate an XOR using only OR, NOT, and AND operations?" there are many answers. (If we use ~ as the unary NOT operator, it's easier to write.) X xor Y = (X and ~Y) or (~X and Y) alternatively stated, this is: X xor Y = (X or Y) and ~(X and Y) Assuming X and Y are in the AL and AH registers, we can code this as: mov bl,al ; bl = X or bl,ah ; bl = bl or Y = X or Y and al,ah ; al = X and Y not al ; al = ~(X and Y) and al,bl ; al = al and bl = ~(X and Y) and (X or Y) = X xor Y There are other transformations which require only OR and NOT operations, or AND and NOT operations. For information on these transformations, any elementary book on Boolean algebra should cover this -- X xor Y = (X and ~Y) or (~X and Y) Law of negation says that ~(~A) = A, so X xor Y = ~(~( (X and ~Y) or (~X and Y) )) DeMorgan's Law states: ~(A or B) = ~A and ~B, so X xor Y = ~( ~(X and ~Y) and ~(~X and Y) ) Now you have the XOR function stated using only AND and NOT operations. Similarly, X xor Y = (X or Y) and ~(X and Y) X xor Y = ~(~( (X or Y) and ~(X and Y) )) ; law of negation X xor Y = ~( ~(X or Y) or (X and Y) ) ; DeMorgan again X xor Y = ~( ~(X or Y) or ~(~(X and Y)) ) ; law of negation X xor Y = ~( ~(X or Y) or ~( ~X or ~Y ) ) ; DeMorgan again And that's XOR using only OR and NOT operations. Coding these is left as an exercise for the reader. ;-) -> Ed <- --- QT via QMX/XRS * Origin: > The Paradoxicon < 919-850-9289 > USR DS V42 < (1:151/143)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET