Tutorials - PIC18

 

Il Set di istruzioni dei PIC18

 


Il Set di Istruzioni PIC

   Le istruzioni possono essere suddivise in tre gruppi, in funzione del loro raggio di azione : 

  1. Istruzioni orientate al controllo di registri o bytes (byte-oriented operations).
  2. Istruzioni oriente al controllo dei bits (bit-oriented operations).
  3. Istruzioni con argomenti numerici e di controllo (literal and control operations).
  4. Le istruzioni dedicate alla gestione delle tabelle (solo nei PIC18F)

Va ricordato, poi, che è possibile suddividere le istruzioni anche a seconda del genere di operando a cui sono associate; in questo caso si hanno :

  • istruzioni che sono associate ad un operando 
  • istruzioni che sono associate ad un operando e ad una destinazione
  • istruzioni che non necessitano di operando

 

Sintassi delle istruzioni

  Nelle tabelle seguente sono raccolte le istruzioni. Le colonne presentano :

  • il codice mnemonico
  • gli operandi 
  • la schematizzazione della funzione
  • il codice binario corrispondente
  • i flag interessati
  • il numero di cicli di esecuzione

 La convenzione scelta da Microchip comprende le seguenti attribuzioni :

Simbolo

 Cosa indica Note
a Access  Bank se a = 0 Access Bank attivo PIC18F
se a = 1 banco RAM  selezionato con BSR
b indirizzo (Data Memory)  
BSR Bank Select Register per indirizzare i banchi della Memoria Dati PIC18F
C Flag Carry dello STATUS  
DC Flag Digital Carry dello STATUS  
Z Flag Zero dello STATUS  
OV Flag Overflow dello STATUS PIC18F
N Flag Negative dello STATUS  
d è la destinazione di una operazione se d = 0 la destinazione è w  
se d = 1 la destinazione è f  
f è un registro generico, sia esso locazione di memoria, I/O o registro interno  
fs registro sorgente (indirizzo a 12 bit) di MOVFF PIC18F
fd registro destinazione (indirizzo a 12 bit) di MOVFF PIC18F
GIE Global Interrupt Enable bit  
k è un numero fisso (nella base, se specificata; altrimenti in quella di default)  
l come sopra  
label il nome della label  
mm Modalità di TBLPTR 
per l' accesso alle tavole
*     nessuna modifica
*+   post incremento
*-    post decremento
+*    pre incremento
PIC18F
n   PIC18F
PC    
PCL    
PCLATH    
PCLATU    
PD   PIC18F
PRODH   PIC18F
PRODL   PIC18F
s modo Fast dell' istruzione 
CALL o RETURN
se s = 0 modo normale PIC18F
se s = 1 Fast Mode attivato
TBLPTR   PIC18F
TABLAT   PIC18F
TO    
TOS   PIC18F
u    
WDT    
WREG
w
I PIC hanno un solo "accumulatore", chiamato work register o w attraverso il quale passa buona parte delle operazioni  
x    
zs   PIC18F
zd   PIC18F

 


Note
:
  • Nelle istruzioni che prevedono una scelta della destinazione del risultato dell' operazione, se la destinazione d non viene specificate, l' Assembler MPASM utilizza il suo default per completare l' istruzione; siccome questa potrebbe non essere la scelta voluta dal programmatore, MPASM genera un warning per avvertire.
  • Il campo di indirizzamento del registro f è limitato a 7 bit per i PIC16F e a 8 per i PIC18F

 


La sintassi tipica di una riga di istruzione è la seguente :

[Label]      opcode      obj, destination      ; commento

Gli elementi che la compongono sono questi :

  1. La Label è opzionale. Se viene inserita, deve iniziare obbligatoriamente nella prima colonna del testo.
     
  2. Tra la label e l' opcode deve esserci almeno uno spazio (o più spazi) o un TAB (    )
     
  3. Se manca la Label, l' opcode non deve iniziare nella prima colonna del testo. Sono opcode validi sia quelli del set di istruzioni, sia quelli accettati dal Macro Assembler, sia le macro correttamente dichiarate
     
  4. se l' istruzione necessita di un oggetto, deve essere inserito uno o più spazi o TAB
    - se non è previsto un oggetto, passare al punto 9
     
  5. L' oggetto dipende dall' istruzione. Sono oggetti validi numeri nei formati accettati dall' Assembler e Label
     
  6. se l' oggetto include una destinazione, tra oggetto e destinazione va inserita una virgola, altrimenti passare al punto 9
     
  7. Per le istruzioni che hanno una possibile scelta della destinazione, essa va indicata in modo corretto
    - se la destinazione è un bit in un byte, va indicata la posizione del bit con un numero da 0 (LSB) a 7 (MSB) oppure con la label opportuna
    - se la destinazione è il file o w, va indicata con 1 o 0 oppure con la label di riferimento
     
  8. non occorre inserire spazi o tabulazioni nella sequenza obj,destination
     
  9. se la linea ha un commento, occorre separarlo con uno o più spazi o TAB
     
  10. il commento inizia con ; dopo di che si può inserire un qualsiasi testo fino alla lunghezza massima della riga

 


 

 

 

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