<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51指令系統(2)

51指令系統(2)

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

本文引用地址:http://dyxdggzs.com/article/201611/321801.htm

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

程序如下:

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

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

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

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

ORL A,30H;轉化為對應ASCII碼

MOV @R1,A;保存至對應目的位置

INC R0;修改源數據地址以指向下一位置

INC R1;修改目的數據地址指向下一位置

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

RET;處理結束,程序返回

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

程序如下:

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

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

CLR A;起始數碼=0

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

INC A;數碼加1

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

INC A;數碼加1

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

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

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

RET;工作完成,程序返回

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

程序如下:

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

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

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

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

CLR C;初始清零CY

L0:MOV A,@R0;取加數A當前字節

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

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

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

XCH A,R1;

XCH A,R2;

MOV @R1,A;保存和數當前字節

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

XCH A,R1;

XCH A,R2;

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

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

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

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

RET;工作結束,程序返回



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

評論


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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>