Tutorials - PIC18

 

Il Set di istruzioni dei PIC18

 


Il Set di Istruzioni 18F

Il set di istruzioni dei PIC18F è decisamente più ampio e realmente "ortogonale" se confrontato con quello dei mid-range.

Sono state aggiunte numerose istruzioni relative alle nuove possibilità , come la gestione di tabelle, l' indirizzamento indiretto e le operazioni sullo stack. Ma sono state implementate anche numerose istruzioni di test su bit e files e la moltiplicazione hardware.

Le tabelle seguenti riportano gli opcodes e le caratteristiche essenziali delle istruzioni ; in rosso le istruzioni addizionali del set 18F rispetto al set 16F.


 

BIT-ORIENTED OPERATIONS

Nell' area delle bit oriented, è stata aggiunta solo l' istruzione BTG , che è un utile toggle di un bit in un file.
Va però rilevato che, se gli mnemonici sono uguali a quelli della famiglia 16F, la sintassi delle istruzioni è modificata dall' aggiunta del modo di indirizzamento a nelle opzioni dell' oggetto.

Mnemonici
e
 Operandi

Schema operativo Cicli 16-Bit Instruction Word

Flags

BIT-ORIENTED OPERATIONS
BCF   f,b,a Bit Clear f 1 1001 bbba ffff ffff -
BSF   f,b,a Bit Set f 1 1000 bbba ffff ffff -
BTFSC  f,b,a Bit Test f, Skip if Clear 1
(2/3)
1011 bbba ffff ffff -
BTFSS  f,b,a Bit Test f, Skip if Set 1
(2/3)
1010 bbba ffff ffff -
BTG   f,b,a Bit Toggle f 1 0111 bbba ffff ffff -

 


 

CONTROL ORIENTED OPERATIONS

Qui c'è una maggiore ricchezza nelle operazioni di controllo : 
- è stata aggiunto un completo set di branch condizionali alla situazione dei flag dello STATUS, oltre ad un branch incondizionato, BRA. 
- si trova poi una istruzione per il supporto alle operazioni aritmetiche (DAW) e
- sono presenti due operatori per trattare il contenuto dello stack (POP e PUSH). 
- Inoltre è stata aggiunta una chiamata relativa (RCALL).
La sintassi di base delle istruzioni non è modificata rispetto alla famiglia 16F, così pure sono usati i vecchi mnemonici .
Va però notato che le istruzioni CALL e GOTO si sviluppano non su una, ma su due word a 16 bit ciascuna, in modo da avere un campo di indirizzamento diretto di 20 bit (FFFFFh, 1 Mword).


Mnemonici
e
 Operandi

Schema operativo Cicli 16-Bit Instruction Word

Status
Affected

Note
CONTROL  ORIENTED OPERATIONS
BC     n Branch if Carry 1
(2)
1110 0010 nnnn nnnn -  
BN     n Branch if Negative 1
(2)
1110  0110 nnnn nnnn -  
BNC    n Branch if Not Carry 1
(2)
1110 0011 nnnn nnnn -  
BNN    n Branch if Not Negative 1
(2)
1110 0111 nnnn nnnn -  
BNOV   n Branch if Not Overflow 1
(2)
1110 0101 nnnn nnnn -  
BNZ    n Branch if Not Zero 1
(2)
1110 0001 nnnn nnnn -  
BOV    n Branch if Overflow 1
(2)
1110 0100 nnnn nnnn -  
BRA    n Branch Unconditionally 2 1110 0nnn nnnn nnnn -  
BZ     n Branch if Zero 1
(2)
1110 0000 nnnn nnnn -  
CALL   n,s

Call Subroutine
        1st  word
        2nd word

2 1110 110s kkkk kkkk
1111 kkkk kkkk kkkk
-  
CLRWDT Clear Watchdog Timer 1 0000 0000 0000  0100 TO,PD  
DAW Decimal Adjust WREG 1 0000 0000  0000  0111 C  
GOTO    n

Go to Address 
        1st  word
        2nd word

2 1110 1111 kkkk kkkk
1111 kkkk kkkk kkkk
-  
NOP No Operation   0000 0000  0000 0000 -  
NOP No Operation 1 1111 xxxx xxxx xxxx -  
POP Pop Top of Return Stack (TOS) 1 0000 0000 0000  0110 -  
PUSH Push Top of Return Stack (TOS) 1 0000 0000  0000 0101 -  
RCALL   n Relative Call 2 1101 1nnn nnnn nnnn -  
RESET Software Device Reset 1 0000 0000 1111  1111 all  
RETFIE  s Return from Interrupt Enable 2 0000 0000  0001  000s

GIE/GIEH
GIEL/PEIE

 
RETLW   k Return with Literal in WREG 2 0000 1100 kkkk kkkk -  
RETURN  s Return from Subroutine 2 0000 0000 0001 001s -  
SLEEP Go into Standby mode 1 0000 0000 0000  0011 TO, PD  

 

 


 

 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 08/11/10.