He cometido un error, porque cuando estaba respondiendote, habia hecho varias soluciones posibles, una de ellas necesitaba la tabla invertida, y en realidad, para el ejemplo que he publicado no es correcto, error que el algoritmo de LabPIC ha arrastrado por mi culpa.
Asi que lo correcto es:
movf PORTA,W
sublw 0x09 ;9 - W -> W
movf PORTA,W
btfss STATUS,C
movlw .10 ;cargar W con Error!
call DISPLAY
DISPLAY addwf PCL,F ;Se le suma los datos del registro W, proveniente de la puerta A y se vuelve a
;guardar en el mismo registro PCL.Con este metodo es necesario invertir la tabla
retlw 3F ;Se define el cero para ser mostrado en el display.
retlw 06 ;Se define el uno.
retlw 5B ;Se define el dos.
retlw 4F ;Se define el tres.
retlw 66 ;Se define el cuatro.
retlw 6D ;Se define el cinco.
retlw 7D ;Se define el seis.
retlw 07 ;Se define el siete.
retlw 7F ;Se define el ocho.
retlw 6F ;Se define el nueve.
retlw XX ;aca pone el valor para la letra "E" de Error
END ;Se finaliza el programa.
tomando el codigo de LabPIC, quedaria asi:
movf PORTA,W
sublw 0x09 ;9 - W -> W
movf PORTA,W
btfss STATUS,C
movlw .10 ;cargar W con Error!
call DISPLAY
DISPLAY DT 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xXX
end; se finaliza el programa
Saludos.