ELEMANIA
Z80 - Istruzioni logiche
Istruzioni logiche

Le istruzioni logiche sono AND, ORXOR (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):

        AND 0Fh          ; valore immediato (qui pari a 0Fh): A = A & 0Fh
        AND B             ; registro (A, B, C, D, E, H o L): A = A & B
        AND (HL)         ; locazione di memoria puntata da HL: A = A & (HL)
        AND (IX+4)      ; loc. puntata da IX +n: A = A & (IX+n)
        AND (IY+3)      ; loc. puntata da IY +n: A = A & (IY+n)

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)& (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).

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it