por malaquias » 02 Jul 2009 23:15
Eu utilizo esta rotina:
;********************************************************************************
;* Rotina de conversão binário para decimal (8 bits) *
;********************************************************************************
BIN4DEC:
MOVWF D0 ;copia o número a ser convertido para a variável de unidades.
CLRF D1 ;limpa as dezenas.
BIN4DEC_2:
MOVLW 10 ;subtrai 10 decimal ...
SUBWF D0,W ;... do valor a ser convertido e guarda em W
BTFSS STATUS,C ;o resultado é positivo ou zero...
RETURN ;não ? então retorna, a conversão terminou
MOVWF D0 ;sim ? então copia o resultado em W para as unidades
INCF D1,F ;incrementa um nas dezenas
GOTO BIN4DEC_2 ;e reinicia o ciclo.
Grato.
Paulo Malaquias