Omlouvám se, špatně sem si přečetl dotaz, ale aspoň je vidět, že když je člověk po noční a nespal celej den, že má jít radši spát.¨
Já používám toto, je to předělané na 18F, ale stačí upravit FSR a INDF podle řady PIC
;**************************************************************************
; Prevod 24 \ na DEC
; vstup C3,2,1
; pouziva FSR2, C1,C2,C3,TMP1,D1,D2
; vystup dec0 - 7
;**************************************************************************
BIN2dec
lfsr 2,dec0
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
clrf POSTINC2
movlw .24 ; Initiate bit loop
banksel D1
movwf D1
BITLOOP
banksel C1
rlcf C1, F ; Every iteration of this loop will copy the next
rlcf C2, F ; bit of the bin value, starting with the MSB,
rlcf C3, F ; to the carry flag
lfsr 2,dec0
movlw .8
movwf D2 ; The following is executed 8 times per bit
movff STATUS,TMP1
decLOOP
banksel 0
movff TMP1,STATUS
rlcf INDF2, F ; Multiply decn by two with carry, decn * 2 + C
movlw .246 ; See note above - test for decn > 9
addwf INDF2, W ; W = decn -10, if W = positive or zero, C = 1
btfsc STATUS, C ; decn has overflowed (>>9) if carry is set
movwf INDF2 ; If carry is set decn = decn - 10
movff STATUS,TMP1
incf FSR2L, F ; Carry is CARRIED over to next multiply
banksel D2
decfsz D2, F
goto decLOOP ; Multiply next decn
decfsz D1, F
goto BITLOOP ; Do next bit
retlw 0 ; Could be RETURN on most pics