;
;					ESEMPIO 1.10
;
;				Autore: Mikel Etxebarria
;			(c) Microsystems Engineering (Bilbao)
;
;Esempio per simulazione
;
;Converti il valore binario presente in posizione 0x10, compreso tra 0 e 9, nel suo
;equivalente in codice GRAY
;
;Questo esempio cerca di abituare l'utente all'utilizzo di tabelle
		
		List	p=16F84		;Tipo di processore
		include	"P16F84.INC"	;Definizioni di registri interni

Bcd		equ	0x10		;Valore BCD iniziale
Gray		equ	0x11		;Valore ottenuto in codice GRAY

		org	0x00		;Vettore di Reset
		goto	Inizio

		org	0x05		;Salva il vettore di interrupt

Tabel		addwf	PCL,F		;Calcola spostamento sulla tabella
		retlw	b'00000000'	;Codice GRAY della cifra 0
		retlw	b'00000001'	;Codice GRAY della cifra 1
		retlw	b'00000011'	;Codice GRAY della cifra 2
		retlw	b'00000010'	;Codice GRAY della cifra 3
		retlw	b'00000110'	;Codice GRAY della cifra 4
		retlw	b'00000111'	;Codice GRAY della cifra 5
		retlw	b'00000101'	;Codice GRAY della cifra 6
		retlw	b'00000100'	;Codice GRAY della cifra 7
		retlw	b'00001100'	;Codice GRAY della cifra 8
		retlw	b'00001101'	;Codice GRAY della cifra 9

Inizio	        movf	Bcd,W		;Carica il valore BCD originale
		call	Tabel		;Converti in GRAY
		movwf	Gray		;Conserva il risultato

Stop		nop	   		;Metti breakpoint di arresto
		nop

		end			;Fine del programma principale
