Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori PIC. Quinta puntata - 6

microcontrollori PIC programmazione

SUBLW k Questa istruzione esegue la sottrazione tra il registro W e k, ponendo il risultato in W, dura un ciclo macchina.

XORLW k
Questa istruzione esegue invece una operazione di OR esclusivo (EXOR) fra il registro W e k, ponendo il risultato in W. Necessita di un ciclo macchina.

ISTRUZIONI YTE ORIENTED
Sono 18 istruzioni, che permettono di operare con i byte del file registri: quelli di uso speciale e quelli di uso generale.

ADDWF f,d Questa istruzione permette di sommare il contenuto del registro W con un registro identificato dal suo indirizzo f. Il risultato verrà posto in W o nel registro f a seconda del valore di d, che può essere o 1 o 0. Se d vale 0, il risultato viene posto nel registro W, se vale 1 viene posto nel registro f. Se d viene omesso, il valore che viene utilizzato è 1, cioè viene utilizzata come destinazione del risultato il registro f (un ciclo macchina). Poniamo ad esempio di voler aggiungere al registro di indirizzo 0C, che è uno dei registri di uso generale, il numero 10 e porre il risultato nel registro stesso.


Questa istruzione esegue un'operazione di AND fra il registro W ed il registro di indirizzo f. Come sopra, se d vale 1, il risultato viene posto nel registro, se d vale 0 il risultato viene posto nel registro W(un ciclo macchina).


CLRF f Questa istruzione serve per azzerare il contenuto del registro di


indirizzo f (un ciclo macchina): CLRW Questa istruzione azzera il contenuto del registro W (un ciclo macchina).



COMF f,d L'istruzione COMF serve per effettuare l'operazione di complemento, ovvero vengono scambiati gli 0 con gli 1 e viceversa. Ad esempio, il complemento del numero binario 00101011 è 11010100. Ovviamente, tale operazione viene eseguita sul registro di indirizzo f, ed il risultato sarà posto in tale registro o nel registro W a seconda del valore di d, come per le precedenti istruzioni (un ciclo macchina).


DECF f,d Questa istruzione serve per decrementare il contenuto del registro di indirizzo f (un ciclo macchina).



DECFSZ f,d Questa istruzione esegue la stessa operazione della DECF ma se l'operazione di decremento ha dato come risultato 0, non viene eseguita l'istruzione immediatamente successiva (infatti SZ sta per Skip if Zero, cioè evita se il risultato è 0). Questa istruzione viene normalmente utilizzata in unione con delle istruzioni GOTO (da uno a due cicli macchina). Riprendendo il programma di esempio, vediamo le prime istruzioni della routine DELAY:



DELAY DECFSZ COUNT_1,1 GOTO DELAY



La prima istruzione, DECFSZ COUNT_1,1 decrementa il registro di indirizzo COUNT_1, che era stato definito da una EQU come registro di indirizzo 0C. Finché tale operazione di decremento non ha portato a 0 il contenuto del registro COUNT_1, verrà eseguita normalmente l'istruzione successiva, cioè la GOTO DELAY, che come abbiamo già visto riporta il programma all'etichetta DELAY. Quando però COUNT_1 raggiunge il valore 0, viene saltata l'istruzione immediatamente successiva, e quindi il programma può proseguire all'istruzione immediatamente successiva alla GOTO DELAY, uscendo cosi dal loop.



INCF f,d


INCFSZ f,d Queste due istruzioni si comportano esattamente come le istruzioni DECF e DECFSZ, con la differenza che anziché essere decrementato, il registro f viene incrementato di una unità (da uno a due cicli macchina).



IORWF f, d



XORWF f, d Le due istruzioni IORWF e XORWF effettuano rispettivamente l'operazione di OR logico fra il registro W ed il registro di indirizzo f (IORWF) e l'operazione di EXOR fra gli stessi operandi (XORWF); necessita di un ciclo macchina.



MOVF f, d Questa istruzione permette di spostare il contenuto del registro di indirizzo f o su se stesso oppure sul registro W, a seconda del valore di d. Anche se a prima vista sembrerebbe un'operazione inutile la copia di un file su se stesso, occorre ricordare che tale operazione va a modificare il bit di zero del registro di stato, che quindi può essere testato per verificare il contenuto del file stesso (un ciclo macchina).


MOVWF f


Questa istruzione serve per trasferire il contenuto del registro W nel registro di indirizzo f (un ciclo macchina).


NOP


Questa istruzione non esegue alcun tipo di operazione. Viene utilizzata solitamente per introdurre dei ritardi (un ciclo macchina).
RLF f, d
RRF f, d

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 2 utenti e 30 visitatori collegati.

Utenti online

Ultimi Commenti