新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機的多字節減法子程序

        PIC單片機的多字節減法子程序

        作者: 時間:2011-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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 酉阳| 张家港市| 昌都县| 济宁市| 雅安市| 福建省| 华阴市| 四平市| 靖西县| 湄潭县| 商洛市| 高邑县| 肇东市| 文成县| 嘉定区| 阿荣旗| 门头沟区| 塘沽区| 页游| 镇康县| 通城县| 洞头县| 台南县| 大邑县| 合肥市| 康马县| 安化县| 鄂托克旗| 民勤县| 博湖县| 江西省| 贵定县| 江阴市| 灵川县| 墨竹工卡县| 内黄县| 浦北县| 洛扎县| 共和县| 孟村| 航空|