- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
移位除法运算(汇编)推荐文章 2010-07-27 10:44:21 阅读508 评论1 ??字号:大中小?订阅除法运算的特点:其特点可归纳如下: ①每次上商都是由心算来比较余数(被除数)和除数的大小,确定商为1还是0。 ②每做一次减法,总是保持余数不动,低位补0,再减去右移后的除数。 ③商符单独处理。如果将上述规则完全照搬到计算机内,实现起来有一定困难,主要问题是: a.机器不能“心算”上商,必须通过比较被除数(或余数)和除数绝对值的大小来确定商值,即|x|-|y|,若差为正(够减)上商1,差为负(不够减)上商0。 b.按照每次减法总是保持余数不动,低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。仔细分析发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。 c.笔算求商时是从高位向低位逐位求的,而要求机器把每位商直接写到寄存器的不同位也是不可取的。计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。 综上所述便可得原码除法运算规则。 2.原码除法: 原码除法和原码乘法一样,符号位是单独处理的。以小数为例: 式中? 为x的绝对值,记作x* 为y的绝对值,记作y* 即商的符号由两数符号位“异或”运算求得,商值由两数绝对值相除(x*/y*)求得。 小数定点除法对被除数和除数有一定的约束,即必须满足下列条件: 0<|被除数|≤|除数|(这样结果才能为小数) 实现除法运算时,还应避免除数为0或被除数为0。前者结果为无限大,不能用机器的有限位数表示;后者结果总是0,这个除法操作等于白做,浪费了机器时间。至于商的位数一般与操作数的位数相同。 原码除法中由于对余数的处理不同,又可分为恢复余数法和不恢复余数法(加减交替法)两种。 (1)恢复余数法。恢复余数法的特点是:当余数为负时,需加上除数,将其恢复成原来的余数。(然后再执行左移一位后减去除数的运算) 由上所述,商值的确定是通过比较被除数和除数的绝对值大小,即x*-y*实现的,而计算机内只设加法器,故需将x*-y*操作变为[x*]补+[-y*]补的操作。 例:已知:x=-0.1011,y=-0.1101,求:[x÷y]原 解:由x*=0.1011,[x]原=1.1011 y*=0.1101,[-y]补=1.0011,[y]原=1.1101 商值的求解过程如下:被除数(余数)商说???? 明0.1011+ 1.00110.0000+[-y*]补(减去除数)1.1110+ 0.11010余数为负,上商0恢复余数+[y*]补0.10111.0110+ 1.0011 0被恢复的被除数← 1位+[-y*]补(减去除数)0.10011.0010+ 1.001101???? 01余数为正,上商1← 1位+[-y*]补(减去除数)0.01010.1010+1.0011011??? 011余数为正,上商1← 1位+[-y*]补(减去除数)1.1101+ 0数为负,上商0恢复余数+[y*]补0.10101.0100+ 1.0011 0110被恢复的被除数← 1位+[-y*]补(减去除数)0.011101101余数为正,上商1 故商值为0.1101商的符号位为? 由此可见,共上商5次,第一次上的商在商的整数位上,这对小数除法而言,可用它作溢出判断。即当该位为“1”时,表示此除法为溢出,不能进行,应由程序进行处理;当该位为“0”时,说明除法合法,可以进行。 在恢复余数法中,每当余数为负时,都需恢复余数,这便延长了机器除法的时间,操作也很不规则,对线路结构不利。加减交替法可克服这些缺点。(2)加减交替法。加减交替法又称不恢复余数法,可以认为它是恢复余数法的一种改进算法。??问题:余数为负时,怎样实现恢复余数的操作?答案:把余数加上除数即可。 分析原码恢复余数法得知:(X*为被除数X的绝对值,Y*为除数Y的绝对值) 当余数Ri0时,可上商“1”,再对Ri左移一位后减除数,即2Ri-y*。 当余数Ri0时,可上商“0”,然后再做Ri+y*(完成恢复余数的运算),再做2(Ri+y*)-y*,也即2Ri+y*【先恢复余数,再左移一位后减去除数。】。 可见,原码恢复余数法可归纳为: 当余数Ri0时,商上“1”,做2Ri-y*的运算; 当余数Ri0时,商上“0”,做2Ri+y*的运算。 这里已看不出余数的恢复问题了,而只是做加y*或减y*,因此,一般把它叫做加减交替法或不恢复余数法。 例:已知:x=-0.1011,y=-0.1101,求:[x÷ y]原 解:[x]原=1.1011, x*=0.
文档评论(0)