定点运算四则及其电路配置

定点运算

移位和加减法实现乘除法

① 移位

计算机中小数点的位置是事先约定的,因此,二进制表示的机器数在相对于小数点作n位左移或右移时,其实质就是该书乘以或除以2n
计算机中机器字长往往是固定的,当机器左移或右移n位,必然会使其n位低位或n位高位出现空位,那么对空出的空位应该添补0还是1?这与机器采用有符号数还是无符号数有关,对于有符号数的移位成为算术移位,无符号的为逻辑移位
定点运算四则及其电路配置_第1张图片

助记:园林(原0) 左邻右舍(左移添0) 翻译(反1)


② 加减法

定点运算四则及其电路配置_第2张图片

硬件配置介绍
图中寄存器A,X,加法器的位数相等,其中A存放被加数(或被减数)的补码,X存放加数(或减数)的补码。作减法时,由“求补控制逻辑”将X 送至加法器(在X和加法器之间加一个反相器实现每位取反的目的),并使加法器的最末位外来进位为1(+1),以达到对减数求补的目的。运算结果溢出时,通过溢出判断电路置“1”溢出标志V,G A为加法标记,G s为减法标记
补码加减法运算控制流程
由图可知,加(减)法运算前,被加(减)数的补码在A中,加(减)数的补码在X中。若是加法,直接完成(A)+(X)→A(mod 2 或者 mod2 n+1)的运算;若是减法,则需对减数求补,在和A寄存器的内容相加,结果送A

③ 乘法

定点运算四则及其电路配置_第3张图片

硬件配置介绍
图中A,X,Q均为n+1位寄存器,其中X存放被乘数的原码,Q存放乘数的原码。移位和加控制电路受末尾乘数Q n的控制(当Q n=1时,A和X内容相加后,A,Q右移移位;当Q n=0时,只作A,Q右移一位的操作)。计数器用于控制逐位相乘的次数。S放乘积的符号。G M为乘法标记
原码一位乘运算控制流程
乘法开始前,A寄存器清零,作为初始部分积,X存放被乘数的原码,Q存放乘数的原码乘法开始后,首先通过异或运算,求出乘积的符号并存于S,接着将被乘数和乘数从源码形式变成绝对值,然后根据Q n的状态决定是否加上被乘数,再逻辑右移一位,重复n次,即得运算结果

④ 除法

1. 恢复余数法

商值的确定可以通过比较被除数和除数的绝对值大小x*-y*实现(带*表示绝对值),而计算机只设加法器,故需将x*-y*操作变为[x*]+[-y*]的操作
余数为负说明不足以商1,将其恢复成原来的余数+[y*],然后左移一位,继续上述操作
恢复余数法中,每当余数为负时,都需要恢复余数,就演唱了机器除法的时间,操作也很不规则,对线路结构不利,使用有了加减交替法

2. 加减交替法

分析恢复余数法得知
余数Ri>0,可上商“1”,再对Ri左移一位后减除数,即2Ri-y*
余数Ri<0,可上商“0”,然后先做Ri+y*,即完成恢复余数的运算,再做2(Ri+y*)-y*,即2Ri+y*
定点运算四则及其电路配置_第4张图片

硬件配置介绍
图中A,X,Q均为n+1位寄存器,其中A存放被除数的原码,X存放除数的原码。移位和加控制逻辑受Q的末尾控制(当Q n=1时,作减法;当Q n=0时,作加法),计数器C用于控制逐位相除的次数n,G D为除法标记,V为溢出标记,S为商符
原码加减替换法运算控制流程
除法开始前,Q寄存器被清零,准备接收商,被除数的原码放在A中,除数的原码放在X中,计数器C中存放除数的位数n。除法开始后,首先通过异或运算求出商符,并存于S,接着被除数和除数变为绝对值,然后开始用第一次上商判断是否溢出。若溢出,则置溢出标记V为1,停止运算,进行中断处理重新选择比例因子;若无溢出,则先上商,接着A,Q同时左移一位,然后根据上一次商值的状态,决定是加还是减除数,这样重复n次后,再最后上一次商(共上商n+1次),即得运算结果

你可能感兴趣的:(#,计算机组成)