文档介绍:莆移位除法运算(汇编)蒃推荐文章2010-07-2710:44:21阅读508评论1  字号:大中小 订阅Forpersonaluseonlyinstudyandresearch;mercialuse莄除法运算的特点:袈其特点可归纳如下:Forpersonaluseonlyinstudyandresearch;mercialuse荿①每次上商都是由心算来比较余数(被除数)和除数的大小,确定商为1还是0。②每做一次减法,总是保持余数不动,低位补0,再减去右移后的除数。③商符单独处理。如果将上述规则完全照搬到计算机内,实现起来有一定困难,主要问题是: “心算”上商,必须通过比较被除数(或余数)和除数绝对值的大小来确定商值,即|x|-|y|,若差为正(够减)上商1,差为负(不够减)上商0。 ,低位补0,再减去右移后的除数这一规则,则要求加法器的位数必须为除数的两倍。仔细分析发现,右移除数可以用左移余数的办法代替,其运算结果是一样的,但对线路结构更有利。不过此刻所得到的余数不是真正的余数,只有将它乘上2-n才是真正的余数。 ,而要求机器把每位商直接写到寄存器的不同位也是不可取的。计算机可将每一位商直接写到寄存器的最低位,并把原来的部分商左移一位。薃综上所述便可得原码除法运算规则。蒁 :蕿原码除法和原码乘法一样,符号位是单独处理的。以小数为例:膈式中 为x的绝对值,记作x*蚃为y的绝对值,记作y*袂即商的符号由两数符号位“异或”运算求得,商值由两数绝对值相除(x*/y*)求得。小数定点除法对被除数和除数有一定的约束,即必须满足下列条件:芁 0<|被除数|≤|除数|(这样结果才能为小数)羆实现除法运算时,还应避免除数为0或被除数为0。前者结果为无限大,不能用机器的有限位数表示;后者结果总是0,这个除法操作等于白做,浪费了机器时间。至于商的位数一般与操作数的位数相同。原码除法中由于对余数的处理不同,又可分为恢复余数法和不恢复余数法(加减交替法)两种。螃(1)恢复余数法。恢复余数法的特点是:当余数为负时,需加上除数,将其恢复成原来的余数。(然后再执行左移一位后减去除数的运算) 由上所述,商值的确定是通过比较被除数和除数的绝对值大小,即x*-y*实现的,而计算机内只设加法器,故需将x*-y*操作变为[x*]补+[-y*]补的操作。节例:已知:x=-,y=-,求:[x÷y]原蝿解:由x*=,[x]原= y*=,[-y]补=,[y]原=:蚃被除数(余数)蒁商螈说    ++[-y*]补(减去除数)+,上商0恢复余数+[y*]+ 0莆被恢复的被除数←1位+[-y*]补(减去除数)+    01荿余数为正,上商1←1位+[-y*]补(减去除数)+   011螁余数为正,上商1←1位+[-y*]补(减去除数)+,上商0恢复余数