1、 单片机基础 第 7 次实验报告 实验内容 双字节无符号数除法实验 实验目的 熟练掌握单片机汇编语言程序设计方法 姓名 学号 班级 题目: 双字节无符号数除法实验 。 连线 : 无 要求: 编程实现双字节无符号数的除法 。 实现要点 : 1、用 DATA 伪指令定义除数 A2、 A1( A2 为高字节, A1 为低字节),除数 B2, B1(定义同上),商QUOT2, QUOT1(定义同上),余数 REMAIN2, REMAIN1(定义同上); 2、 除法过程如下(假设 11010110 是被除数, 101 为除数): 3、算法过程如下 1) 商清零,余数清零; 2) 定次数 16 次循环开始
2、: a) 被除数左移一位(低位补零),高位移入余数; b) 比较余数与除数大小,如余数大于 等于 除数,商最低位置 1,余数减去除数,结果放回余数;如果余数小于除数,商最低位置 0; c) 判断是否为 最后一次循环 ,否则 继续 ,是则循环结束; d) 商左移一位(低位补零) ,余数左移一位(低位补零) ,跳转至 a) ; 4、程序难点 1) 商和余数都是双字节数,他们的移位均为低位补零的移位(汇编指令为循环移位),编制子程序实现相应移位; 2) 比较余数除数大小的时候余数和除数也均为双字节数,汇编指令一次只能比较一字节,需多次比较; 3) 移位和比较大小均用子程序实现,仔细 考虑子程序的入口出口,建议入口出口均使用伪指令符号化定义直接地址而不是使用 A 或者通用寄存器; 实验的代码及注释: