La funció següent agafa el valor que hi ha a l'acumulador (un byte, valor de 0 a 255) i el converteix a BCD de tres xifres guardat en tres variables. L'acumulador retorna amb un zero.
El següent diagrama descriu el procediment:

El que fem és anar restant 100 a la variable fins que el resultat és negatiu (C = 0). Mentre el resultat és positiu, incrementem les centenes cada cop que restem 100. Després anem restant 10 a la variable fins que el resultat és negatiu. Mentre el resultat és positiu, incrementem les desenes cada cop que restem 10.
D1 EQU 0x20 ; Variable unitats D2 EQU 0x21 ; Variable desenes D3 EQU 0x22 ; Variable centenes
;
; Funció que converteix un número de 8 bits a BCD (3 dígits)
;
BCD:
clrf D3 ; Posa D3 (centenes) a zero
clrf D2 ; Posa D2 (desenes) a zero
movwf D1 ; Guarda W (valor a convertir) a D1
; D1 són les unitats
Cent: ; Anem a trobar les centenes (D3)
movlw 100 ; Carrega 100 decimal a W
subwf D1,w ; Li resta W a D1
btfss CARRY ; Mira C i si és 1 no fa la següent
; Si és 1 vol dir resultat positiu
goto Desen ; Si el resultat és negatiu les centenes ja estan
; el valor de W es perd i anem a les desenes
movwf D1 ; Guarda el resultat (W) a D1
incf D3,f ; La centena restada a D1 l'afegeix a D3
goto Cent ; Tornem-ho a fer
Desen: ; Anem a trobar les desenes
movlw 10 ; Carrega 10 decimal a W
subwf D1,w ; Li resta W a D1
btfss CARRY ; Mira C i si és 1 no fa la següent
; Si és 1 vol dir resultat positiu
goto Final ; Si el resultat és negatiu les desenes ja estan
; el valor de W es perd i anem a ASCII
movwf D1 ; Guarda el resultat (W) a D1
incf D2,f ; La desena restada a D1 l'afegeix a D2
goto Desen ; Tornem-ho a fer
Final:
retlw 0 ; Retorn amb un 0 a W

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