hola amigos del foro, pues preguntando por alli me dijeron como hacerlo, se los voy a colocar aqui para ver q me dicen ustedes:
lo q me dijeron fue q utlizara tres registros y decrementaba el valor e incrementaba uno de ellos hasta q llegara a diez ( este serian las unidades), despues lo coloque en cero e incremento el segundo registro decrementando el valor claro esta, y asi hago lo mismo con el tercero y cuando el valor me de cero el numero que tenga en los registros va a ser el valor correspondiente a cada 7 segmentos, aqui les dejo el programa cualquier duda solo pregunten, despues les dejare todo el programa completo.
ORD_NUM MOVLW 0H
MOVWF UNIDADESS
MOVWF DECENASS
MOVWF CENTENASS
DECRE DECFSZ RESULTADO
CALL UNID
REGRESARR CALL MUX
RETURN
CEND INCF CENTENASS,1
BTFSS CENTENASS,1
GOTO DECRE
BTFSS CENTENASS,3
GOTO DECRE
GOTO REGRESARR
DECD CLRF DECENASS,1
INCF DECENASS,1
BTFSS DECENASS,1
GOTO DECRE
BTFSS DECENASS,3
GOTO DECRE
GOTO CEND
UNID CLRF UNIDADESS,1
INCF UNIDADESS,1
BTFSS UNIDADESS,1
GOTO DECRE
BTFSS UNIDADESS,3
GOTO DECRE
GOTO DECD
RETURN
el programa llega a donde dice UNID, desde alli empieza y el mux es la salida del sistema para los 7 segmentos.