单片机原理4第四章.ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理4第四章

MOV @R0,A ;R2+acL送(R0+2) MOV A,B ADDC A, R1 INC R0 MOV @R0,A ;R1+acH+Cy送(R0+3) RET ;返回主程序 END [例4.14] 设32位长的被除数已放在R5R4R3R2(R5内为最高字节),16位除数存放在R7R6,请编出使商存于R3、R2和余数存于R5R4的除法程序。该程序应能判定除数为零时转入ERR出错处理程序和商超过双字节时使PSW中F0=1(否则F0=0)。 解:根据题意,除法执行前后各寄存器分配如图4-9所示。 被 除 数 除 数 R5 R4 R3 R2 R7 R6 (a) 除法执行前寄存器分配 余 数 商 数 除 数 (b) 除法执行后的寄存器分配 图4-9 除法执行前后的寄存器分配 除法运算的法则可采用重复减法,相应算法步骤如下: (1)判断除数是否为零。若除数为零,则转出错处理程序ERR执行。 (2)若除数不为零,则判断商是否大于双字节,即判断R5R4≥R7R6? 若R5R4≥R7R6,则商大于双字节,使F0=1和结束除法运算。 (3)若R5R4<R7R6,则采用重复比较法求商。由于是16位除法,故比较法求商时比较次数16 送B寄存器,以控制除法的循环次数。 (4)使32位被除数R5R4R3R2左移一位,即扩大两倍,R2最低位空出。 (5)使被除数高16位减去除数。若够减,则在R2最低位上商“1”(即除法完成后R3R2内可得到商,R5R4内得到余数);若不够减,则R2最低位上商“0”。 R5 R4 R3 R2 R7 R6 1 0 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 ) 1 1 0 1 0 1 0 0 1 0 0 1 0 左移 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 Cy F0 F0=1 Cy=1 +1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 +1 0 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 F0=0 Cy=0 F0=0 Cy=1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 F0=0 Cy=0 +1 - - - - 结果:1101;余数:0011 (1) (2) 左移 (3) 左移 左移 (4) 清Cy 被乘数左移 eg1011=1101······余0011 +0 除法 移位次数 计数器 被除数左移1位 被除数除数? 计数器减1 计数器=0? 返回 N Y N 商 减去除数 0 商 Y R5R4R3R2C左环移1位 NSDIV 0 C C=1? (R5R4)–(R7R6) AR1 (F0)=1? 返回 Y Y N (AR1) (R5R4)(执行减法) (R2)+1 R2(上商1) (R5R4)(R7R6) 1 F0 16 B C F0 (B)-1 B=0? 1 F0 Y N N 比较除法程序框图 无符号双字节除法程序框图 判断除法是否完成(B=0)?若未完成,则重复执行第四步;若已完成,则令F0=0,然后结束除法运算。

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档