资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
2013年xx月xx日睡神耗子文档标题基本信息修改历史时间内容修改者创建睡神耗子目录资料来源1详细资料2附录3资料来源发表时间资料作者作者单位联系方式来源方式资料用途资料关键字备注1移位除法的实现与原理综合各种资料所写。适合用于没有专用除法指令的整除计算。1.算法推倒假设4bit的两数相除 a/b,商和余数最多只有4位 (假设1101/0010也就是13除以2得6余1)我们先自己做二进制除法,则首先看a的MSB(最高位),若比除数小则看前两位,大则减除数,然后看余数,以此类推直到最后看到LSB(最低位);而上述算法道理一样,a左移进前四位目的就在于从a本身的MSB开始看起,移4次则是看到LSB为止,期间若比除数大,则减去除数,注意减完以后正是此时所剩的余数。而商的末尾添加了0或1,只要比除数大,商就是1,而商0则是直接左移了,因为移位会自动补0。商值会随着a继续左移,新的商值会继续加到末尾。经过比对会发现移4位后左右两边分别就是余数和商。整个过程如下图所示:示例用寄存器表示254/9的汇编写法:地址40H中放被除数,41H中放余数,42H中放除数,43H中放商:40H=254=FEH41H=00H42H=09H43H=00H8次循环移位相减就可以算出结果,如果被除数是16位或32位,则分别需要16次和32次移位相减。每一次移位40H和41H一起向左移一位,将40H的最高位移到41H的最低位,43H左移一位,末位填0判断41H和42H的大小:如果41H大于等于42H 43H的末位置一 41H减去42H 继续下一次移位否则 继续下一次移位第1次移位后40H=FCH41H=01H42H=09H43H=00H第2次移位后40H=F8H41H=03H42H=09H43H=00H第3次移位后40H=F0H41H=07H42H=09H43H=00H第4次移位后40H=E0H41H=06H42H=09H43H=01H第5次移位后40H=C0H41H=04H42H=09H43H=03H第6次移位后40H=80H41H=00H42H=09H43H=07H第7次移位后40H=00H41H=01H42H=09H43H=0EH第8次移位后40H=00H41H=02H42H=09H43H=1CH结果:商是1CH,余数是02H附录2
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号