|
====================================
【4位十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)子程序】
入口:十進(jìn)制整數(shù)千位數(shù)RAM址存于R0,百位數(shù)、十位數(shù)、個位數(shù)RAM址依次加1;
返回值:轉(zhuǎn)換所得二進(jìn)制整數(shù)存于R3(高字節(jié))R4(低字節(jié))。
DtoB: MOV R2, #4 ;;R2←遞減的循環(huán)次數(shù)初值
MOV A, @R0
MOV R4, A ;;R4←千位數(shù)
LP1 : MOV A, R4 ;;R3R4←(R3)(R4)*10
MOV B, #10
MUL AB
MOV R4, A
MOV B, #10
XCH A, B
XCH A, R3
MUL AB
ADD A, R3
XCH A, R4
INC R0 ;;RAM指針加1
ADD A, @R0 ;;R3R4←(R3)(R4)+((R0))
XCH A, R4
ADDC A, #0
MOV R3, A
DJNZ R2, LP1
RET
====================================
【雙字節(jié)二進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制整數(shù)BCD碼子程序】
入口:二進(jìn)制整數(shù)高字節(jié)存于R2,低字節(jié)存于R3
返回值:轉(zhuǎn)換所得BCD碼由高位至低位依次存于R4,R5,R6
BtoD: MOV R7, #16 ;;R7←遞減的循環(huán)次數(shù)初值
MOV R4, #0 ;;結(jié)果寄存器清零
MOV R5, #0
MOV R6, #0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LP2: CLR C
MOV A, R3
RLC A
MOV R3, A
MOV A, R2
RLC A
MOV R2, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A, R6
ADDC A, R6
DA A
MOV R6, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R5, A
ADDC A, R5
DA
MOV R5, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R4, A
ADDC A, R4
DA
MOV R4, A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DJNZ R7, LP2
RET
|
評分
-
查看全部評分
|