Hola compañero me dejaron realizar un programa dónde tengo que ordenar tres numeros de menor a menor realize en siguente programa pero no me funciono uso esamblador de mplab trabajando la pic 16f886 alguien tiene alguna otra idea de como hacerlo o me podrían decir en que estoy mal gracias
...
Código:
list p=16f886 ; list directive to define processor
#include <p16f886.inc> ; processor specific variable definitions
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
RESET_VECTOR CODE 0x0000 ; processor reset vector
nop
goto start ; go to beginning of program
MAIN_PROG CODE 0X06
start
;NÚMERO 1
CLRF 0X30
INCF 0X30
MOVFW 0X21
SUBWF 0X20,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X22
SUBWF 0X20,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X23
SUBWF 0X20,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X24
SUBWF 0X20,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X20
CALL OPERACION
;NÚMERO 2
CLRF 0X30
INCF 0X30
MOVFW 0X20
SUBWF 0X21,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X22
SUBWF 0X21,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X23
SUBWF 0X21,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X24
SUBWF 0X21,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X21
CALL OPERACION
;NÚMERO 3
CLRF 0X30
INCF 0X30
MOVFW 0X21
SUBWF 0X22,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X20
SUBWF 0X22,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X23
SUBWF 0X22,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X24
SUBWF 0X22,0
BTFSC STATUS,0
INCF 0X30,1
MOVFW 0X22
CALL OPERACION
GOTO SETERMINO
OPERACION
DECF 0X30
BTFSC STATUS,2
MOVWF 0X50
DECF 0X30
BTFSC STATUS,2
MOVWF 0X51
DECF 0X30
BTFSC STATUS,2
MOVWF 0X52
DECF 0X30
RETURN
SETERMINO
END ; directive \'end of program\'