解答关于进制转换的问题,附,转换程序
附一个16位二进制数(也就是4位16进制数)转化为10进制(压缩BCD码)的小程序<br /><br />bintobcd16:<br /> ;in, r2,r3 (low in r2, high in r3)<br /> ;out r4,r5,r6 (low in r4,high in r6)<br /> clr a<br /> mov r4,a<br /> mov r5,a<br /> mov r6,a<br /> mov r7,#16<br />bintobcd16re1:<br /> mov a,r2<br /> rlc a<br /> mov r2,a<br /> mov a,r3<br /> rlc a<br /> mov r3,a<br /> mov a,r4<br /> addc a,r4<br /> da a<br /> mov r4,a<br /> mov a,r5<br /> addc a,r5<br /> da a<br /> mov r5,a<br /> mov a,r6<br /> addc a,r6<br /> da a<br /> mov r6,a<br /> djnz r7,bintobcd16re1<br /> ret<br /><br />输出最大为65535,是5位数,所以r6只有低半字节有数据。<br />
|
|