当前位置:首页 > 单片机原理与应用-基于汇编、C51及混合编程1-11章习题解答
DJNZ R1,LOOP
4-10 将存放在R3、R2中的三位压缩BCD码转换为二进制形式。
W_BCD_BI:
LCALL B_BCD_BI;调用将R2中单字节BCD码转换为二进制数的子程序, ;转换的结果存放于A寄存器中 MOV R4, A ;把转换结果暂时保存到R4 MOV A, R3 ;取BCD码的高1位 MOV B, #100
MUL AB ;计算(a3*10+a2)*100 ADD A, R4 ;加低2位转换结果 MOV R2, A ;保存转换结果的低8位
MOV A, B ;取(a3*10+a2)*100的高8位 ADDC A, #0 ;加进位位
MOV R3, A ;保存转换结果的高8位 ... ... B_BCD_BI:
MOV A, R2 ;取BCD码
ANL A, #0F0H ;保留高4位(即十位) SWAP A
MOV B, #10
MUL AB ;十位*10,最大为90(即5AH),因此高8位为0 MOV B, A ;乘积暂存到B寄存器 MOV A, R2 ;取BCD码 ANL A, #0FH ;保留个位
ADD A, B ;个位加“十位*10”,结果在A寄存器中
RET
4-11 编写程序完成运算R0R1×R2R3,乘积存R4、R5、R6和R7中。
MUL: CLR A MOV R4, A MOV R5, A MOV R6, A MOV R7, A MUL1: MOV A, R1 MOV B, R3 MUL AB MOV R7, A MOV R6, B MUL2:
9
MOV A, R0 MOV B, R3 MUL AB ADD A, R6 MOV R6, A CLR A ADDC A, B MOV R5, A MUL3: MOV A, R1 MOV B, R2 MUL AB ADD A, R6 MOV R6, A MOV A, R5 ADDC A, B MOV R5, A CLR A ADDC A, 0 MOV R4, A MUL4: MOV A, R0 MOV B, R2 MUL AB ADD A, R5 MOV R5, A MOV A, R4 ADDC A, B MOV R4, A RET
习题五
5-1 在C51语言中支持哪些数据类型?C51特有的数据类型有哪些?
在C51语言中支持的数据类型有:char(字符型)、int(整型)、long(长整形)、float(浮点型)、特殊功能寄存器类型和位类型。 C51特有的数据类型有:特殊功能寄存器类型和位类型。
10
共分享92篇相关文档