| 
    
      
        | Esercitazioni
          PIC - Assembly |  
 Definizioni dell' ambiente di compilazione - list La linea: utilizza la direttiva LIST
  che abbiamo già vista, ma con l' opzione  X=ON , il che consente
di espandere le macro nel file di listato   .lst  ottenuto dalla compilazione.
  Espandere le macro vuol dire che, ogni volta che nel sorgente il compilatore
  ne incontra una, scriverà nel file di lista tutte le istruzioni che la
  compongono. Vedremo più avanti in cosa consistono queste macro.Se questo
non è desiderato, perchè può appesantire la lettura del listato, si sceglierà l' opzione
X=OFF oppure nulla, dato che questa è la scelta del default.
 Solitamente è utile avere una espansione delle macro quando si
usano per la prima volta e si vuole verificarne la consistenza, mentre nelle
versioni finali del listato è preferibile non espanderle, il che lo rende più
leggibile.
 La direttiva  LIST ha, in generale, la funzione di controllare la generazione del
  file di lista .lst. 
  Se non desideriamo che una parte del testo vi appaia, inseriremo la direttiva NOLIST,
  che blocca la generazione della lista fino a che il compilatore incontra una
  nuova direttiva  LIST.  Da notare che il file di lista  .lst  e l' oggetto della compilazione sono due
  cose ben differenti:
 
    la lista  .lst è un testo ASCII che riporta, sotto forma
      di elenco ordinato
      e formattato,  il risultato della compilazione. Comprende una lista
      delle istruzioni, sia come simboli che come valori esadecimali, i commenti
      ed anche un elenco dei simboli usati ed il loro valore assoluto. E' utile
      come documentazione, ma sopratutto per la consultazione durante il debug.
      E' la descrizione formale di quello che contiene il file oggetto.il file .hex è l'oggetto ottenuto della compilazione e contiene i codici binati che
      andranno scritti nella memoria del chip. File lista e file oggetto possono essere ottenuti dalla compilazione
  indipendentemente uno dall' altro. Il fatto di sopprimere tratti di testo
  nella lista con l' opzione NOLIST
  non comporta alcuna conseguenza sull' oggetto.
 I controlli di lista comprendono anche un PAGE
  che ha lo scopo di generare in form feed (salto pagina) nella stampa del
  listato. Questi comandi si possono inserire in qualsiasi momento nel sorgente e,
  come detto, non hanno alcun effetto sull' oggetto che risulta dalla
  compilazione, dato che il loro
  scopo è solo quello di formattare il file .lst.
 
  
    
      |  Possiamo notare una ulteriore particolarità: L' Assembler MPASM è case sensitive, ovvero distingue maiuscole e
        minuscole. In queste condizioni, ad esempio, i nomi imposti dal sorgente
        (label) saranno ritenuti diversi a seconda dei caratteri usati; così label
        è diverso da LABEL o da LAbel.
        Questa è l' impostazione di default, ma si può modificarla in modo da
        renderlo case insensitive.E' vivamente consigliato usare un ambiente case sensitive, in quanto
        permette di avere un numero molto maggiore di possibilità per i nomi (label).
 Per contro, i nomi riservati dall' Assembler, ovvero quelli delle
        direttive, degli opcodes, gli pseudo opcodes, le label interne, ecc.
        possono essere scritti tanto in maiuscolo che in minuscolo.Per cui, ad esempio, #INCLUDE
        sarà equivalente a #include
        e LIST potrà essere
        scritto list e così
        via.
 La scelta di una modalità è relativa al gusto personale, anche se può
        essere molto sensato utilizzare maiuscole e minuscole per identificare
        elementi del sorgente.
 I commenti, ovvero le parti di testo tra ;
        e fine riga, possono essere scritte come si desidera in quanto non
        entrano a far parte della compilazione.
       |    
  
 |