把二进制数转换成 BCD 码,是很常见的,做而论道以前也发表过这样的程序。但是,过去都是用寄存器,如果要求用片内RAM单元,就少见了。当然,也可以把片内RAM单元的数据,先传送到寄存器,再利用以前写的
本例为单字节二进制数(0X20)转换为非压缩BCD 码,存在0X25,0X24,0X23 中,0X25 为百位,0X23 为个位。main: MOV a,@0xa4 ;赋值MOV 0x20,aMOV 0x21,aMOV 0x22,aMOV a,@0x0 ;0x23,0x24,0x25 单元清0MOV 0x23
两字节压缩BCD 码转换为两字节二进制数。算法如下:BCD 码abcd=1000a+100b+10c+d=10{10[10a+b]+c}+d,将各位BCD 码分离出之后,即可根据此式转换为二进制数。涉及到乘法运算和多字节加法运算。0X20,0X
将一个字节的二进制数转换为两位16 进制数的ASCⅡ码main: mov a,@0x9f ;二进制数为0x9fmov 0x30,a ;二进制数存入0x30mov a,@0x02mov 0x10,a ;0x10 中存放转换次数mov a,@0x31mov 0x04,a ;0x04 中为转换