作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这更像是一个有趣的问题。我正在研究 SC61860 CPU,它是 8 位 CPU,用于 1987 年的 Sharp PC-1360 掌上电脑(也用于 PC-1401 和 1403)。它的指令集实际上并不包含 XOR。它确实有AND、OR、比较、减法和加法指令。
我尝试了 ANDing 和 ORing 值的一些变体来获得 XOR 会产生的结果,但没有运气。我希望避免比较,但看起来我别无选择。
如果您有兴趣,可以查看 instruction set .
顺便说一句,这个 CPU 非常适合学习汇编。很好,很简单,而且足够慢(768kHz),机器语言明显比使用 BASIC 内置的计算机快;)我通常用 C/C++/Java 编程。 assembly 已经呼吸到了新鲜空气。
最佳答案
从 bool 代数我们知道:
A XOR B = (NOT(A) AND B) OR (A AND NOT(B))
NOT
指令,它可以通过算术求反和减法来模拟,假设 2 的补码负数表示):
NOT(A) = (-1) - A
-1
可以替换为相应的存储类型最大值(即 8 位寄存器为 255 或 16 位寄存器为 65565)。
关于assembly - 如何在没有 XOR 指令的 CPU 上进行 XOR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32018545/
我是一名优秀的程序员,十分优秀!