我一直在试图弄清楚如何在汇编中进行nand按位运算,但一直没有成功。我试着编写一个逻辑门模拟器,它基本上会为输入A和B
生成这个真值表A | B || F ----------------- lo | lo || hi lo | hi || hi hi | lo || hi hi | hi || lo
我已经尝试了一切。
and $t3,$t1,$t not $t4,$t3
不能产生正确的输出
答案 0 :(得分:1)
当然可以,看看真相表:
A B And Nand
---------------------
lo lo lo hi
lo hi lo hi
hi lo lo hi
hi hi hi lo
正如您所看到的,您可以通过否定先前的anded值来获取nand值。但是你可能忘记了and
和not
对寄存器的每一位进行操作。我认为你混淆了布尔值,其中(通常)假定任何非零值都为真。因此,
11101001 nand 01000111 =
= ~ (11101001 and 01000111) =
= ~ 01000001 =
= 10111110
,因为
1 and 0 = 0
1 and 1 = 1
1 and 0 = 0
0 and 0 = 0
1 and 0 = 0
0 and 1 = 0
0 and 1 = 0
1 and 1 = 1
下次你也应该发布预期结果和实际结果,这样我们就可以更容易地理解出了什么问题。