音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

一個(gè)子程序?qū)崿F(xiàn)任意多位BCD碼減法

作者:lizhi216 欄目:單片機(jī)
一個(gè)子程序?qū)崿F(xiàn)任意多位BCD碼減法
  接以前一位同事的工作,發(fā)現(xiàn)一個(gè)六位BCD碼減法程序多達(dá)1XX行(可能沒有優(yōu)化)看得頭都大了,工作中偶然發(fā)現(xiàn)利用一個(gè)兩位BCD碼減法程序可實(shí)現(xiàn)多位BCD碼減法,拿來與大家交流;程序中部分寄存器要自己定義


;====================================================================
;兩位BCD碼減法,被減數(shù)R0,減數(shù)R2,差在R0中,第一次需置位MAIN_FLAGREG.7
;多位相減時(shí)只需按先低位再高位的原則依次相減,每兩位減過后需把差R0放入相應(yīng)的寄存器
;====================================================================
PROC_BCD_DEC:
                        BTFSC   MAIN_FLAGREG,7       ;前一次有借位則將減數(shù)加一
                        GOTO    LB00_BCD_DEC         ;
                        MOVLW   001H                 ;
                        ADDWF   R2                   ;
LB00_BCD_DEC:                                        ;
                        MOVF    R2,W                 ;
                        SUBWF   R0                   ;
                        BCF     R2,7                 ;
                        BTFSC   STATUS,STATUS_C      ;
                        BSF     R2,7                 ;
                        BSF     MAIN_FLAGREG,7       ;
                        BTFSS   STATUS,STATUS_C      ;
                        BCF     MAIN_FLAGREG,7       ;有借位則清零標(biāo)志位
                                                     ;
                        BTFSS   STATUS,STATUS_DC     ;有半借位則減六
                        GOTO    LB01_BCD_DEC         ;
                        BTFSS   R0,3                 ;沒有借位若大于9則減六
                        GOTO    LB02_BCD_DEC         ;
                        BTFSC   R0,2                 ;
                        GOTO    LB01_BCD_DEC         ;
                        BTFSS   R0,1                 ;
                        GOTO    LB02_BCD_DEC         ;
LB01_BCD_DEC:                                        ;
                        MOVLW   006H                 ;
                        SUBWF   R0                   ;
LB02_BCD_DEC:                                        ;
                        BTFSS    R2,7                ;
                        GOTO     LB03_BCD_DEC        ;
        
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
為何在這里進(jìn)入死循環(huán)?
求救!斑主你好,我用的是P16F872,它經(jīng)常復(fù)位不正常,但程序偶爾也可以跑起來?
求救!
pic中對懸空的引腳進(jìn)行AD變換,結(jié)果應(yīng)該如何?
怎么了?這么小的程序都有錯(cuò)?是不是MPLAB的仿真軟件有問題?
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號