<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          51指令系統(tǒng)(2)

          作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
          編程1:將存于內(nèi)部RAM地址20H~25H的6位非壓縮BCD碼轉(zhuǎn)換為對(duì)應(yīng)的ASCII碼依次存至30H開(kāi)始的連續(xù)內(nèi)部RAM單元中。

          本文引用地址:http://www.ex-cimer.com/article/201611/321801.htm

          分析:非壓縮BCD碼00H、01H、02H、…、09H對(duì)應(yīng)ASCII碼30H、31H、32H、…、39H,兩者差為30H;

          程序如下:

          LL: MOV R0,#20H;源數(shù)據(jù)串開(kāi)始地址裝入R0

          MOV R1,#30H;目的數(shù)據(jù)串開(kāi)始地址裝入R1

          MOV R2,#6;循環(huán)次數(shù)裝入R2

          L0:MOV A,@R0;取一字節(jié)非壓縮BCD碼

          ORL A,30H;轉(zhuǎn)化為對(duì)應(yīng)ASCII碼

          MOV @R1,A;保存至對(duì)應(yīng)目的位置

          INC R0;修改源數(shù)據(jù)地址以指向下一位置

          INC R1;修改目的數(shù)據(jù)地址指向下一位置

          DJNZ R2,L0;循環(huán)進(jìn)行下一字節(jié)的處理

          RET;處理結(jié)束,程序返回

          編程2:實(shí)現(xiàn)將0~49之間的偶數(shù)依次存于內(nèi)部RAM地址20H開(kāi)始的字節(jié)單元,將奇數(shù)依次存于內(nèi)部RAM地址40H開(kāi)始的字節(jié)單元。

          程序如下:

          LL: MOV R0,#20H;偶數(shù)存放開(kāi)始地址裝入R0

          MOV R1,#40H;奇數(shù)存放開(kāi)始地址裝入R1

          CLR A;起始數(shù)碼=0

          L0:MOV A,@R0;存放一個(gè)偶數(shù)

          INC A;數(shù)碼加1

          MOV A,@R1;存放一個(gè)奇數(shù)

          INC A;數(shù)碼加1

          INC R0;修改偶數(shù)存放地址指針指向下一位置

          INC R1;修改奇數(shù)存放地址指針指向下一位置

          CJNE A,#50,L0 ;是否所有數(shù)碼都已放完,未完則繼續(xù)循環(huán)

          RET;工作完成,程序返回

          編程3:實(shí)現(xiàn)5字節(jié)10位壓縮BCD碼加法。設(shè)兩個(gè)加數(shù)分別存放于內(nèi)部RAM地址40H和45H開(kāi)始的字節(jié)單元(低位字節(jié)在前),相加結(jié)果存放于內(nèi)部RAM地址4AH開(kāi)始的字節(jié)單元,不考慮超出5字節(jié)壓縮BCD碼存儲(chǔ)范圍以外的進(jìn)位。

          程序如下:

          LL: MOV R0,#40H;加數(shù)A的開(kāi)始地址裝入R0

          MOV R1,#45H;加數(shù)B的開(kāi)始地址裝入R1

          MOV R2,#4AH;和數(shù)存放開(kāi)始地址裝入R2

          MOV R3,#5;循環(huán)次數(shù)裝入R3

          CLR C;初始清零CY

          L0:MOV A,@R0;取加數(shù)A當(dāng)前字節(jié)

          ADDC A,@R1;加上加數(shù)B當(dāng)前字節(jié),通過(guò)帶進(jìn)位加法考慮低位字節(jié)可能的進(jìn)位

          AD A;調(diào)整運(yùn)算結(jié)果為BCD碼,可能的進(jìn)位保存在CY中(以下的指令執(zhí)行均不影響CY)

          XCH A,R2;以下三條交換指令交換和數(shù)指針到R1,加數(shù)B指針到R2

          XCH A,R1;

          XCH A,R2;

          MOV @R1,A;保存和數(shù)當(dāng)前字節(jié)

          XCH A,R2;以下三條交換指令恢復(fù)加數(shù)B指針到R1,和數(shù)指針到R2

          XCH A,R1;

          XCH A,R2;

          INC R0;修改加數(shù)A存放地址指針指向下一位置

          INC R1;修改加數(shù)B存放地址指針指向下一位置

          INC R2;修改和數(shù)存放地址指針指向下一位置

          DJNZ R3,L0;循環(huán)次數(shù)減1,若不為0則繼續(xù)循環(huán)

          RET;工作結(jié)束,程序返回



          關(guān)鍵詞: 51指令系

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();