Hey,
also ich mache es mit zwei Unterprogrammen:

1. Zerlegen in 3 Dezimalzahlen
Code:
; ----------------------------------------------------------------
; Variablen im RAM 
; ----------------------------------------------------------------
	cblock	
      bcdE                                ; Einerstellen
      bcdZ                                ; Zehnerstellen
      bcdH                                ; Hunderterstellen
	endc

; ----------------------------------------------------------------
; Funktion zum Wandeln einer 8 Bit Binaerzahl in 3 Stellen bcd
; Uebergabe ist w Register
; Ergebnisse in bcdE, bcdZ, bcdH
; ----------------------------------------------------------------
binbcd:     clrf        bcdH              ; bcdH loeschen
            clrf        bcdZ              ; bcdZ loeschen
            movwf       bcdE              ; w nach bcdE
bcd1:       movlw       0x0a              ; lade w mit 10
            subwf       bcdE,w            ; bcdE - 10 in w
            btfss       STATUS,C          ; bcdE < 10 ?
            goto        bcd2              ; ja -> bcd2
            movwf       bcdE              ; nein -> bcdE - 10
            incf        bcdZ,f            ; bcdZ + 1
            movlw       0x0a              ; lade w mit 10
            subwf       bcdZ,w            ; bcdZ - 10 in w
            btfss       STATUS,C          ; bcdZ = 10 ?
            goto        bcd1              ; nein -> bcd1
            clrf        bcdZ              ; ja -> bcdZ = 0
            incf        bcdH,f            ; bcdH + 1
            goto        bcd1              ; gehe zu bcd1

bcd2:       return
2. Umwandeln in 7-Segment Code
Code:
;************************************************************************************************************************************
; Tabelle der Siebensegmentcodes von 0 bis 9 an RB1...RB7
;************************************************************************************************************************************
tab		addwf	PCL,1		; Addiert W und PCL. Ergebnis steht in PCL,was Sprung zum entsprechenden Ausgabewert ergibt
		retlw	0x7E		; 0
		retlw	0xC			; 1
		retlw	0xB6		; 2
		retlw	0x9E		; 3
		retlw	0xCC		; 4
		retlw	0xDA		; 5
		retlw	0xFA		; 6
		retlw	0xE			; 7
		retlw	0xFE		; 8
		retlw	0xDE		; 9

Hoffe es hilft dir.

Gruß Carsten