  |  Notiamo subito che 
	non ci sono 
	riferimenti irrisolti, cioè tutte le 
	etichette coinvolte come operando nelle 
	istruzioni (presenti a destra dei rispettivi 
	mnemonici, nell'esempio JMP 
	 e 
	CALL) 
	sono definite  dentro il codice ASM, come 
	previsto, nella prima colonna a sinistra (vedremo che, in caso contrario, 
	sarà necessario coinvolgere la direttiva 
	
	 EXTRN
            
            per assicurare la compilabilità del programma). | 
	  | In ogni caso l'indirizzo iniziale dal quale comincia la compilazione è di norma
    indicato dalla   direttiva
     ORG:
    nel nostro esempio (ORG
                0100H) il primo byte della
    prima istruzione sarà dunque associato all'indirizzo 
	0100H
    (pari a 256, in decimale, sebbene convenga abituarsi a considerare 
    irrilevante questa precisazione), valore con cui sarà caricato anche il
	contatore di programma, cioè il
	registro IP (Instruction
	Pointer) con cui la CPU punterà le istruzioni da eseguire. Vediamo che cosa succede:
  	
		  | prima istruzione
        (INIZIO: JMP Main):  
    	
			  | l'assemblatore riconosce 
			la parola INIZIO 
			come etichetta
            e le associa subito il valore corrente del contatore (0100H). |  
			  | la parola che segue (JMP,
      salto) deve essere 
			contenuta nella   
			tabella
        di conversione: naturalmente la trova e le associa subito il numero (codice operativo) E9H 
      o EBH di solito ad essa associato |  
			  | poiché sa che la parola JMP corrisponde ad un'istruzione che ha bisogno di un operando
            che esprime un indirizzo, annota la parola che segue (Main)
            e poiché non conosce ancora il numero esadecimale a 16 bit che le
            corrisponde (deve ancora trovare l'etichetta  
      con il
            medesimo nome) la traduce momentaneamente con i 2 bytes 00H,
            00H; l'istruzione
            è  comunque codificata con 3 bytes  
      		 |  
			  |  come   
      decritto qui in dettaglio, 
      è curioso osservare come l'assemblatore sia in grado di capire (prima di 
      ultimare il suo lavoro) se si tratta di un salto 
      vicino (NEAR, nel range 32767 in avanti e 32768 indietro) o 
      corto (SHORT, nel range 127 in avanti e 
      128 indietro) |  
			  | nel primo caso 
      l'istruzione è codificata con codice operativo  E9H 
      seguito da una word con segno |  
			  | nel secondo caso 
      l'istruzione è codificata con codice operativo  EBH 
      seguito da un byte con segno; poichè il terzo 
      bytes previsto dal codice mnemonico non è necessario, l'assemblatore lo 
      codifica con 90H, 
      NOP. |  
			  | in entrambi i casi  sia 
      la word che il byte 
      esprimono il numero di locazioni da saltare in avanti o indietro per 
      raggiungere la locazione associata all'etichetta
        (Main, 
      nel nostro caso) |  
			  | poiché sa che l'istruzione  JMP Main
            è  comunque codificata con 3 bytes  (E9H, 
      loH,
            hiH o EBH,
      xyH,
            90H) aggiorna il 
			contatore portandolo
            al valore 0103H (appunto 0100H + 3) |  
		 
		 |  
	 
	
		  | seconda
        istruzione (KeyWait: MOV AH,00H ;Aspetta la pressione):  
    	
			  | la parola KeyWait
            è riconosciuta come etichetta:
            l'assemblatore le associa subito il numero corrente del 
			contatore (0103H). |  
			  | la parola che segue (MOV)
            viene trovata in tabella; l'assemblatore capisce che si tratta di
            un'istruzione che ha diverse possibilità di codifica e stabilisce il 
			corretto codice operativo in funzione
            dei 2 operandi che seguono: se le parole che seguono
            sono  AH,00H
            il codice operativo che corrisponde alla
            stringa è B4H e il secondo operando è
            numerico, il byte 00H.  |  
			  | nella analisi della riga di istruzione
            trova 
         ;Aspetta la pressione,
            ma non cerca di interpretarne il significato perchè è istruito ad
            ignorare qualunque stringa Ascii successiva a ;
            (punto e virgola),
            ritenendola un commento. |  
			  | poiché  sa che l'istruzione 
         MOV AH,00H 
            
            è esprimibile con 2 bytes (B4H,
            00H) aggiorna il 
			contatore 
            portandolo
            al valore 0105H (appunto 0103H + 2). 
			 |  
		 
		 |  
		  | Tutte le altre
        istruzioni sono trattate con la medesima filosofia. |  
	 
	 |