muchas gracias a todos por las sugerencias me sirvieron para realizar la rutina de multiplicacion.
ya pude realizar la conversion, lo hice a traves de la multiplicacion de los equivalentes entre voltios y grados.
la multiplicacion me genera un numero de 32 bits que tengo que pasar a bcd para poder mostrarlo por el lcd, pero la rutina que hice es para un numero de 16 bits e intente pasarlo a 32 y no me funciona.
esta es la rutina
BITS16_BCD
movlw .32
movwf contador
bcf STATUS,C
;clrf contador
;bsf contador,4
clrf BCD_0
clrf BCD_1
clrf BCD_2
goto LOOP_16
LOOP_16
rlf resultph, F ; aqui guardo el numero de 32 bits
rlf resultpl, F
rlf resulth, F
rlf resultl, F
rlf BCD_2, F ;aqui guardare el resultado de la conversion
rlf BCD_1, F
rlf BCD_0, F
decfsz contador, F
goto AJUSTE
AJUSTE movlw 0x33 ; BCD = BCD+333333H
addwf BCD_2,F
addwf BCD_1,F
addwf BCD_0,F
movlw 0x03
btfss BCD_2,3 ; BCD(0>=8?
subwf BCD_2,F ; else: BCD(LSB) = BCD(LSB)-3
btfss BCD_1,3 ; then: BCD(HSB)>=8?
subwf BCD_1,F ; else: BCD(HSB) = BCD(HSB)-3
btfss BCD_0,3 ; then: BCD(USB)>=8?
subwf BCD_0,F else: BCD(USB) = BCD(USB)-3
movlw 0x30 ; then:
btfss BCD_2,7 ; BCD(4>=8?
subwf BCD_2,F ; else: BCD(LSB) = BCD(LSB)-30
btfss BCD_1,7 ; then:BCD(8:15)>=8?
subwf BCD_1,F ; else: BCD(HSB) = BCD(HSB)-30
btfss BCD_0,7 ; then: BCD(20:23)>=8?
subwf BCD_0,F ;
return
no he podido identificar en donde esta el error.
les agradeceria cualquie sugerencia