bcd码怎么转换成ascii码,单片机二进制转bcd码
将1字节的压缩BCD码转换为两个ASCII码,编写将结果存储在ASC和ASC 1单元中的完整程序,以高位存储行地址、低位存储高地址的形式存储。
1字节压缩BCD代码是2位0~9的数字,4位二进制数对应于1位BCD代码。 所以重要的是分离两个四位的二进制数。 “分离”可以用移位指令和逻辑运算指令实现,然后通过将30H相加,可以得到对应的ASCII码。
流程列表:
数据分段
BCD DB 98H
Asc数据库?
数据结束
代码段
assume cs :代码、ds :数据
START:MOV AX,DATA
MOV DS,AX
MOV CL,4
MOV AL、BCD; 将BCD代码存储在AL和BL中
MOV BL,AL
SHR AL、CL; 右4位,从高4位移动到低4位
ADD AL,30H; 获取高级ASCII代码
MOV ASC,AL
AND BL,0FH; 清高第四名
ADD BL,30H; 得到低位的ASCII码
MOV ASC 1,BL
MOV AH,4CH
INT 21H
代码结尾
结束开始
此程序已汇编的对应列表文件
右移4位相当于除以16,所以也可以用除法指令来实现。 该分段如下:
MOV AL,BCD
MOV BL,16
XOR AH、AH; 扩展到16位
DIV BL; 商在AL,馀数在AH
ADD AL,30H; 高级ASCII代码
MOV ASC,AL
ADD AH,30H; 低位的ASCII代码
MOV ASC 1,AH