Sintassi:
xorwf f,d
Operazione equivalente:
d = f XOR W (dove d può essere W o f)
Descrizione:
Questa istruzione effettua l'OR esclusivo (XOR) tra il valore contenuto
nell'accumulatore W ed il valore contenuto nel registro indirizzato dal
parametro f. Il parametro d è un flag che indica su
quale registro deve essere memorizzato il risultato.
Per d = W il risultato viene memorizzato nel registro
W
Per d = F il risultato viene memorizzato nel registro f
Questa istruzione influenza i bit Z del registro STATUS
che varrà 1 se il risultato dell'operazione è 0.
Esempio:
Ipotizziamo di dover effettuare lo XOR tra il registro W ed il registro REG1
da noi definito all'indirizzo 0CH con la direttiva:
REG1 EQU 0CH
possiamo utilizzare l'istruzione IORWF in due forme a seconda
di dove vogliamo mettere il risultato, ovvero:
xorwf COUNTER,F ;COUNTER = COUNTER XOR W
oppure:
xorwf COUNTER,W ;W = COUNTER XOR W
Note:
L'OR esclusivo (XOR) è un'operazione tra due bit in cui il bit
risultante vale 0 se i due bit sono uguali.
Spesso lo XOR viene utilizzato nell'assembler del PIC per effettuare la
comparazione tra due valori in mancanza di un'istruzione specifica.
Vediamo come:
ipotizziamo di avere un valore nel registro REG1 e di voler verificare
se è uguale a 57H. Le istruzioni da eseguire sono le seguenti:
movlw 57H ;W = Valore da comparare = 57H
;Risultato. W = 57H
xorwf REG1,W ;W = W XOR REG1 Effettua lo XOR con
;il valore in REG1
btfss STATUS,Z ;Salta l'istruzione seguente se il
;risultato dello XOR vale 0, ovvero
;se il valore di REG1 e' pari a 57H
goto diverso ;Salta se diverso da 57H
goto uguale ;Salta se uguale da 57H
|