Vai al contenuto

Assembly/Rappresentazione dati/Operazioni logiche

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Oltre ad operazioni aritmetiche, con i bit, possiamo eseguire anche operazioni logiche. Le quattro principali operazioni logiche sono AND, OR (O inclusivo), XOR (O esclusivo) e NOT.

L'operazione AND

[modifica | modifica sorgente]

L'operazione AND, restituisce 1, solo se entrambi i valori di partenza sono impostati ad 1.
Quindi:

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

Se volessimo fare una tabella:

 AND | 0 | 1 
-----|---|---
  0  | 0 | 0
-----|---|---
  1  | 0 | 1

L'operazione OR

[modifica | modifica sorgente]

L'operazione OR, restituisce 1, se il primo valore, il secondo, o entrambi sono settati ad 1. Altrimenti, se entrambi sono settati a 0, restituisce 0 Quindi:

0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1

In tabella:

OR | 0 | 1
---|---|---
 0 | 0 | 1
---|---|---
 1 | 1 | 1

L'operazione XOR

[modifica | modifica sorgente]

L'operazione XOR, restituisce 1, se il primo valore o il secondo, ma non entrambi sono settati ad 1. Altrimenti restituisce 0. Quindi:

0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0

In tabella:

 XOR | 0 | 1
-----|---|---
  0  | 0 | 1
-----|---|---
  1  | 1 | 0

Più semplicemente, si può dire che dà 1 se gli operandi sono diversi, 0 se sono uguali

L'operazione NOT

[modifica | modifica sorgente]

L'operazione NOT, a differenza delle altre, ha un solo valore in entrata. Restituisce 1, se il valore era 0, restituisce 0, se il valore era 1 Quindi:

NOT 0 = 1
NOT 1 = 0

In tabella:

 NOT | 0 | 1 |
-----|---|---|
     | 1 | 0 |

Operazioni su bytes

[modifica | modifica sorgente]

Se anziché dare un solo bit in entrata, diamo un intero byte (o una word o qualunque altra cosa), le operazioni logiche lavorano così:

1 0 1 0 0 1 0 1 AND
0 1 0 1 1 1 0 1 =
---------------
0 0 0 0 0 1 0 1

Oppure

1 0 1 0 0 1 0 1 OR
0 1 0 1 1 1 0 1 =
---------------
1 1 1 1 1 1 0 1

Ancora

1 0 1 0 0 1 0 1 XOR
0 1 0 1 1 1 0 1 =
---------------
1 1 1 1 1 0 0 0

Infine

NOT 1 0 1 0 0 1 0 1 =
    ---------------
    0 1 0 1 1 0 1 0

Non è molto difficile. Esegue l'operazione su tutti i bit come se fossero separati. Questo metodo di operazione si chiama bitwise o bit-by-bit

Modulo precedente

Operazioni aritmetiche con numeri binari ed esadecimali

Torna a

Assembly

Modulo successivo

Operazioni di shift su bits