Tutorials - PIC - Corso A&C

 

Esercitazioni PIC - Assembly


La struttura del sorgente

  L' Assembly, tipicamente, si basa su una struttura a linee: ogni linea ha un valore proprio.

Per MPASM la lunghezza massima di una linea è 255 caratteri (spazi compresi). 

Una linea può contenere:

  1. una istruzione del set proprio del microcontroller usato (opcode) con i relativi operandi (se richiesti)

  2. una label

  3. un commento

  4. una direttiva dell' Assembler

  5. una macroistruzione

Se prendiamo un semplicissimo testo sorgente come esempio:

; Esempio di programma per microcontroller PIC

   
list p=16f876              ;definizione del processore
    #include p16f876.inc       ;include definizioni relative

 
__config _WDT_OFF & _BODEN_ON & _HS_OSC & _LVP_OFF

Dest  equ 0x0B                 ;definizione di una costante

     
org 0x0000               ;vettore di reset
     
goto Start

     
org 0x0020               ;inizio programma
Start movlw    0x0A
      andlw   
Dest,f
      bcf     
Dest, 3
      goto    
Start
      end

La sua struttura è questa:

label
|

opcode
direttive
macro
|

operandi
|

commento
|

; Esempio di programma per microcontroller PIC

riga vuota

list p=16f876 
#include p16f876.inc
;definizione del processore
;include definizioni relative

         riga vuota

__config _WDT_OFF & _BODEN_ON & _HS_OSC & _LVP_OFF

riga vuota

Dest equ 0x0B ;definizione di una costante

riga vuota

org 0x0000 ;vettore di reset
goto Start
          riga vuota
org 0x0020  ;inizio programma
Start movlw
andlw
bcf
 
goto
0x0A
Dest,f
Dest, 3 
Start
end

Va notato che una riga può contenere un singolo elemento, come l' ultima, ma anche più elementi, come la terza. E' importante, però, avere chiaro che ogni linea ha un valore di per se e deve essere scritta seguendo rigidamente le regole, che sono poche e semplici, ma la violazione delle quali non viene perdonata dall' Assembler, che le individuerà segnalando spietatamente anche il più piccolo errore sintattico o di uso.
Quindi, spazi, tab, segni particolari come : o ; non sono a caso, ma secondo le regole.
Tuttavia questo non impedisce di dare al testo una forma gradevole e nello stesso tempo ordinata, il che facilita di molto la rilettura.

E' possibile inserire anche righe completamente vuote nel sorgente, per formare spazi nella stampa della lista oppure anche utilizzare comandi dell' Assembler per formattare la lista (salto pagina, abilitazione e disabilitazione di parti della lista, ecc.).


Elementi del sorgente

Dall' esempio che stiamo considerando, si nota che un testo previsto per la compilazione assembler di un programma per processori PIC tipicamente prevede alcuni elementi fissi:

  1. intestazione e descrizione (commenti)
  2. definizione del processore
  3. include delle label relative
  4. configuration bytes
  5. definizione di costanti, variabili, RAM, ecc.
  6. posizionamento al vettore di reset
  7. istruzioni del programma
  8. chiusura della compilazione

Anche se normalmente si aggiungeranno commenti, strutture di condizionamento della compilazione, include di file esterni, ecc., i 7 punti qui sopra sono indispensabili in qualsiasi sorgente.
La loro sequenza logica è quella in cui sono scritti nel testo sorgente.

Li ritroviamo anche nell' esempio che stiamo utilizzando.

Vediamo ora maggiori dettagli.

 


 

 

Copyright © afg. Tutti i diritti riservati.
Aggiornato il 17/09/14.