Volem convertir un número d'una xifra (0 a 9) al seu codi ASCII. L'aplicació més típica és quan volem mostrar-lo en una pantalla.
El procediment és tan senzill com sumar a la xifra el codi ASCII del número zero. Cal tenir present que si la variable conté un número més gran que 9 el resultat pot ser qualsevol caràcter. Si tenim una variable qualsevol, podem primer convertir-la a BCD i després passar a ASCII cada un dels dígits.
Xifra EQU 0x20 ; Variable amb el valor que volem convertir
Ascii: ; Conversió a ASCII
movlw '0' ; Carrega el codi ASCII del número 0
; Sumant-li la xifra tindrem el codi ASCII
addwf Xifra,f ; Ara Xifra conté el caràcter ASCII
Quan convertim números de diverses xifres a ASCII, normalment ens interessa que els zeros a l'esquerra no surtin o, més ben dit, siguin espais en blanc. Cal, doncs, mirar cada xifra i si és zero substituir-la per un espai en blanc però només si les anteriors també ho són. El següent tros de programa s'agafa un número de 5 dígits BCD i el converteix a ASCII sense mostrar els zeros de l'esquerra. Els valors d'entrada i de sortida estan a un registre Resul de 5 posicions on el dígit de més pes és Resul+4 i el de menys és Resul.
Resul EQU 0x20 ; 5 bytes, Resul+4 són les desenes de miler Compta EQU 0x25 ; Comptador d'iteracions
movlw 5 ; Cal fer-ho 5 cops
movwf Compta ; Ho posem al comptador
movlw Resul+4 ; Adreça de la darrera xifra
movwf FSR ; Adreçament indirecte
movlw '0' ; Carrega el codi ASCII del número 0
; Sumant-li la xifra tindrem el codi ASCII
Bucle1:
addwf INDF,f ; Ho afegeix al dígit
decf FSR ; Decrementa FSR
decfsz Compta,f ; Decrementa el comptador
goto Bucle1 ; Si no és zero, repetim
movlw 4 ; Cal fer-ho 4 cops
movwf Compta ; Ho posem al comptador
movlw Resul+4 ; Adreça de la darrera xifra
movwf FSR ; Adreçament indirecte
Bucle2:
movf INDF,w ; Llegeix el dígit
xorlw '0' ; Compara amb 0
btfss ZERO ; Si Z està activat eren iguals
goto Final ; Si no eren iguals, ja estem
movlw ' ' ; Carrega un espai en blanc
movwf INDF ; Substitueix el 0 per l'espai
decf FSR ; Decrementa FSR
decfsz Compta,f ; Decrementa el comptador
goto Bucle2 ; Si no és zero, repetim
Final:

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.