n и побитовая операция в сборке MIPS

Я пытался выяснить, как сделать битовую операцию nand в сборке, но безуспешно. Я пытался написать симулятор логических элементов, который будет по существу производить эту таблицу истинности для входов A и B

   A | B || F
  -----------------
   вот | вот || Привет
   вот | привет || Привет
   привет | вот || Привет
   привет | привет || вот

Я перепробовал все.

  и $t3,$t1,$t  
  не $t4,$t3

Не выдает правильный вывод

1 ответ

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

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

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

Другие вопросы по тегам