  | Ci sono errori dovuti all'inesperienza
    e all'ignoranza delle regole
    (normalissima in tutti noi, nelle prime fasi di apprendimento) che bloccano
    il processo di creazione del nostro eseguibile, impedendo al compilatore di
    proseguire; vediamo di
    elencare i più probabili e comuni:
  
      | gli operandi numerici delle
        istruzioni sono numeri binari espressi di norma in esadecimale; quelli a
        8 bit vanno da 00H a FFH,
        quelli a 16 bit da 0000H a 
    FFFFH.
        Il problema sta nel fatto che, a noi sembra ragionevole scriverli così
        come abbiamo appena fatto, dopo la virgola, nell'istruzione; ma
        l'assemblatore non ne vuole sapere: dopo MOV
        AX,FFFFH segnala errore!
          
      
      
        test01.ASM(5): error A2009: Symbol not defined:
        FFFFH 
         
        0 Warning Errors 
              1 Severe  Errors | 
       
     
L'istruzione deve essere corretta con
        MOV AX,0FFFFH:
        la fredda logica dell'assemblatore ha
        colpito ancora: per esso FFFFH
        non è un numero ma un'etichetta
        e come tale segnala errore perchè  questo  simbolo non esiste (nessuno lo
        ha definito, nel programma sorgente).
         |  
   
  
      
          
            | 
          Ricorda:
            i  numeri esadecimali che  cominciano per lettera (per esempio A5H
            o FFFFH)
            devono essere scritti  con uno  0 davanti (0A5H
            o 0FFFFH);
            solo così l'assemblatore li riconosce come numeri (ed evita di
            segnalare errore...) | 
       
     
  
      | un altro errore che non perdona è il
        banale scambio di una  O per uno
        0; tutti prima o poi ci cascano e, per
        la fretta scrivono, per esempio,  MOV
        AL,OOH:      
      
      
        test02.ASM(5): error A2009: Symbol not defined: OOH  
        
         
        0 Warning Errors 
              1 Severe  Errors | 
       
     
    
    Naturalmente dovremo scrivere MOV
        AL,00H; l'errore è dello stesso tipo
        del precedente: l'assemblatore ha preso (giustamente) il nostro
        "numero" per un'etichetta
        e segnala errore perchè il simbolo 
        OOH non esiste (nessuno lo
        ha definito, nel programma sorgente).
 
     |  
      | le istruzioni vanno imparate con pazienza
        e determinazione; bisogna ricordarsi che talune di esse lavorano con
        operandi predefiniti; così, per esempio, una situazione all'inizio
        piuttosto frequente è quella di passare operandi a 8 bit a istruzioni
        che trattano con quelli a 16 bit (come per esempio PUSH e POP);
        l'istruzione  PUSH AL genera errore:      
      
      
        test03.ASM(5): error A2058: Byte register illegal 
         
      0 Warning Errors 
              1 Severe  Errors | 
       
     
    deve essere corretta con
        PUSH AX,
        e lo stesso vale per POP. |  
   
   |