tengo problemas con esta rutina de multiplicación y no se porque no funciona, los numeros los carga bien pero el producto no lo hace, la suma de las unidades tambien lo hace bien, alguien podria echarme un amano??
Arit_BCD_Operacion ;Realiza la operacion:(10 * Resultado Anterior + W)
   movfw   Arit_Decenas
   movwf   Arit_Multiplicando ;(Resultado Anterior) -->(Multiplicando)
   clrf   Arit_Multiplicador   ; Carga el multiplicador con 10.
   movlw   .10
   movwf   Arit_Multiplicador
Arit_Multiplica_8Bit      ; En principio el resultado es cero.
   clrf   Arit_Producto   ;obtengo un resultado de 16 bit (2 REG de 8bit)
   movlw   .8         ; Carga el contador de 8 bits.
   movwf   Arit_ContadorBits
   movf   Arit_Multiplicando,W   ; Carga el multiplicando.   
Arit_MultiplicaBit8
   bcf      STATUS,C
   rrf      Arit_Multiplicador,1   ; Va a comprobar el siguiente bit del multiplicador.
   btfsc   STATUS,C      ; Si el bit del multiplicador es "1"
   addwf   Arit_Producto,1   ; suma el resultado parcial anterior más el multiplicando.
   rrf      Arit_Producto,1   ; Desplaza el resultado parcial un lugar hacia la 
                     ; derecha, introduciendo un "0" por la izquierda.
   decfsz   Arit_ContadorBits,1   ; ¿Ha multiplicado los 8 bits?
   goto   Arit_MultiplicaBit8   ; Repite la operación.
   movf   Arit_Unidades,W
   addwf   Arit_Producto,1   ; (10 * Resultado Anterior + W)
   return
es una rutina de cogida de la pagina de microchip
gracias