第-3-章-运算方法与运算器.ppt
第3章运算方法与运算器本章学习内容运算器的设计方法定点加、减、乘、除运算浮点加、减、乘、除运算十进制数的运算3.1运算器的设计方法作为计算机的核心部件——运算器,它所具有的只是简单的算术、逻辑运算以及移位、计数等功能,因此计算机中对数据信息的加工的基本思想就是:将各种复杂的运算处理分解为最基本的算术运算和逻辑运算。运算器的逻辑组织结构设计通常可以分为以下层次:⑴根据机器的字长,将N个一位全加器通过加法进位链连接构成N位并行加法器;⑵利用多路选择逻辑在加法器的输入端实现多种输入组合,将加法器扩展为多功能的算术/逻辑运算部件;⑶根据乘除运算的算法,将加法器与移位器组合,构成定点乘法器与除法器。将计算定点整数的阶码运算器和计算定点小数的尾数运算器组合构成浮点运算器;⑷在算术/逻辑运算部件的基础上,配合各类相关的寄存器,构成计算机中的运算器。3.2定点补码加减运算由于原码加减算法复杂,而补码表示可以把加法、减法均转换为加法,大大简化了加减运算算法,所以在计算机中均采用补码加减运算。补码运算:参加运算的操作数均用补码表示并且运算结果也以补码表示。3.2.1补码运算的基础1.补码运算的基本关系:[x]补+[y]补=[x+y]补[x]补-[y]补=[x-y]补即:两数补码之和等于两数和的补码两数补码之差等于两数差的补码以定点小数为例证明上述关系的正确性。(1)设x≥0,y≥0,则x+y≥0由补码定义:[x]补=x,[y]补=y,∴[x]补+[y]补=x+y=[x+y]补(2)设x≥0,y<0且|x|≥|y|由补码定义:[x]补=x,[y]补=2+y(mod2)∴[x]补+[y]补=2+x+y∵|x|≥|y|,∴x+y≥0[x+y]补=x+y∵2+x+y≥2∴[x]补+[y]补=x+y(mod2)即证得[x]补+[y]补=[x+y]补(3)设x≥0,y<0且|x|<|y|由补码定义:[x]补=x,[y]补=2+y(mod2)∴[x]补+[y]补=2+x+y∵|x|<|y|∴x+y<0因此[x+y]补=2+x+y=[x]补+[y]补(mod2)(4)设x<0,y<0由补码定义:[x]补=2+x,[y]补=2+y(mod2)∴[x]补+[y]补=2+x+2+y=2+2+x+y根据定点数数据表示范围的要求,舍去模2,得[x]补+[y]补=2+x+y由于x<0,y<0∴x+y<0因而[x+y]补=2+x+y=[x]补+[y]补当x<0,y≥0时,证明方法与(2)、(3)相同。到此得证:[x]补+[y]补=[x+y]补再证明[x]补-[y]补=[x]补+[-y]补=[x-y]补∵[x+y]补=[x]补+[y]补∴[x]补+[-y]补=[x-y]补,所以只要证明[一y]补=-[y]补,则[x]补-[y]补=[x]补+[-y]补=[x-y]补即可成立。证明:∵[x+y]补=[x]补+[y]补∴[y]补=[x+y]补-[x]补[x-y]补=[x]补+[-y]补∴[-y]补=[x-y]补-[x]朴因此:[y]补+[-y]补=[x+y]补+[x-y]补-[x]补-[x]补=[x+y+x-y]补-[x]补-[x]补=[x+x]补-[x]补-[x]补=[x]补+[x]补-[x]补-[x]补=0∴-[y]补=[-y]补补码运算的基本规则:①参加运算的各个操作数均以补码表示,运算结果仍以补码表示。②符号位与数值位一样参加运算。③若求和,则将两补码数直接相加,得到两数之和的补码;
若求差,则将减数变补(由[y]补求[-y]补),然后与被减数相加,得到两数之差的补码。④补码总是对确定的模而言,若运算结果超过模(有从符号位上产生的进位),则将模自动丢掉。例1:x=+0.1001,y=+0.0101,求x±y=?解:[x]补=0.1001,[y]补=0.0101,
[-y]补=1.1011[x+y]补=[x]补+[y]补
=0.1001+0.0101=0.1110x+y=0.1110[x-y]补=[x]补+[-y]补
=0.1001+1.1011=0.0100x-y=0.0100例2:x=-0.0110,y=-0.0011,求x±y=?解:[x]补=1.1010,[y]补=1.1101,
[-y]补=0.0011[x+y]补=[x]补+[y]补
=1.1010+1.1101=1.0111x+y=-0.1001[x-y]补=[x]补+[-y]