用单片机汇编语言实现利用移位法将压缩BCD码转成ASCII码。高手请指点。
------解决方案--------------------------------------------------------
几个字节?假设为一个字节,因为是压缩BCD码 所以有2个十一下的数 比如为 98BCD 实际在存储器里为98H
因为都是小于10的数 ASCII码需要加30H 即结果应该为 39H 38H,分别将9和8移到2个字节的低4位就可以了
设R7 存39H ,R6存 38H,R5是原来的BCD 98H
MOV R2,#04H
MOV R7,#03H
LOOP1: MOV A, R5; ;移4次
RLC A ;
MOV R5,A
MOV A,R7
RLC A
MOV R7,A
DJNZ R2,LOOP1
MOV R2,#04H
MOV R4,#03H
LOOP2: MOV A, R5 移4次
RLC A
MOV R5,A
MOV A,R7
RLC A
MOV R7,A
DJNZ R2,LOOP2
SJMP $
------解决方案--------------------------------------------------------
MOV R2,#04H
MOV R7,#03H
LOOP1: MOV A, R5; ;移4次
RLC A ;
MOV R5,A
MOV A,R7
RLC A
MOV R7,A
DJNZ R2,LOOP1
MOV R2,#04H
MOV R6,#03H
LOOP2: MOV A, R5 移4次
RLC A
MOV R5,A
MOV A,R6
RLC A
MOV R6,A
DJNZ R2,LOOP2
SJMP $
修改一下 原理是这样 没有调试 见谅!