Le istruzioni logiche sono AND, OR e
XOR (OR
esclusivo). Il primo operando e la destinazione del risultato
è sempre l'accumulatore, che perciò viene
sottinteso nell'istruzione.
Vediamo i casi possibili con l'istruzione AND (le istruzioni OR e XOR sono perfettamente analoghe):
E' importante notare che l'istruzione viene effettuata bit a bit. Per esempio, supponiamo che l'accumulatore contenga il valore:
A = (10110101)2 = (181)10
e di effettuare l'operazione:
AND 0Fh
Siccome 0Fh = (00001111)2 il risultato finale effettuato bit a bit è
(10110101)2 & (00001111)2 = (00000101)2 = (5)10
L'operazione logica è in realtà costituita da 8 identiche operazioni logiche in parallelo, una per ciascun bit e indipendentemente un bit dall'altro.
Le operazioni logiche modificano il flag di Zero, che viene attivato se tutti i bit del risultato
sono zero. Per questo motivo, sono molto utili per "isolare" e testare
gruppi di bit. Per esempio se eseguiamo, come nell'esempio visto prima,
l'istruzione
AND 0Fh
il risultato è quello di azzerare i primi 4 bit più significativi dell'accumulatore (il valore 0Fh viene detto maschera e si dice che l'accumulatore viene mascherato per mezzo di 0Fh). A questo punto, testando il flag Zero è possibile stabilire se i 4 bit meno significativi dell'accumulatore erano uguali a zero oppure no. Usando maschere opportune è possibile in questo modo selezionare qualasiasi gruppo di bit e anche un bit singolo del regitstro A.
L'istruzione NEG effettua il complemento a 2 dell'accumulatore. La sintassi di uso è semplicemente:
NEG
e il risultato è equivalente a A = 0 - A.
Volendo invece semplicemente invertire i bit dell'accumulatore (cioè realizzare un NOT logico), si può calcolare l'OR esclusivo (XOR) con la costante 11111111 (FFh).
Sito realizzato in base al
template offerto da
http://www.graphixmania.it