Test di uguaglianza

di il
6 risposte

Test di uguaglianza

Tratto dal libro.
Se il salto è del tipo "salta se uguale" si devono confrontare i due registri letti nello stadio ID per verificare se sono uguali.
Il test di uguaglianza può essere eseguito mettendo innanzitutto in OR esclusivo i bit corrispondenti, e poi mettendo in AND i risultati.


Non comprendo il test di uguaglianza.

OR esclusivo = XOR
a b | a xor b
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0

Se ad esempio ho due registri A=010 e B=010, A xor B = 000 e l'and come lo faccio?

6 Risposte

  • Re: Test di uguaglianza

    A quale assembler ti riferisci?
  • Re: Test di uguaglianza

    Non serve sapere di quale assembly parliamo dato che è un quesito teorico generale.

    Paolo ... ci si sta riferendo a bit ... ma forse c'è una inesattezza ... l'operazione tra registri deve essere XNOR che ha tavola della verità

    Input Output
    A B
    0 0 1
    0 1 0
    1 0 0
    1 1 1

    e quindi il tuo problema diventa

    010 xnor
    010
    ===
    1 and 1 and 1 = 1

  • Re: Test di uguaglianza

    And logico e vero solo quando tutti i bit sono posti a 1
    mentre lo xor e vero solo quando uno dei due bit e posto a 1
  • Re: Test di uguaglianza

    smalldragon ha scritto:


    and logico e vero solo quando tutti i bit sono posti a 1
    mentre lo xor e vero solo quando uno dei due bit e posto a 1
    Non serve lo xor ma lo xnor
  • Re: Test di uguaglianza

    C'era un refuso nel testo del libro e lo avevo risolto un pò di tempo fa ma ho dimenticato di comunicarlo.
    Oregon la tua soluzione va benissimo. Io l'avevo risolto come nell'allegato, ovvero una cascata di xor che finiscono in una nor.
    Grazie mille e buon primo maggio
    Allegati:
    14867_30e2d86e969140f1e4117af13ac6bb6f.png
    14867_30e2d86e969140f1e4117af13ac6bb6f.png
  • Re: Test di uguaglianza

    E' uguale perché una xor equivale ad una xnor seguita da un not e se sposti le not agli ingressi dell'and avrai una and con gli ingressi negati, ovvero una nor (teorema di De Morgan)

    Quindi

    010 xor
    010
    ===
    not(0 or 0 or 0) = 1
Devi accedere o registrarti per scrivere nel forum
6 risposte