n и побитовая операция в сборке MIPS - PullRequest
0 голосов
/ 05 мая 2011

Я пытался выяснить, как выполнить битовую операцию 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 Ответ

1 голос
/ 05 мая 2011

Конечно, посмотрите на таблицу истинности:

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

Как видите, вы можете получить значения 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

В следующий раз, когда вы должны опубликовать как ожидаемые, так и фактические результаты, таким образом, нам будет легче понять, что пошло не так.

...