【问题标题】:nand bitwise operation in MIPS AssemblyMIPS程序集中的nand按位运算
【发布时间】:2011-05-05 16:46:34
【问题描述】:

我一直试图弄清楚如何在汇编中进行 nand 位运算,但没有成功。我试图编写一个逻辑门模拟器,它基本上会为输入 A 和 B 生成这个真值表

一个 |乙 || F ----------------- 罗 |罗||你好 罗 |你好||你好 嗨 |罗||你好 嗨 |你好||罗

我什么都试过了。

和 $t3,$t1,$t 不是 $t4,$t3

不产生正确的输出

【问题讨论】:

    标签: assembly logic bit-manipulation mips operation


    【解决方案1】:

    当然有,看看真值表:

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

    如您所见,您可以通过否定先前的与值来获得 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
    

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

    【讨论】:

    • 我是 MIPS 新手,请见谅。所以我想我应该只关心寄存器中值的最不重要的位。我不知道该怎么做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多