MIPS汇编中的nand按位操作

时间:2011-05-05 16:46:34

标签: assembly logic bit-manipulation mips operation

我一直在试图弄清楚如何在汇编中进行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

不能产生正确的输出

1 个答案:

答案 0 :(得分:1)

当然可以,看看真相表:

A    B    And   Nand
---------------------
lo   lo   lo    hi
lo   hi   lo    hi
hi   lo   lo    hi
hi   hi   hi    lo

正如您所看到的,您可以通过否定先前的anded值来获取nand值。但是你可能忘记了andnot对寄存器的每一位进行操作。我认为你混淆了布尔值,其中(通常)假定任何非零值都为真。因此,

   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

下次你也应该发布预期结果和实际结果,这样我们就可以更容易地理解出了什么问题。