- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 运算方法与运算器 4.1 定点数的加减运算及实现 4.2 定点数的乘法运算及实现 4.3 定点数除法运算及实现 4.4 定点运算器的组成与结构 4.5 浮点运算及运算器 作业 4.1 定点数的加减运算及实现 一、补码加减运算及运算器 二、机器数的移位运算 一、补码加减运算及运算器 1、补码加减运算方法 2、补码加减运算的溢出判断 3、补码加减运算器 1、补码加减运算方法 补码的加减运算的公式是: [X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补 特点: 使用补码进行加减运算,符号位和数值位一样参加运算。 补码的减法可以用加法来实现,任意两数之差的补码等于被减数的补码与减数相反数的补码之和 。 求补运算:[Y]补 → [-Y]补 求补规则:将[Y]补包括符号位在内每一位取反,末位加1。 若[Y]补 = Y0,Y1……Yn ,则: 补码加减运算举例 例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。 写出补码: [X]补 =0,1011 [Y]补 =1,1100 [-Y]补 =0,0100 计算: 2、补码加减运算的溢出判断 当运算结果超出机器数的表示范围时,称为溢出。计算机必须具备检测运算结果是否发生溢出的能力,否则会得到错误的结果(例4.2)。 对于加减运算,可能发生溢出的情况:同号(两数)相加,或者异号(两数)相减。 确定发生溢出的情况: 正数相加,且结果符号位为1; 负数相加,且结果符号位为0; 正数-负数,且结果符号位为1; 负数-正数,且结果符号位为0; 常用的判溢方法(补码加减运算) (1)单符号位判溢方法2 当最高有效位产生的进位和符号位产生的进位不同时,加减运算发生了溢出。 V=C1⊕Cf (2)双符号位判溢方法 X和Y采用双符号位补码参加运算,正数的双符号位为00,负数的双符号位为11;当运算结果的两位符号Sf1 Sf2不同时(01或10),发生溢出。 V= Sf1 ⊕ Sf2= Xf ⊕Yf ⊕Cf⊕ Sf Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。 双符号位判溢方法举例 例:用补码计算X+Y和X-Y (1)X=+1000,Y=+1001 (2)X=-1000,Y=1001 3、补码加减运算器 3、补码加减运算器 核心部件:一个普通的二进制并行加法器。 A:累加器,存放[X]补;B:寄存器,存放[Y]补; 二、机器数的移位运算 二进制数据(真值)每相对于小数点左移一位,相当于乘以2;每相对于小数点右移一位,相当于除以2。 计算机中的移位运算分为: 1、逻辑移位:将移位的数据视为无符号数据,各数据位在位置上发生了变化,导致无符号数据的数值(无正负)放大或缩小。 2、算术移位:将移位的数据视为带符号数据(机器数)。算术移位的结果,在数值的绝对值上进行放大或缩小,同时,符号位必须要保持不变。 3、循环移位:所有的数据位在自身范围内进行左移或者右移,左移时最高位移入最低位,右移时最低位移入最高位。 补码的算术移位 算术左移:符号位不变,高位移出,低位补0。 为保证补码算术左移时不发生溢出,移位的数据最高有效位必须与符号位相同。 在不发生溢出的前提下,用硬件实现补码的算术左移时,直接将数据最高有效位移入符号位,不会改变机器数的符号。 补码的算术移位举例 例:设X=0.1001,Y=-0.0101,求 [X]补= ? [2X]补= ? [X/2]补=? [Y]补= ? [2Y]补= ? [Y/2]补=? 4.2 定点数的乘法运算及实现 一、计算机中乘除运算的实现方法 二、原码乘法算法 三、原码乘法的硬件实现 四、阵列乘法器 一、计算机中乘除运算的实现方法 由于计算机的软硬件在逻辑上具有一定的等价性,因此实现乘除法运算,可以有三种方式: 1、用软件实现。 硬件上:设计简单,没有乘法器和除法器。 指令系统:没有乘除指令,但有加/减法和移位指令 实现:乘除运算通过编制一段子程序来实现 算法:程序中运用串行乘除运算算法,循环累加、右移指令→乘法,循环减、左移指令→除法。 运算速度:较慢。 适用场合:单片机。 一、计算机中乘除运算的实现方法 2、用硬件乘法器和除法器实现。 硬件上:设置有并行加法器、移位器和若干循环、计数控制逻辑电路搭成的串行乘除法器。 指令系统:具有乘除法指令。 实现:乘除运算通过微程序一级(硬件+微程序)来实现。 算法:在微程序中依据串行乘除运算算法,循环累加、右移指令→乘法,循环减、左移指令→除法。 运算速度:有所提高,但硬件设计也相对复杂。 适用场合:低性能CPU。 一、计算机中乘除运算的实现方法 3、用高速的阵列乘法器和阵列除法器来实现。 硬件上:设置
文档评论(0)