- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3运算方法和运算器
第三章 运算方法与运算器;主要内容; 算术逻辑运算单元(简称ALU)的主要功能是对二进制数据进行算术运算、逻辑运算和各种移位操作,它是一种以加法器为基础的多功能组合逻辑电路。其基本设计思想是:在加法器的输入端加入一个函数发生器,这个函数发生器可以在多个控制信号的控制下,为加法器提供不同的输入函数,从而构成一个具有较完善的算术逻辑运算功能的运算部件。
;3.1.2 移位操作及移位寄存器
?
; 为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向总线发送数据的控制信号,CP为移位寄存器的打入脉冲信号。
; 计数操作在计算机中被广泛使用,计数器就是实现这一操作的器件。计数器在计算机系统中的应用主要有:作分频器,产生计算机系统所需的各种时序信号。
根据计数器时钟的作用方式,计??器可分为异步计数器和同步计数器两大类。在异步计数器中由于高位触发器的时钟信号来自低一位触发器的输出,也就是说高位触发器的翻转依赖于低一位触发器的翻转,如图3.3所示。由于各位触发器不是在同一时间翻转,使得计数器速度较低。而且各位触发器输出信号不能同时产生。; 同步计数器中各位触发器的时钟信号是来自同一计数脉冲,各位触发器同时工作,因此工作速度比异步计数器高并且不受计数器位数影响,但同步计数器要比异步计数器复杂许多,而且复杂程度随计数器位数增加而增加。;3.1.4 取反、取补操作及取补器
; 从图中可以看出,当命令NEG到来时(NEG=1),将开放各位与门,某位是否变“1”取决于前一位的或门输出是否为“1”。图中,最低位D0的与门和或门的一个输入端恒接地,因此D0的输出保持不变。而比其高的各位是否取反,则取决于输入数据D0是否为“1”。若D0=1,或门输出为“1”, D1位与门输出为“1”, D1位数据变反,并且使更高各位的或门输出始终为“1”,更高各位均按位取反;若D0=0,或门输出为“0”, D1位与门输出为“0”,使D1位数据不变,而第二位数据D2变反与否又取决于D1位的数据,以此类推,从而实现了求补运算。
;为了直观,控制信号均用上述四类移位类指令操作码表示。Rin为接收来自总线数据的控制信号,Rout为向总线发送数据的控制信号,CP为移位寄存器的打入脉冲信号。;3.2 定点数的加减运算及实现; [例3-1] x=0.1001, y=0.0101,求x+y。
解:[x]补=0.1001, [y]补=0.0101
[x]补 0.1001
+[y]补 0.0101
[x+y]补 0.1110
所以 x+y=+0.1110 ; [例3-2] x=+0.1011, y=-0.0101,求x+y。
解:[x]补=0.1011, [y]补=1.1011
[x]补 0﹒1101
+[y]补 1﹒1010
[x+y]补? 10﹒0111
所以 x+y=0.0110
由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是超过2的进位要丢掉。
;2.补码减法
;[例3-3] 已知x1=-0.1110,x2=+0.1101,求:[x1]补,[-x1]补,[x2]补,[-x2]补。
解: [x1]补=1.0010,[x2]补=0.1101
[-x1]补=﹁[x1]补+2-4=0.1101+0.0001=0.1110
[-x2]补=﹁[x2]补+2-4=1.0010+0.0001=1.0011
;
[例3-4] x=+0.1101,y=+0.0110,求x-y。
解:[x]补=0.1101,[y]补=0.0110, [-y]补=1.1010
[x]补 0.1101
+[-y]补 1.1010
[x-y]补 10.0111
所以 x-y=+0.0111
;3.溢出概念与检测方法;[例3-7] x=+0.1100, y=+0.1000,求x+y。
解:[x]补=00.1100, [y]补=00.1000
[x]补 00.1100
+[y]补 00.1000
[x+y]补 01.0100
两个符号位出现“01”,表示已正溢出,即结果大于+1。
;[例3-8] x=-0.1100, y=-0.1000,求x+y。
解:[x]补=11.0100, [y]补=11.1000
[x]补 11.0100
+[y]补 11.1000
[x+y]补 10.1100
两个符号位出现“10”,表示已负溢出,即结果小于-1。;3.2.2 加减运算的实现; 3.2.4 二-十进制数运算及加法
文档评论(0)