用汇编语言 将两个ascⅡ码表示的两位10进制数转换压缩BCD码(低4位存个位,高4位存十位) 怎么编写?
用汇编语言 将两个ascⅡ码表示的两位10进制数转换压缩BCD码(低4位存个位,高4位存十位) 怎么编写?
MCS51单片机用
;;设十位数的ASCII码为X,个位数的ASCII码为Y,
MOV A,#Y ;将个位数的ASCII码送A
CLR C ;减法运算前清借位标志
SUBB A, #30H ;将个位数的ASCII码减去0的纳禅ACCII码30H,得个位数字
MOV R0, A ;将个位数送R0暂存猛册
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位清零(加入这条指令是为了便于阅读,亦可省略)
ORL A, R0 ;将个位数合并到A,使A的低4位为压缩BCD码表示的个位数
;;以上程序运行结果,累加器A中保存的是两位十进数的压缩BCD码。
ANL X, #15
ANL Y, #15
MOV A, X
SWAP A
ADD A, Y
END
;src->庆升运键ax
;dec<誉悄老-al
BCD_P:
PUSH CX
MOV CL,4
SHL AH,CL
OR AH,AL
POP CX
RET