單片機(jī)多字節(jié)BCD碼加法減法
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):2395
    
     作者:不詳
     來源:不詳
     -------------(1) 標(biāo)號: bcda 功能:多字節(jié)bcd碼加法
     入口條件:字節(jié)數(shù)在r7中,被加數(shù)在[r0]中,加數(shù)在[r1]中。
     出口信息:和在[r0]中,最高位進(jìn)位在cy中。
     影響資源:psw、a、r2 堆棧需求: 2字節(jié)
     bcda: mov a,r7 ;取字節(jié)數(shù)至r2中
     mov r2,a
     add a,r0 ;初始化數(shù)據(jù)指針
     mov r0,a
     mov a,r2
     add a,r1
     mov r1,a
     clr c
     bcd1: dec r0 ;調(diào)整數(shù)據(jù)指針
     dec r1
     mov a,@r0
     addc a,@r1 ;按字節(jié)相加
     da a ;十進(jìn)制調(diào)整
     mov @r0,a ;和存回[r0]中
     djnz r2,bcd1 ;處理完所有字節(jié)
     ret(2) 標(biāo)號: bcdb 功能:多字節(jié)bcd碼減法
     入口條件:字節(jié)數(shù)在r7中,被減數(shù)在[r0]中,減數(shù)在[r1]中。
     出口信息:差在[r0]中,最高位借位在cy中。
     影響資源:psw、a、r2、r3 堆棧需求: 6字節(jié)
     bcdb: lcall neg1 ;減數(shù)[r1]十進(jìn)制取補(bǔ)
     lcall bcda ;按多字節(jié)bcd碼加法處理
     cpl c ;將補(bǔ)碼加法的進(jìn)位標(biāo)志轉(zhuǎn)換成借位標(biāo)志
     mov f0,c ;保護(hù)借位標(biāo)志
     lcall neg1 ;恢復(fù)減數(shù)[r1]的原始值
     mov c,f0 ;恢復(fù)借位標(biāo)志
     ret
     neg1: mov a,r0 ;[r1]十進(jìn)制取補(bǔ)子程序入口
     xch a,r1 ;交換指針
     xch a,r0
     lcall neg ;通過[r0]實(shí)現(xiàn)[r1]取補(bǔ)
     mov a,r0
     xch a,r1 ;換回指針
     xch a,r0
     ret
    
     (3) 標(biāo)號: neg 功能:多字節(jié)bcd碼取補(bǔ)入口條件:字節(jié)數(shù)在r7中,操作數(shù)在[r0]中。
     出口信息:結(jié)果仍在[r0]中。
     影響資源:psw、a、r2、r3 堆棧需求: 2字節(jié)
     neg: mov a,r7 ;。ㄗ止(jié)數(shù)減一)至r2中
     dec a
     mov r2,a
     mov a,r0 ;保護(hù)指針
     mov r3,a
     neg0: clr c
     mov a,#99h
     subb a,@r0 ;按字節(jié)十進(jìn)制取補(bǔ)
     mov @r0,a ;存回[r0]中
     inc r0 ;調(diào)整數(shù)據(jù)指針
     djnz r2,neg0 ;處理完(r2)字節(jié)
     mov a,#9ah ;最低字節(jié)單獨(dú)取補(bǔ)
     subb a,@r0
     mov @r0,a
     mov a,r3 ;恢復(fù)指針
     mov r0,a
     ret
    
    
    
    
     作者:不詳
     來源:不詳
     -------------(1) 標(biāo)號: bcda 功能:多字節(jié)bcd碼加法
     入口條件:字節(jié)數(shù)在r7中,被加數(shù)在[r0]中,加數(shù)在[r1]中。
     出口信息:和在[r0]中,最高位進(jìn)位在cy中。
     影響資源:psw、a、r2 堆棧需求: 2字節(jié)
     bcda: mov a,r7 ;取字節(jié)數(shù)至r2中
     mov r2,a
     add a,r0 ;初始化數(shù)據(jù)指針
     mov r0,a
     mov a,r2
     add a,r1
     mov r1,a
     clr c
     bcd1: dec r0 ;調(diào)整數(shù)據(jù)指針
     dec r1
     mov a,@r0
     addc a,@r1 ;按字節(jié)相加
     da a ;十進(jìn)制調(diào)整
     mov @r0,a ;和存回[r0]中
     djnz r2,bcd1 ;處理完所有字節(jié)
     ret(2) 標(biāo)號: bcdb 功能:多字節(jié)bcd碼減法
     入口條件:字節(jié)數(shù)在r7中,被減數(shù)在[r0]中,減數(shù)在[r1]中。
     出口信息:差在[r0]中,最高位借位在cy中。
     影響資源:psw、a、r2、r3 堆棧需求: 6字節(jié)
     bcdb: lcall neg1 ;減數(shù)[r1]十進(jìn)制取補(bǔ)
     lcall bcda ;按多字節(jié)bcd碼加法處理
     cpl c ;將補(bǔ)碼加法的進(jìn)位標(biāo)志轉(zhuǎn)換成借位標(biāo)志
     mov f0,c ;保護(hù)借位標(biāo)志
     lcall neg1 ;恢復(fù)減數(shù)[r1]的原始值
     mov c,f0 ;恢復(fù)借位標(biāo)志
     ret
     neg1: mov a,r0 ;[r1]十進(jìn)制取補(bǔ)子程序入口
     xch a,r1 ;交換指針
     xch a,r0
     lcall neg ;通過[r0]實(shí)現(xiàn)[r1]取補(bǔ)
     mov a,r0
     xch a,r1 ;換回指針
     xch a,r0
     ret
    
     (3) 標(biāo)號: neg 功能:多字節(jié)bcd碼取補(bǔ)入口條件:字節(jié)數(shù)在r7中,操作數(shù)在[r0]中。
     出口信息:結(jié)果仍在[r0]中。
     影響資源:psw、a、r2、r3 堆棧需求: 2字節(jié)
     neg: mov a,r7 ;。ㄗ止(jié)數(shù)減一)至r2中
     dec a
     mov r2,a
     mov a,r0 ;保護(hù)指針
     mov r3,a
     neg0: clr c
     mov a,#99h
     subb a,@r0 ;按字節(jié)十進(jìn)制取補(bǔ)
     mov @r0,a ;存回[r0]中
     inc r0 ;調(diào)整數(shù)據(jù)指針
     djnz r2,neg0 ;處理完(r2)字節(jié)
     mov a,#9ah ;最低字節(jié)單獨(dú)取補(bǔ)
     subb a,@r0
     mov @r0,a
     mov a,r3 ;恢復(fù)指針
     mov r0,a
     ret
    
    
    
上一篇:使用單片機(jī)C語言的好處
熱門點(diǎn)擊
- 單片機(jī)多字節(jié)BCD碼加法減法
- PCF8563 I2C實(shí)時時鐘/日歷芯片在8
- P89C51RD2的Boot ROM與ISP
- C51絕對地址訪問
- C8051與SRAM的高速接口
- 指針類型和存儲區(qū)的關(guān)系詳解
- 帶VCC輸入引腳的硅序列碼芯片DS2411及
- 電壓驅(qū)動型脈寬調(diào)制器TL494
- c語言編寫單片機(jī)技巧
- 異種單片機(jī)共享片外存儲器及其與微機(jī)通信的方法
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究