设计1个子程序,将8位二进制数(0-FFH)转换为BCD码数。(本题15分) 入口: A=待转换二进制数 出口: (R0+1)=BCD数的十位数、个位数 (R0)=BCD数的百位数相关知识点: 试题来源: 解析 答:程序如下: BINBCD1: MOV B,#100 DIV AB ;(A)=百位数,(B)=余数 MOV @R0,A ;保存百位数 INC R0 MOV A,...
;功能:将20H单元中的8位无符号二进制数转换为BCD码 ;入口参数:20H单元中存放要转换的二进制数 ;出口参数:21H单元存放的是百位BCD码,22H单元存放的是十位和个位BCD码,高半字节放十位,低半字节放个位。 ;占用寄存器:A,B BINBCD: MOV A,20H ;取数 MOV B,#64H DIV AB ;除以100,A为百位数 MOV 21H,A...
将A中所存放的8位二进制数转换为BCD码,存于片内RAM的20H、21H单元。,MOV B,#100DIV ABMOV R0,#21HMOV @R0,ADEC
加3:(0101)B+(0011)B=(1000)B --十进制表示:5+3=8 再左移一位后:(1000Xn)B= (0001_000Xn)BCD 对应十进制显示:1 Xn 每四位BCD码对应一位十进制数,即:(10+Xn)D,转换成功 注:Xn为下一位串行输入的二进制数。2、设计思路 这里一共需要四个模块:计数器、移位器...
8位二进制最大可表示255 所以至少要10bit的容量
8位二进制数转换成3位BCD码格式 ORG 0000H MAIN: MOV A,#0FFH MOV B,#64H DIV AB MOV 31H,A MOV A,#0AH XCH A,B DIV AB SWAP A ADD A,B MOV 32H,A SJMP $ END
第一步,将8位无符号二进制整数除以100,得到两个结果:商和余数,这个商就是3位压缩BCD码的最高4位(截掉高4位,留下低4位二进制码);第二步,将上面的余数除以10,又得到两个结果:商和余数,将商的低4位作为3位压缩BCD码的中间4位,余数的低4位作为3位BCD码的最低4位。
define uchar unsigned char uchar 8_bit;uchar ge,shi,bai;bai=8_bit/100;shi=8_bit%100/10;ge =8_bit%10;
MOV B,#10 DIV AB MOV 20H,A MOV 21H,B