运算器和运算方法

上传人:平*** 文档编号:48883205 上传时间:2018-07-21 格式:PPT 页数:44 大小:1.54MB
返回 下载 相关 举报
运算器和运算方法_第1页
第1页 / 共44页
运算器和运算方法_第2页
第2页 / 共44页
运算器和运算方法_第3页
第3页 / 共44页
运算器和运算方法_第4页
第4页 / 共44页
运算器和运算方法_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《运算器和运算方法》由会员分享,可在线阅读,更多相关《运算器和运算方法(44页珍藏版)》请在金锄头文库上搜索。

1、第3章 运算器和运算方法3.1 定点运算器的组成和结构3.2 算术逻辑运算的基本电路3.3 定点加/减法运算3.1 定点运算器的组成和结 构定点运算器由算术逻辑运算单元( ALU)、输入数据选择电路、通用寄存器 组、输出数据分配电路组成,如下页图所 示。其中算术逻辑运算单元的核心部件是 加法器,而加法器的逻辑组成包括加法单 元与进位传递逻辑单元。CPU的结构 3.1.1 算术逻辑运算单元( ALU)运算器中完成数据算术与逻辑运算的 部件称为算术逻辑运算单元(Arithmetic and Logic Unit,ALU)。如CPU结构图所 示,ALU是运算器的核心,通常表示为两 个输入端口,一个输

2、出端口和多个功能控 制信号端的一个逻辑符号。ALU处理数据的位数与机器的字长有 关。3.1.2 通用寄存 器组现代计算机的中央处理器中都有一组 通用寄存器,主要用于保存参加运算的操 作数和运算结果。之所以在现代计算机中 加入通用寄存器是因为它的存取速度要远 远高于内存储器的速度。通用寄存器的数量越多,对提高运算 器性能和程序执行速度越有利。通用寄存 器组是对用户开放的,可以通过指令去使 用这些寄存器。 如上图所示,8086微处理器有14个16位寄 存器,包括8个通用寄存器,1个指令指针寄存 器,1个标志寄存器,4个段寄存器。它们都有 名称,编程时使用其名称代表其保存的内容。3.1.3 状态寄

3、存器状态寄存器主要用于记录一些运算结果的状态。通 常情况下,状态寄存器由以下几种标志状态位组成:V(溢出标志位):当运算结果有溢出时,该位被 置位;当运算结果没有溢出时,该位被清0。Z(零标志位):当运算结果为0时,该位被置位; 当运算结果不为0时,该位被清0。C(进位或借位标志位):当作加法时如果最高位 向前有进位,或当作减法时最高位向前无借位,该标志 位被置位;当作加法时如果最高位向前无进位,或当作 减法时最高位向前有借位,该标志位被清0。N(符号标志位):当运算结果为负数时,该位被置 位;当运算结果为正数时,该位被清0。3.1.4 数据 通路从一个功能部件向另一个功能部件传 送数据所经过

4、的功能部件、总线等称为数 据通路。下面以CPU结构图所示的CPU的各功 能部件的右半部分运算器为例,解释其数 据通路,进而说明运算器的工作过程。在图中,MUX1和MUX2分别是两个多路数 据选择器,用来选择当前哪两组数据送到ALU 中。MUX1数据有两个来源:通用寄存器的输出 和指令中的相对位移量。MUX2数据有3个来源 :通用寄存器的输出、数据寄存器的输出和程 序计数器的输出。ALU的输出信息通过内部数 据总线送到通用寄存器中。如果通用寄存器有两个输出端口RA和RB, 有一个输入端口RL。寄存器中的数据用补码表 示。并且寄存器1用R1表示,寄存器2用R2表示 ,寄存器3用R3表示。运算之前R

5、1=1100, R2=0110,V、Z、C、N标志位都为0。进行下面 的操作后,请问标志位V、Z、C、N和R3的值如 何变化?1R1+R2,结果送到R3中操作过程:R1的内容通过端口RA输出, MUX1将RA的内容送入ALU的A输入端;R2的 内容通过端口RB输出,MUX2将RB的内容送入 ALU的B输入端。ALU进行A+B操作,从Y输出 端输出结果,并存入R2寄存器中。ALU中的运算:1100+ 011010010送往进位位所以R3=0010,标志位C由0变为1,其他标志 位不变。2求与R1相补的数操作过程:R1的内容通过端口RB输出,经过 MUX2的选择,将RB的内容送入ALU的B输入端

6、。在MUX1处选择常数“0”送入ALU的A输入端 ,ALU进行A-B操作,从Y输出端输出结果,并 存入R3寄存器中。由于运算器要进行的是补码 运算,A-B的功能是通过A补+-B补来完成的 。ALU中的运算:A补0000+ -B补01000-B补0100所以R3=0100,结果为负,N标志位由0变为1 ,其他标志位不变。3利用运算器计算操作数地址或转移地 址如果当前执行转移指令,转移地址由 程序计数器的值加上相对位移量得出。操作过程:MUX1选择指令寄存器中 的相对位移量送入ALU的A输入端, MUX2选择程序计数器PC的内容送入ALU 的B输入端,ALU进行A+B运算,从Y输出 端输出结果,并

7、存入PC中,即为转移地址 。下次执行指令就从转移地址开始执行。4关于移位操作这里以4位二进制数最左边一位为符号位为例 ,来说明移位操作的规则和操作结果。(1)算术左移SAL原数X3X2X1X0算术左移一位之后变为可见,算术左移时,最高位被移出,用0来补 充最低位。移位后的结果(如果没有溢出发生) 是原数的2倍。在没有溢出的情况下,如果左移n 位,则移位后的结果是原数的2n倍;若有溢出情 况发生,则移位后的结果数据不定。X3 X2 X1 X0X2 X1 X0 0(2)算术右移SAR原数X3X2X1X0算术右移一位之后变为可见,算术右移时,最低位被移出,最高位 保持不变。移位后的结果(如果没有溢出

8、发生 )是原数的1/2。在没有溢出的情况下,如果右 移n位,则移位后的结果是原数的1/2n;若有溢 出情况发生,则移位后的结果数据不定。X3 X2 X1 X0X3 X3 X2 X1(3)逻辑左移SHL原数X3X2X1X0逻辑左移一位之后变为可见,逻辑左移时,最高位被移出,用0来补 充最低位,结果与算术左移相同。(4)逻辑右移SHR原数X3X2X1X0逻辑右移一位之后变为可见,逻辑右移时,最低位被移出,最高位 用0补充,结果与算术右移不同。X3 X2 X1 X0X2 X1 X0 0X3 X2 X1 X00 X3 X2 X1(5)循环左移ROL原数X3X2X1X0循环左移一位之后变为可见,循环左移

9、时,所有的位顺序向左移一 位,最低位由最高位循环移入。(6)循环右移ROR原数X3X2X1X0循环右移一位之后变为可见,循环右移时,所有的位顺序向右移一 位,最高位由最低位循环移入。X3 X2 X1 X0 X3 X2 X1 X0 X2 X1 X0 X3 X0 X3 X2 X1(7)带进位的循环左移RCL原数X3X2X1X0循环左移一位之后变为(8)带进位的循环右移RCR原数X3X2X1X0循环右移一位之后变为C X3 X2 X1 X00 C X3 X2 X1C X3 X2 X1 X0X3 X2 X1 X0 C3.1.5 定点运算器的基本 结构定点运算器包括ALU、阵列乘除器、 寄存器、多路开关

10、、缓冲器、数据总线等 逻辑部件。定点运算器大体有如下3种结构形式 。1.单总线结构的运算器如图(a)所示。由于所有部 件都要接到同一单总线上,为 了把两个操作数输入到ALU, 需要分两次来做,而且还需要 A和B两个缓冲寄存器。只有 当这两个操作数同时出现在 ALU的两个输入端时,ALU才 能执行加法。当加法结果出现 在单总线上时,由于输入数据 已保存在缓冲寄存器中,它并 不会对输入数据产生影响。然 后,再由第3个传送命令把加 法的“和”传送到目的寄存器中 。由此可见,这种结构的主 要缺点是操作速度较慢。2.双总线结构的运算器如图 (b)所示。在这种运算器中,两个操作数同时送 到ALU进行运算,

11、只需要一次操作数控制,而且马上就 可以得到运算结果。从图中可以看出,两条总线各自把 其数据送至ALU的输入端。特殊寄存器分成两组,它们 分别与一条总线交换数据。这样,通用寄存器中的数就 可以进入到任一组特殊寄存器中去,从而使数据传送更 为灵活。3.三总线结构的运算器如图(c)所示。在三总线结构中,ALU的两个输入端 分别由两条总线供给,而ALU的输出则与第3条总线相 连。这样,算术逻辑操作就可以在一步的控制之内完成 。由于ALU本身有时间延迟,所以,打入输出结果的选 通脉冲必须考虑到包括这个延迟。另外,设置了一个总 线旁路器。如果一个操作数不需要修改,而直接从总线 2传送到总线3,那么可以通过

12、控制总线旁路器把数据传 出;如果一个操作数传送时需要修改,那么就借助于 ALU。很显然,三总线结构的运算器的特点是操作速度 快。3.2 算术逻辑运算的基本电路 3.2.1 半加器有两个输入端,以供两 个代表数字(A0、B0)的 电位输入;有两个输出端, 用以输出总和S0和进位C0。 这样的电路可能出现的状态 可用左图表示。 从下图中可以看出这分别是“与”和“ 异或”的关系,可以用“与门”和“异或门”组 成半加器,如(a)图。在电子技术中常 把基本元件的电路图简化成符号,如图 (b)所示就是半加器的符号。3.2.2 全 加器全加器有3个输入端,即Ai、Bi和Ci ,有两个输出端,即Si和Ci+1

13、。其真值表 和电路图如下图所示。由此图分析可知,其总和Si可用“异 或门”来实现,而其进位Ci+1可用3个“与 门”和1个“异或门”来实现。可见全加器可以处理低位进位,如果 多个一位全加器按进位方向串联起来,就 可以实现多位全加。全加器的电路如下图 所示。3.3 定点加/减法运算数据在计算机中可以采用原码、反码和补 码表示,但是对于计算机来讲,原码加减法运 算规则比较复杂,实际上机器中很少采用原码 表示数的加减法运算,而用补码来表示,其运 算结果也是用补码表示的。若结果的符号为0, 表示正数,得到的补码即是原码,只需在数值 部分前面加上“+”号,即为真值。若结果的符号 为1,表示负数,得到的是

14、补码,这时需要对得 到的补码再求补码,得到原码,然后在数值部 分前面加上“-”号才为真值。3.3.1 定点补码的加法 运算规则:X补+Y补=X+Y补(mod 2n)现根据X、Y的符号及绝对值的大小分 4种情况进行讨论。(1)X0, Y0, X+Y0。相加两数都 是正数,故其和也一定是正数。正数的补 码和原码是一样的,可得: X补+Y补= X+Y=X+Y补(mod 2n)例3-1:已知X= +00010100B,Y= +00000101B,进行补码加法运算,求X 补+Y补。 X补= 00010100 (+20的补码)+)Y补= 00000101 (+5的补码) X+Y补= 00011001 (+

15、25的补码)符号位(2)X0, Y0, Y|X|,即2n- 1X+Y Y,则XY无借位,差值为正,XY补 =X补+Y补之和必大于2n,最高位有进位,得到的和即 是XY的原码。例3-7:已知X= +0100100B,Y= +0000011B,进行 补码减法运算,求X-Y。X补=X原=0100100Y补=Y原=0000011Y补=11111101X补= 00100100 (+36的补码)+) Y补= 11111101 (-3的补码) X-Y补=100100001 (+33的补码)丢失,有进位表示无借位,结果为正数 结果为XY= +0100001B。(2)若XY,则XY有借位,差值为负,X Y补=X

16、补+Y补之和必小于2n,最高位无进 位,得到的和即是(XY)= (YX)的补码。例3-8:已知X= +0001010B,Y= +0100000B ,进行补码减法运算,求XY。X补=X原=00001010Y补= Y原=00100000Y补= 11100000X补= 00001010 (+10的补码)+)Y补= 11100000 (32的补码) X+Y补= 11101010 (22的补码)无进位,表示有借位,结果为负数结果为XY=1101010B。3.3.4 溢出采用补码运算时,若结果的数值超出了补码能表示 的范围,计算结果错误,我们把这种情况称为溢出。注意:溢出与进位的性质是不同的,溢出主要用于 判断带

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号