5. Operazioni logiche con i numeri binari
Transcript
5. Operazioni logiche con i numeri binari
I Numeri Binari 5. Operazioni logiche con i numeri binari La funzione AND La funzione AND descrive l'effetto prodotto dalla logica ‘e’ (‘and’ in inglese) sulle variabili coinvolte (per esempio A e B): Il risultato dell’operazione AND è vera (uscita 1) se A e B sono entrambe vere. La Tabella di Verità per la funzione AND di A e B è dunque la seguente: A B AND 0 0 0 0 1 0 1 0 0 1 1 1 Possiamo vedere l’operazione logica AND tramite un semplice circuito. Le due variabili sono rappresentate da due interruttori (interruttore aperto corrisponde alla variabile posta a 0, interruttore chiuso corrisponde alla variabile posta a 1), mentre il risultato è dato dallo stato della ‘lampadina’ (il cerchio rosso, giallo, nero) che resta accesa (uscita 1) solo se passa la corrente, quindi se entrambi gli interruttori sono chiusi (posti a 1). La funzione AND è anche detta prodotto logico. Vediamo infatti analizzando la tabella di verità che se moltiplichiamo le due variabili A e B, otteniamo proprio il valore in uscita. Il processore 80x86 prevede l'istruzione omonima, AND, con operandi di tutte le dimensioni (a 8, 16, 32 bit, ...); con operandi a 8 bit vale l'esempio: Funzione AND 1011 0110 AND 0000 1111 = ------------0000 0110 Il funzionamento della AND sottolinea uno degli usi più raffinati di questa istruzione: quello di mascherare alcuni bit di un determinato dato; l'esempio mostra chiaramente che i bit del primo operando (1011 0110) che occupano la stessa posizione dei bit a 0 della maschera (0000 1111) sono azzerati (mascherati appunto) mentre gli altri mantengono il loro valore. www.cartebinarie.it La funzione OR La funzione OR descrive l'effetto prodotto dalla logica ‘o’ (‘or’ in inglese) sulle variabili coinvolte (per esempio A e B): Il risultato dell’operazione OR è vera (uscita 1) se A o B o entrambe sono vere La Tabella di Verità per la funzione OR di A e B è dunque la seguente: A B OR 0 0 0 0 1 1 1 0 1 1 1 1 Possiamo vedere l’operazione logica OR tramite un semplice circuito. Le due variabili sono rappresentate da due interruttori (interruttore aperto corrisponde alla variabile posta a 0, interruttore chiuso corrisponde alla variabile posta a 1), mentre il risultato è dato dallo stato della ‘lampadina’ (il cerchio rosso, giallo, nero) che resta accesa (uscita 1) solo se passa la corrente, quindi almeno uno degli interruttori è chiuso (posti a 1). La funzione OR è anche detta somma logica. Vediamo infatti analizzando la tabella di verità che se sommiamo A e B, otteniamo proprio il valore in uscita. Sebbene l'ultima combinazione (A=1,B=1) sembri dare 2 come risultato, non va dimenticato che gli operandi sono logici, non aritmetici, per cui 1+1=1, cioè vero + vero = vero. Il processore 80x86 prevede l'istruzione omonima, AND, con operandi di tutte le dimensioni (a 8, 16, 32 bit, ...); con operandi a 8 bit vale l'esempio: Funzione AND 1011 0110 OR 0000 1111 = ------------1011 1111 Il funzionamento della OR sottolinea uno degli usi più raffinati di questa istruzione: quello di mascherare alcuni bit di un determinato dato; l'esempio mostra chiaramente che i bit del primo operando (1011 0110) che occupano la stessa posizione dei bit a 1 della maschera (0000 1111) sono forzati a 1 (mascherati) mentre gli altri mantengono il loro valore. La funzione NOT La funzione NOT è diversa da tutte le altre in quanto coinvolge una sola variabile (A) ed ha il compito di restituirne il valore logico opposto. La Tabella di Verità per la funzione NOT di A è quindi molto semplice: www.cartebinarie.it A NOT 0 1 1 0 Se A è a 1 (vera) la funzione NOT=f(A) è a 0 (falsa), e viceversa. Il processore 80x86 prevede l'istruzione omonima, NOT, con operandi di tutte le dimensioni (a 8, 16, 32 bit, ...). In figura vediamo una possibile costruzione circuitale: se l’interruttore A è aperto (A = 0), la corrente passa tramite la lampadina accendendola (uscita = 1), altrimenti se l’interruttore è chiuse (A = 1), la corrente fluisce nella messa a terra lasciando spenta la lampadina (uscita = 0) La funzione NOT si presta perfettamente per implementare il meccanismo del complemento a 1. Vediamo nell’esempio seguente che l’operando è invertito bit a bit: Funzione NOT Complemento a 1 1011 0110 NOT ------------0100 1001 La funzione XOR L’ultima funzione logica che vediamo è l’OR ESCLUSIVO o XOR. La sua Tabella di Verità è la seguente: A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 Analizzando la tabella si capisce perché la funzione si chiama OR esclusivo, perché l’uscita è vera solo se A o B sono vere, ma non entrambe. Analizziamo ora la tabella della somma aritmetica vista al punto precedente, vediamo come il risultato coincida con il risultato della funzione logica XOR, mentre il riporto coincide con il risultato della funzione logica AND: A 0 0 1 1 B 0 1 0 1 Somma 0 1 1 0 Riporto 0 0 0 1 Fin dall’inizio c’è sempre stato un gap tra ambiente logico e ambiente aritmetico; la funzione XOR colma questo divario avvicinando i due ambienti, con una logica XOR è possibile simulare un'operazione aritmetica. www.cartebinarie.it Il processore 80x86 prevede l'istruzione omonima, XOR, con operandi di tutte le dimensioni (a 8, 16, 32 bit, ...); con operandi a 8 bit vale l'esempio: Funzione XOR 1011 0110 XOR 0000 1111 = ------------1011 1001 In parole più semplici, quello che fa la funzione XOR è quella di verificare o meno l’uguaglianza di due numeri bit a bit: la somma esclusiva di bit uguali tra loro è sempre 0 e, viceversa, la somma esclusiva di bit diversi tra loro è sempre 1. Un utilizzo tipico di questa funzione è quello di azzerare un determinato dato: effettuando l’operazione XOR di un numero con sé stesso, in uscita avremo un numero composto da soli zeri. Funzione XOR 1011 0110 XOR 1011 0110 = ------------0000 0000 www.cartebinarie.it