Ahora lo he puesto asi y parece que funciona, lo único que pasa es que empieza desde 6 no desde cero como es de suponer.Pero por lo menos ya trabaja algo el programa.
Gracias a todos por responder.
Gracias a todos por responder.
Código:
CALL MAYOR
SUBLW 0X00
BTFSS STATUS,Z
GOTO ES_CERO
CALL MAYOR_1
SUBLW 0X00
BTFSS STATUS,Z
GOTO UNO
CALL MAYOR_2
SUBLW 0X00
BTFSS STATUS,Z
GOTO DOS
CALL MAYOR_3
SUBLW 0X00
BTFSS STATUS,Z
GOTO TRES
CALL MAYOR_4
SUBLW 0X00
BTFSS STATUS,Z
GOTO CUATRO
CALL MAYOR_5
SUBLW 0X00
BTFSS STATUS,Z
GOTO CINCO
CALL MAYOR_6
SUBLW 0X00
BTFSS STATUS,Z
GOTO SEIS
CALL MAYOR_7
SUBLW 0X00
BTFSS STATUS,Z
GOTO SIETE
CALL MAYOR_8
SUBLW 0X00
BTFSS STATUS,Z
GOTO OCHO
CALL MAYOR_9
SUBLW 0X00
BTFSS STATUS,Z
GOTO NUEVE
CALL MAYOR_10
MAYOR
MOVF DATO1H,W
SUBLW 0x00
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x00
BTFSS STATUS,C
RETLW .0
RETLW .1 ; si DATO1<CONSTANTE
MAYOR_1
MOVF DATO1H,W
SUBLW 0x00
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x66
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_2
MOVF DATO1H,W
SUBLW 0x00
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0xcc
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_3
MOVF DATO1H,W
SUBLW 0x01
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x33
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_4
MOVF DATO1H,W
SUBLW 0x01
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x99
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_5
MOVF DATO1H,W
SUBLW 0x01
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0xff
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_6
MOVF DATO1H,W
SUBLW 0x02
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x65
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_7
MOVF DATO1H,W
SUBLW 0x02
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0xcc
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_8
MOVF DATO1H,W
SUBLW 0x03
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x32
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_9
MOVF DATO1H,W
SUBLW 0x03
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0x98
BTFSS STATUS,C
RETLW .0
RETLW .1
MAYOR_10
MOVF DATO1H,W
SUBLW 0x03
BTFSS STATUS,C ; BRINCA SI DATO2H>=DATO1H
RETLW .0 ; DEVUELVE 0 INDICANDO QUE DATO1>DATO2
BTFSS STATUS,Z ; BRINCA SI NULO
RETLW .1 ; DEVUELVE 1 INDICANDO QUE DATO1<DATO2
MOVF DATO1L,W ; COMPARA LA PARTE BAJA CUANDO LAS PARTES ALTAS SON IGUALES
SUBLW 0xff
BTFSS STATUS,C
RETLW .0
RETLW .1
ES_CERO
CLRF PORTD
BSF DIS_A
BSF DIS_D
BSF DIS_F
BSF DIS_E
BSF DIS_B
BSF DIS_C
GOTO INICIO
UNO
CLRF PORTD
BSF DIS_B
BSF DIS_C
GOTO INICIO
DOS
CLRF PORTD
BSF DIS_A
BSF DIS_B
BSF DIS_G
BSF DIS_E
BSF DIS_D
GOTO INICIO
TRES
CLRF PORTD
BSF DIS_A
BSF DIS_B
BSF DIS_G
BSF DIS_C
BSF DIS_D
GOTO INICIO
CUATRO
CLRF PORTD
BSF DIS_F
BSF DIS_G
BSF DIS_B
BSF DIS_C
GOTO INICIO
CINCO
CLRF PORTD
BSF DIS_A
BSF DIS_F
BSF DIS_G
BSF DIS_C
BSF DIS_D
GOTO INICIO
SEIS
CLRF PORTD
BSF DIS_A
BSF DIS_F
BSF DIS_G
BSF DIS_E
BSF DIS_C
BSF DIS_D
GOTO INICIO
SIETE
CLRF PORTD
BSF DIS_A
BSF DIS_B
BSF DIS_C
GOTO INICIO
OCHO
CLRF PORTD
BSF DIS_A
BSF DIS_F
BSF DIS_G
BSF DIS_B
BSF DIS_E
BSF DIS_C
BSF DIS_D
GOTO INICIO
NUEVE
CLRF PORTD
BSF DIS_A
BSF DIS_F
BSF DIS_G
BSF DIS_B
BSF DIS_C
GOTO INICIO
END