51单片机汇编语言把ASCII码转换为压缩BCD码

在以2000H为首地址的存储区里存放着20个用ASCII码表示的0-9的数,试编程将他们转换成BCD码(即一个单元存放2位BCD码)的形式存放在3000H-3009H单元中!

第1个回答  推荐于2016-03-19
mov R6,#30H
mov R7,#0
mov DPTR,#2000H
mov R2,10
L1:
movx A,@DPTR
inc DPTR
anl A,#0FH
swap A
mov R0,A
movx A,@DPTR
inc DPTR
anl A,#0FH
orl A,R0
push DPH
push DPL
mov DPH,r6
mov DPL,r7
movx @DPTR,A
inc DPTR
mov R6,DPH
mov R7,DPL
pop DPL
pop DPH
djnz R2,L1本回答被提问者采纳

51单片机汇编语言把ASCII码转换为压缩BCD码
L1:movx A,@DPTR inc DPTR anl A,#0FH swap A mov R0,A movx A,@DPTR inc DPTR anl A,#0FH orl A,R0 push DPH push DPL mov DPH,r6 mov DPL,r7 movx @DPTR,A inc DPTR mov R6,DPH mov R7,DPL pop DPL pop DPH djnz R2,L1 ...

...将两个ascⅡ码表示的两位10进制数转换压缩BCD码(低4位存个位,高4...
MOV A,#X ;将十位数的ASCII码送A CLR C ;减法运算前清借位标志 SUBB A, #30H ;将十位数的ASCII码减去0的ACCII码30H,得十位数字 SWAP A ;将A的高4位与低4位交换,使A的高4位为压缩BCD码表示的十位数 ANL A,#F0H ;将A的低4位清零(加入这条指令是为了便于阅读,...

如何把ASCII码转换成BCD码
lea si,BCD_Number lea di,BCD_Number[8] mov cx,2 rep movsw ;把这4个字节的压缩BCD码保存到与其相距8个字节的后续单元 lea si,BCD_Number[8] lea di,BCD_Number mov cx,4 BCD_ASCII: lodsb push cx mov cx,4 xor ah,ah shl ax,cl shr al,cl or ax,3030h xchg ah,al stosw pop cx loop...

如何用汇编语言实现将非压缩BCD码转换成对应的压缩BCD码?
SHL AH,CL OR AH,AL;高低八位寄存器相或,得AH=(0101 0110)B 得到AX的对应的BCD码在AH中。参考资料:无

51单片机片内RAM30H中存两个压缩BCD码转成ASCII码值,存片外RAM3000H开 ...
BCDASC:MOV A,30H ANL A,#0FH ADD A,#30H MOV DPTR,#3000H MOVX @DPTR,A MOV A,30H SWAP A ANL A,#0FH ADD A,#30H INC DPTR MOVX @DPTR,A RET

请教汇编语言ASCII
ASCII (American Standard Code for Information Interchange美国信息互换标准代码)只是一种为西方语言所用到的字母和常用的符号(如 + - ? = ")编号的标准。和 BCD码没关。造成你混乱的是由于数据储存都是以字节为基本单位,ASCII 编码和非压缩 BCD 码也不例外。用两者编码的数据,存放在电脑中(无论...

汇编语言压缩BCD码和非压缩BCD码是怎么回事
其实只用低4位,高4位全为0。例如,十进制数36,用非压缩BCD码表示为:0000 0011 0000 0110 ,这是两个字节。压缩BCD码,就把高4位的0省掉了,用一个字节表示两个BCD码了。还是,十进制数36,用压缩BCD码表示为:0011 0110 ,就一个字节就行了。节省了一个字节。

如何用汇编语言将BCD码96H转换成2个字节的ASCII码?
一个字节的BCD码就是用一个字节的二进制数表示两位十进制数。如十进制数96表示成压缩BCD码就是96H,转换成ASCII码就是压缩BCD码表示的十进制数的高位和低位分开,以ASCII码表示,即转换成39H和36H。汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替操作码,...

用汇编语言将压缩BCD码转换成对应十进制数字的ASCLL码
将压缩BCD码转换成对应十进制数字的ASCLL码,其实就是将在BCD码的基础上加30,这就是比较经典的汇编例题啊。

51单片机非压缩BCD码多位数乘法的汇编程序求助
B都转换成二进制数,然后用部分积右移算法计算乘法(参考我的文章http:\/\/wenku.baidu.com\/view\/e651f6c9a1c7aa00b52acb30.html?st=1),这种方法是目前比较好的汇编语言乘法算法,不管数据位数的多少都可以计算。最后将计算结果再转换为BCD码。你可以按这个方法先练习做一下,有什么问题再追问吧。

相似回答