Differenze tra le versioni di "Assembly/Rappresentazione dati/Operazioni logiche"

nessun oggetto della modifica
(Nuova pagina: {{Linguaggio Assembly}} Oltre ad operazioni aritmetiche, con i bit, possiamo eseguire anche operazioni logiche. Le quattro principali operazioni logiche sono AND, OR (O inclusivo), XOR...)
 
-----|---|---
1 | 0 | 1
 
==L'operazione OR==
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==
L'operazione XOR, restituisce 1, se il primo valore O il secondo, ma non entrambi sono settati ad 1. Altrimenti restituisce 0.
Quindi:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 0
 
In tabella:
 
XOR | 0 | 1
-----|---|---
0 | 0 | 1
-----|---|---
1 | 1 | 0
 
==L'operazione NOT==
L'operazione NOT, a differenza delle altre, hanno 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==
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''
154

contributi