|
|
|
|
|
|
|
N°
|
Nome |
Parametri |
Tipo |
Nome (significato) |
Descrizione |
1 |
ADDLW |
K |
B |
Add Literal to W |
Somma il valore della costante k a quello contenuto nel registro W w pone il risultato in W |
2 |
ADDWF |
f, d |
B |
Add W and f(t) |
Somma il valore del registro w & f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
3 |
ANDLW |
k |
B |
AND Literal with W |
Esegue un operazione di AND tra la costante k e il valore contenuto in W, pone il risultato in W |
4 |
ANDWF |
f,d |
B |
AND W with f |
Esegue un operazione di AND tra la costante e i |
|
|
|
|
|
valori contenuti nei registri W & f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
5 |
BCF |
f,b |
b |
Bit Clear f |
Pone a 0 il b-esimo bit del registro f |
6 |
BSF |
f,b |
b |
Bit Set f |
pone a 1 il b-esimo bit del registro f |
7 |
BTFSC |
f,b |
c |
Bit Test f, Skip if Clear |
Testa il b-esimo bit del ragistro f, |
|
|
|
|
|
* se vale 1 esegue l'istruzione successiva |
|
|
|
|
|
* se vale 0 salta l'istruzione successiva sostituendola con un comando NOP |
|
|
|
|
|
Questa istruzione viene eseguita in un ciclo macchina se il bit in questione vale 1, |
|
|
|
|
|
in due cicli macchina (uno per l'istruzione e uno per la NOP) se vale 0 |
8 |
BTFSS |
f,d |
c |
Bit Test f, Skip if Set |
Testa il b-esimo bit del ragistro f, |
|
|
|
|
|
* se vale 0 esegue l'istruzione successiva |
|
|
|
|
|
* se vale 1salta l'istruzione successiva sostituendola con un comando NOP |
|
|
|
|
|
Questa istruzione viene eseguita in un ciclo macchina se il bit in questione vale |
|
|
|
|
|
0, in due cicli macchina (uno per l'istruzione e uno per la NOP) se vale 1 |
9 |
CALL |
k |
c |
Call Subrutine |
Invoca la subrutine presente all'indirizzo k (naturalmente tale indirizzo è riferito alla memoria del codice) |
10 |
CLRF |
f |
B |
Clear f |
Pone a 0 il bit del registro f |
11 |
CLRW |
|
B |
Clear W |
Pone a 0 il bit del registro W |
12 |
CLRWDT |
|
B |
Clear WDT |
Pone a 0 il bit del registro WDT |
13 |
COMF |
f,d |
B |
Complement f |
Complementa il registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
14 |
DECF |
f,d |
B |
Decrement f |
Decrementa il registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
15 |
DECFSZ |
f,d |
B/c |
Decrement f, Skip if Clear |
Decrementa il registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
|
|
|
|
|
Inoltre se il registro f, a seguito dell'operazione di decrementamento, verrà posto a 0, allora salta |
|
|
|
|
|
l'istruzione successiva sostituendola con una istruzione NOP |
|
|
|
|
|
In quest'ultimo caso l'istruzione è eseguita in due cicli macchina, uno per l'istruzione e uno per la NOP |
16 |
GOTO |
k |
c |
Go To |
Esegue un salto incondizionato alla locazione k della memoria codice. Viene eseguita in 2 cicli macchina |
17 |
INCF |
f,d |
B |
Increment f |
Incrementa il registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
18 |
INCFSZ |
f,d |
B/c |
Increment f, Skip if Zero |
Incrementa il registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
|
|
|
|
|
Inoltre se il registro f, a seguito dell'operazione di decrementamento, verrà posto a 0, allora salta |
|
|
|
|
|
l'istruzione successiva sostituendola con una istruzione NOP |
|
|
|
|
|
In quest'ultimo caso l'istruzione è eseguita in due cicli macchina, uno per l'istruzione e uno per la NOP |
19 |
IORLW |
k |
B |
Inclusive or Literal with W |
Esegue un operazione di OR tra il valore k e il valore contenuto in W; il risultato viene posto in W |
20 |
IORWF |
f,d |
B |
Inclusive or W with f |
Esegue un operazione di Or tra il valore contenuto in W e quello contenuto nel registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
21 |
MOVF |
f,d |
B |
Move f |
* se d vale 1 il valore contenuto in f viene posto in f (utilizzato per scopi di Debug) |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
22 |
MOVLW |
k |
B |
Move Literal to W |
Inserisce nel registro W il valore k |
23 |
MOVWF |
f |
B |
Move W to f |
Mette il valore contenuto in W nel registro f |
24 |
NOP |
|
|
No Operation |
Nessuna operazione |
25 |
RETFIE |
|
c |
Return From Literal in W |
Termina l'esecuzione di una routine di interrupt e riporta l'esecuzione al punto nel quale è partita la |
|
|
|
|
|
richiesta d'interruzione. Viene sempre eseguita in due cicli macchina |
26 |
RETLW |
k |
c |
Return with Literal in W |
Termina l'esecuzione di una subroutine di interrupt, riportando l'esecuzione al punto in cui è stata |
|
|
|
|
|
chiamata la subrutine. Viene eseguita in due cicli macchina |
27 |
RETURN |
|
c |
Return |
Termina l'esecuzione di una subroutin, riportando l'esecuzione al punto in cui è stata richiamata la |
|
|
|
|
|
subroutine. Viene eseguita in due cicli macchina |
28 |
RLF |
f,d |
B |
Rotate Left througn Carry |
Esegue uno shift a sinistra dei bit presenti nel registro f. Il bit presente |
|
|
|
|
|
nel bit C del registro STATUS viene posto nella posizione 0 del risultato, il bit 7 del registro viene posto |
|
|
|
|
|
nel bit C del registro STATUS |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
29 |
RRF |
f,d |
B |
Rotate Right througn Carry |
Esegue uno shift a destra dei bit presenti nel registro f. Il bit presente nel bit C del registro STATUS viene |
|
|
|
|
|
posto nella posizione 7 del risultato, il bit 0 del registro viene posto nel bit C del registro STATUS |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
30 |
SLEEP |
|
c |
Sleep |
Pone il processore in modalità standby, Da tale modalità si uscirà in caso di interrupt (WDT input |
|
|
|
|
|
dall'esterno o al termine della scrittura su EEPROM, ma non da timer interno che cessa la sua |
|
|
|
|
|
funzione in modalità standby) oppure in caso di reset esplicito dell'esterno |
31 |
SUBLW |
k |
B |
Subtract Literal from W |
Sottrae il valore k dal valore contenuto nel registro W e pone il risultato in W |
32 |
SUBWF |
f,d |
B |
Subtract W from f |
Sottrae il valore contenuto in W da quello contenuto in f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
33 |
SWAPF |
f,d |
B |
Swap Nibbles in f |
Inverte la merà alta e quella bassa del registro f |
|
|
|
|
|
* se d vale 1 il risultato viene posto in f |
|
|
|
|
|
* se d vale 0 il risultato viene podto in W |
34 |
XORLW |
k |
B |
|
|