2011-05-05 38 views
0

我一直在試圖弄清楚如何在彙編中做一個nand按位操作,但一直不成功。我試圖編寫一個邏輯門模擬器,將基本上產生輸入A和B的真值表。在MIPS彙編中的nand按位操作

 

    A | B || F 
    ----------------- 
    lo | lo || hi 
    lo | hi || hi 
    hi | lo || hi 
    hi | hi || lo 

我試過了一切。

 
    and $t3,$t1,$t 
    not $t4,$t3 

不會產生正確的輸出

+4

是的,它的確如此... – gusbro 2011-05-05 17:14:51

回答

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 

下一次,你應該張貼預期和實際結果也是如此,這種方式更容易讓我們明白什麼地方出了錯。

+0

我是MIPS的新手,請原諒我。所以我想我應該只關注寄存器中最不重要的一點。我不知道該怎麼做 – 2011-05-06 02:32:13