PIC单片机的多字节减法子程序
时间:08-06
来源:互联网
点击:
;本程序实现多字节无符号数减法。
;入口参数:减数首地址在DADR中,被减数首地址在SADR中,字节数在CNT中。
;出口参数:结果首地址在SADR中,字节数在CNT中,借位标志在STATUS:C中,'0'表示有借位。
;占用资源:W,FSR,STATUS,020H,021H,022H,023H,028H,029H,一重堆栈。
;说明: 1.程序执行后,被减数被冲掉。
IFNDEF MUSUB1
#DEFINE MUSUB1
MUSUB MOVF SADR,W
MOVWF SADRH ;保护结果首地址
CLRF TEMP2 ;
DECF TEMP2,F ;清除借位
NEXT4 MOVF DADR,W
MOVWF FSR
MOVF INDF,W ;取出减数
MOVWF TEMP1 ;暂存
MOVF SADR,W
MOVWF FSR
MOVF TEMP1,W
SUBWF INDF,F
RLF TEMP2,F ;暂存当前借位,并使上一次借位前移
BSF STATUS,C ;清除借位
MOVLW 1
BTFSS TEMP2,1
SUBWF INDF,F
BTFSS STATUS,C ;减借位位的过程中是否产生了借位
BCF TEMP2,0
INCF DADR,F
INCF SADR,F
DECFSZ CNT,F
GOTO NEXT4
MOVF SADRH,W
SUBWF SADR,W
MOVWF CNT ;恢复字节数
MOVF SADRH,W
MOVWF SADR ;结果首地址
RRF TEMP2,W ;借位位放到C中
RETLW 0
ENDIF
- 基于PIC单片机的智能型漏电断路器设计(11-25)
- 基于PIC单片机的无线实时监控防盗系统的设计与实现(11-18)
- PIC单片机键盘矩阵扫描C语言程序(12-02)
- PIC单片机控制第一个发光管闪动程序(12-02)
- PIC单片机驱动LCD12864液晶显示闪动字体程序(12-02)
- PIC单片机控制8位流水灯C语言程序(12-02)