如何用 AND 重写(P 或 Q)

M. *_*kan -1 assembly boolean-logic boolean-expression demorgans-law boolean-algebra

我正在尝试用汇编语言编写 XOR 运算,但我们允许使用的唯一运算是 AND 和 NOT,不是 OR,也绝对不是 XOR。我在网上到处查了一下,似乎找不到答案。我知道: XOR = (P 或 Q)和 ~(P 和 Q) 但我需要用 AND 运算重写(P 或 Q) 。这可能吗?

pax*_*blo 7

德摩根定律(a)之一规定(用于~否定 (not)、\xe2\x88\xa7连接 (and) 和\xe2\x88\xa8析取 (or)):

\n
~A \xe2\x88\xa8 ~B = ~(A \xe2\x88\xa7 B)\n
Run Code Online (Sandbox Code Playgroud)\n

在你的情况下 或P \xe2\x88\xa8 QP~AQ~B。所以:

\n
P \xe2\x88\xa8 Q = ~(~P \xe2\x88\xa7 ~Q)\n
Run Code Online (Sandbox Code Playgroud)\n

因此,右侧相当于P \xe2\x88\xa8 Q, 仅使用~\xe2\x88\xa7运算。

\n
\n

(a)非常感谢您让我自 1986 年离开大学以来第三次使用这些知识:-)

\n

  • @Jester,我记得早期这样做是因为 74LS 芯片是成块的(就像芯片上的几个 NAND 门)。使用任何备件来构建“OR”功能比插入“另一个”芯片来完成工作更有效。当然,如今,您可以在单个芯片上获得一百万个门:-) (2认同)