- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章运算方法和运算器1
第三章 运算方法和运算器 运算方法: 着重讨论计算机中数据的运算按什么规则进行 移位运算 加减法(定点,浮点) (重点) 乘除法(定点,浮点) (难点) 逻辑运算 运算器设计: 着重讨论运算规则的具体物理实现(难点) 第三章 运算方法和运算器 §3.1 移位运算和舍入操作 一、移位运算 ? 意义 移位运算是计算机中最基本、最常见的运算操作之一,任何计算机都含有移位指令。 逻辑移位:寄存器中整组数据进行移位,空位补0,只有数字位置的变化,无数量的变化。 算术移位:寄存器中带符号数的移位,移位时,符号位保持不变,仅数量变化 左移:2x 右移: 第三章 运算方法和运算器 2.算术移位规则 前提:移位后,符号位保持不变 ⑴? 原码的移位规则 不论正数还是负数,在左移或右移时,符号位均不变,空出位一律以“0”补入。 负数的原码移位前后结果为: 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有:1 X2 X3 … Xn 0 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有:1 0 X1 … Xn-2 Xn-1 第三章 运算方法和运算器 ⑵ 补码的移位规则 正数 符号位不变,不论左移或右移,空出位一律以“0”补入。 负数 符号位不变,左移后的空出位补“0”,右移后的空出位补“1”。 左移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有:1 X2 X3 … Xn 0 右移:移位前有:1 X1 X2 … Xn-1 Xn 移位后有:1 1 X1 … Xn-2 Xn-1 第三章 运算方法和运算器 练习: X=-0.1001010 [x]原=1.1001010 [x]补=1.0110110 4[x]原= 1/2[x]原= 2[x]补= 1/4[x]补= 第三章 运算方法和运算器 二、舍入操作 在算术移位时,由于硬件的限制,会失去一定的位数,造成一些误差,为减小误差,就要进行舍入操作。 恒舍法 舍入法 恒置法 查表舍入法 第三章 运算方法和运算器 §3.2 定点加减法运算 一、原码加减法 两原码表示的数相加,首先要考虑它们的符号: 同号:仅数值部分相加,结果的符号取被加数或加数的符号, 异号:数值部分相减,结果的符号取绝对值大的数的符号。但数值部分相减,要将减数取补,变为加法进行。 原码一般不用来做加减运算,而多用来做乘除运算,做加减运算时,多用补码。 第三章 运算方法和运算器 二、补码加减法运算 引入补码后,不仅减法能变成加法,而且符号位能同数值位一样参与加运算,这样可以大大简化运算器的结构。 1、运算规则 [X+Y]补= [X]补+[Y]补 [X-Y]补= [X]补+[-Y]补 第三章 运算方法和运算器 2、溢出判断与处理 例:设:X=1011B=11D,Y=111B=7D 则 [X]补=0,1011,[Y]补=0,0111 0,1 0 1 1 [X]补 + 0,0 1 1 1 [Y]补 1,0 0 1 0 [X+Y]补 ∴[X+Y]补=1,0010 X+Y=-1110B=-14D 两正数相加结果为-14D,显然是错误的。 (1)何时会发生溢出? 加法 减法 同号 异号 (2)如何判断发生了溢出? 第三章 运算方法和运算器 用一个符号位 Xs=Ys=0,Ss=1 正溢 Xs=Ys=1,Ss=0 负溢 溢出=XsYsSs+XsYsSs 第三章 运算方法和运算器 用双符号位进行判断: 符号位 00:表示正数, 11:表示负数 结果的符号位为01时,称为正溢;为10时,称为负溢 符号位为00,11无溢出 第三章 运算方法和运算器 例1: X=0.0101 Y= - 0.1001 求X±Y=? 解:[X]补=00.0101 [Y]补=11.0111 [-Y]补=00.1001 第三章 运算方法和运算器 例2: X=0.1011 Y=0.1001 求X±Y=? 解:[X]补=00.1011
文档评论(0)