如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三章运算方法和运算器1第三章运算方法和运算器运算方法:着重讨论计算机中数据的运算按什么规则进行移位运算加减法(定点,浮点)(重点)规则乘除法(定点,浮点)(难点)逻辑运算运算器设计:着重讨论运算规则的具体物理实现(难点)2第三章运算方法和运算器§3.1移位运算和舍入操作一、移位运算1.意义•移位运算是计算机中最基本、最常见的运算操作之一,任何计算机都含有移位指令。逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量的变化。算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化1左移:x=2x右移:x=x2在此仅讨论算术移位计算机中的字长固定,左、右移时,出现空位怎么办?3第三章运算方法和运算器2.算术移位规则前提:移位后,符号位保持不变⑴正数•正数的符号位为0,且[x]原=[x]反=[x]补(x>0)故进行算术移位时,出现的空位均添补0。正数:左移、右移都补0[x]原=0.10012[x]原=0.0010[x]反=0.00111/2[x]反=0.0001[x]补=0.10012[x]补=0.00104第三章运算方法和运算器⑵负数①原码•除符号位外,原码的数值部分与真值相同,故移位后都补0。[x]原=1.01112[x]原=1.11101/2[x]原=1.0011②反码•除符号位外,反码的数值部分与原码相反,故移位后都补1[x]反=1.01112[x]反=1.11111/2[x]反=1.10115第三章运算方法和运算器③补码[x]补=1.1001[x]原=1.0111[x]反=1.1000[x]补=1.0111000[x]原=1.1001000[x]反=1.0110111[x]补=1.1100010[x]原=1.0011110[x]反=1.1100001分析发现:•补码由低位向高位出现第一个“1”的左边各位与反码同,从“1”开始的右边各位与原码同。补码规则(负数):左移:补0,同原码右移:补1,同反码6第三章运算方法和运算器练习:X=-0.1001010[x]原=1.1001010[x]反=1.0110101[x]补=1.01101104[x]原=1.01010001/2[x]原=1.01001014[x]反=1.10101111/2[x]反=1.10110102[x]补=1.11011001/4[x]补=1.1101101问:是否2[x]补=[2x]补?是否1/2[x]补=[1/2x]补?答:当x≥0时,上述二式都成立,(条件:不溢出)当x<0时,2[x]补=[2x]补成立(条件:不溢出)1/2[x]补=[1/2x]补不成立7第三章运算方法和运算器举一反例:x=-0.0001,字长5位1/2x=-0.00001[x]补=1.1111[1/2x]补=0.00001/2[x]补=1.1111x=-0.10101,字长6位1/2x=-0.010101[x]补=1.01011[1/2x]补=1.101101/2[x]补=1.10101讲完补码加减法后,再做证明。8第三章运算方法和运算器二、舍入操作•在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差,为减小误差,就要进行舍入操作。1.恒舍(切断):多余的部分全部舍去2.冯•诺依曼舍入法(末位恒置1)3.0舍1入法4.ROM舍入法(查表法,P67)9第三章运算方法和运算器§3.2定点加减法运算一、原码加减法•两原码表示的数相加减,首先要考虑它们的符号:同号,仅数值部分相加,结果的符号取被加数或加数的符号;异号,数值部分相减,结果的符号取绝对值大的数的符号,但数值部分相减,要将减数取补,变为加法进行。•对于定点机,两同号相加,结果可能溢出,须作溢出判断。一般机器溢出后,提示溢出信息,然后停机。•原码一般不用来做加减运算,而多用来做乘除运算,做加减运算时,多用补码。10第三章运算方法和运算器二、补码加减法运算引入补码后,不仅减法能变成加法,而且符号位能同数值位一样参与加运算,这样可以大大简化运算器的结构。1、运算规则[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(mod2,一位符号位)x=-0.1011[x]补=1.0101便于判断溢出,常用以4为模的变形补码形式。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(mod4,二位符号位)x=-0.1011[x]补=11.01011