如何用pic语言判断一个2byte和另一个2byte数据相减且结果在10范围内

2020-02-10 08:51发布

能给出算法吗?不要c语言的哦
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
tomhe666
2020-02-10 09:42
有一段时间没用PIC了,且随手写来,不知对错,你自己仿真试试吧

DATA1L  EQU 20h
DATA1H  EQU 21h
DATA2L  EQU 22h
DATA3H  EQU 23h

TEMP1   EQU 24h
TEMP2   EQU 25h

COMPARE:
         MOVFW DATA1H
         SUBWF DATA2H,0
         BTFSS STATUS,Z
         GOTO $+3
         MOVFW DATA1L
         SUBWF DATA2L,0
         BTFSS STATUS,C
         GOTO DATA2_SMALL
DATA2_BIG:
         MOVFW DATA2H
         MOVWF TEMP2
         MOVFW DATA2L
         MOVWF TEMP1

         MOVFW DATA1L
         SUBWF TEMP1,1
         BTFSS STATUS,C
         DECF TEMP2,1
         MOVFW DATA1H
         SUBWF TEMP2,1
         
         GOTO COMPARE_OVER

DATA2_SMALL:
         MOVFW DATA1H
         MOVWF TEMP2
         MOVFW DATA1L
         MOVWF TEMP1

         MOVFW DATA2L
         SUBWF TEMP1,1
         BTFSS STATUS,C
         DECF TEMP2,1
         MOVFW DATA2H
         SUBWF TEMP2,1

COMPARE_OVER:  ; TEMP2:TEMP1  = ABS(DATA1 - DATA2)            
         MOVF TEMP2,1
         BTFSS STATUS,Z
         GOTO IS_BIG_10
         MOVLW 10
         SUBWF TEMP1
         BTFSC STATUS,C
         GOTO IS_BIG_10
IS_SMALL_10:
         ;XXXXX
         ;XXXXX
IS_BIG_10:

一周热门 更多>