51单⽚机⼆进制转bcd码c语⾔,⼆进制整数转换为BCD码51汇
编语⾔⼦程序
【单字节⼆进制整数转换为BCD码⼦程序】
;;⼊⼝:(A)= ⼆进制整数,
;;出⼝:(R0)= 存放BCD码的RAM⾸址指针。
BINtoBCD1:
MOV B, #100
DIV AB ;;A←百倍数, B←余数
MOV @R0 A ;;RAM←百位数
INC R0 ;;RAM指针加1
MOV A, #10
XCH A, B ;;A←余数, B←#10
DIV AB ;;A←⼗位数,B←个位数
SWAP A ;;⼗位数⾼低半字节互换
c语言中文网汇编语言ADD A, B ;;A←合成得BCD码
MOV R0, A ;;RAM←转换结果
【多个字节⼆进制整数转换为BCD码⼦程序】
;;⼊⼝:BIN_P是⼆进制数末字节地址指针,N是待转换的字节数,
;;出⼝:BCD_P是BCD码个位数地址指针。
BINtoBCDn:
MOV R1, BCD_P
MOV R2, N
INC R2
CLR A
BB0:
MOV @R1, A
INC R1
DJNZ R2, BB0
MOV A, N
MOV B, #8
MUL AB
MOV R3, A
BB3:
MOV R0, BIN_P
ACALL BINtoBCD1 ;;调⽤转换单字节转换⼦程序MOV R2, N
CLR C
BB1:
MOV A, @R0
RLC A
MOV @R0, A
INC R0
DJNZ R2, BB1
MOV R2, N
INC R2
MOV R1, BCD_P
BB2:
MOV A, @R1
ADDC A, @R1
DA A
MOV @R1, A
INC R1
DJNZ R2, BB2
DJNZ R3, BB3
RET
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论