《运算器和运算方法幻灯片.ppt》由会员分享,可在线阅读,更多相关《运算器和运算方法幻灯片.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、运算器和运算方法运算器和运算方法第1页,共44页,编辑于2022年,星期三3.1 定点运算器的组成和结构定点运算器的组成和结构 定点运算器由算术逻辑运算单元(ALU)、输入数据选择电路、通用寄存器组、输出数据分配电路组成,如下页图所示。其中算术逻辑运算单元的核心部件是加法器,而加法器的逻辑组成包括加法单元与进位传递逻辑单元。第2页,共44页,编辑于2022年,星期三 CPU的结构的结构 第3页,共44页,编辑于2022年,星期三3.1.1 算术逻辑运算单元(算术逻辑运算单元(ALU)运算器中完成数据算术与逻辑运算的部件称为算术逻辑运算单元(Arithmetic and Logic Unit,A
2、LU)。如CPU结构图所示,ALU是运算器的核心,通常表示为两个输入端口,一个输出端口和多个功能控制信号端的一个逻辑符号。ALU处理数据的位数与机器的字长有关。第4页,共44页,编辑于2022年,星期三3.1.2 通用寄存器组通用寄存器组 现代计算机的中央处理器中都有一组通用寄存器,主要用于保存参加运算的操作数和运算结果。之所以在现代计算机中加入通用寄存器是因为它的存取速度要远远高于内存储器的速度。通用寄存器的数量越多,对提高运算器性能和程序执行速度越有利。通用寄存器组是对用户开放的,可以通过指令去使用这些寄存器。第5页,共44页,编辑于2022年,星期三 如上图所示,如上图所示,808680
3、86微处理器有微处理器有1414个个1616位寄存器,包位寄存器,包括括8 8个通用寄存器,个通用寄存器,1 1个指令指针寄存器,个指令指针寄存器,1 1个标志寄存个标志寄存器,器,4 4个段寄存器。它们都有名称,编程时使用其名称个段寄存器。它们都有名称,编程时使用其名称代表其保存的内容。代表其保存的内容。第6页,共44页,编辑于2022年,星期三3.1.3 状态寄存器状态寄存器 状态寄存器主要用于记录一些运算结果的状态。通常情况下,状状态寄存器主要用于记录一些运算结果的状态。通常情况下,状态寄存器由以下几种标志状态位组成:态寄存器由以下几种标志状态位组成:V V(溢出标志位):当运算结果有溢
4、出时,该位被置位;当(溢出标志位):当运算结果有溢出时,该位被置位;当运算结果没有溢出时,该位被清运算结果没有溢出时,该位被清0 0。Z Z(零标志位):当运算结果为(零标志位):当运算结果为0 0时,该位被置位;当运时,该位被置位;当运算结果不为算结果不为0 0时,该位被清时,该位被清0 0。C C(进位或借位标志位):当作加法时如果最高位向前有进位,(进位或借位标志位):当作加法时如果最高位向前有进位,或当作减法时最高位向前无借位,该标志位被置位;当作加法时或当作减法时最高位向前无借位,该标志位被置位;当作加法时如果最高位向前无进位,或当作减法时最高位向前有借位,该标如果最高位向前无进位,
5、或当作减法时最高位向前有借位,该标志位被清志位被清0 0。N N(符号标志位):当运算结果为负数时,该位被置位;当(符号标志位):当运算结果为负数时,该位被置位;当运算结果为正数时,该位被清运算结果为正数时,该位被清0 0。第7页,共44页,编辑于2022年,星期三3.1.4 数据通路数据通路 从一个功能部件向另一个功能部件传送数据所经过的功能部件、总线等称为数据通路。下面以CPU结构图所示的CPU的各功能部件的右半部分运算器为例,解释其数据通路,进而说明运算器的工作过程。第8页,共44页,编辑于2022年,星期三第9页,共44页,编辑于2022年,星期三 在图中,在图中,MUX1MUX1和和
6、MUX2MUX2分别是两个多路数据选分别是两个多路数据选择器,用来选择当前哪两组数据送到择器,用来选择当前哪两组数据送到ALUALU中。中。MUX1MUX1数据有两个来源:通用寄存器的输出和指令中的相对位数据有两个来源:通用寄存器的输出和指令中的相对位移量。移量。MUX2MUX2数据有数据有3 3个来源:通用寄存器的输出、个来源:通用寄存器的输出、数据寄存器的输出和程序计数器的输出。数据寄存器的输出和程序计数器的输出。ALUALU的输的输出信息通过内部数据总线送到通用寄存器中。出信息通过内部数据总线送到通用寄存器中。如果通用寄存器有两个输出端口如果通用寄存器有两个输出端口RARA和和RBRB,
7、有一,有一个输入端口个输入端口RLRL。寄存器中的数据用补码表示。并且。寄存器中的数据用补码表示。并且寄存器寄存器1 1用用R1R1表示,寄存器表示,寄存器2 2用用R2R2表示,寄存器表示,寄存器3 3用用R3R3表示。运算之前表示。运算之前R1=1100R1=1100,R2=0110R2=0110,V V、Z Z、C C、N N标志标志位都为位都为0 0。进行下面的操作后,请问标志位。进行下面的操作后,请问标志位V V、Z Z、C C、N N和和R3R3的值如何变化?的值如何变化?第10页,共44页,编辑于2022年,星期三 1 1R1+R2R1+R2,结果送到,结果送到,结果送到,结果送
8、到R3R3中中中中 操作过程:操作过程:R1R1的内容通过端口的内容通过端口RARA输出,输出,MUX1MUX1将将RARA的内容送入的内容送入ALUALU的的A A输入端;输入端;R2R2的内容通过端口的内容通过端口RBRB输输出,出,MUX2MUX2将将RBRB的内容送入的内容送入ALUALU的的B B输入端。输入端。ALUALU进进行行A A+B B操作,从操作,从Y Y输出端输出结果,并存入输出端输出结果,并存入R2R2寄存器中。寄存器中。ALUALU中的运算:中的运算:11001100 +0110 +0110 10010 10010 送往进位位送往进位位 所以所以R3=0010R3=
9、0010,标志位,标志位C C由由0 0变为变为1 1,其他标志位,其他标志位不变。不变。第11页,共44页,编辑于2022年,星期三 2 2求与求与求与求与R1R1相补的数相补的数相补的数相补的数 操作过程:操作过程:R1R1的内容通过端口的内容通过端口RBRB输出,经过输出,经过MUX2MUX2的选择,将的选择,将RBRB的内容送入的内容送入ALUALU的的B B输入端。在输入端。在MUX1MUX1处选择常数处选择常数“0 0”送入送入ALUALU的的A A输入端,输入端,ALUALU进进行行A A-B B操作,从操作,从Y Y输出端输出结果,并存入输出端输出结果,并存入R3R3寄存器中。
10、寄存器中。由于运算器要进行的是补码运算,由于运算器要进行的是补码运算,A A-B B的功能是通过的功能是通过 A A 补补+-+-B B 补来完成的。补来完成的。ALUALU中的运算:中的运算:A A 补补00000000 +-B B 补补01000100 0-0-B B 补补01000100 所以所以R3=0100R3=0100,结果为负,结果为负,N N标志位由标志位由0 0变为变为1 1,其,其他标志位不变。他标志位不变。第12页,共44页,编辑于2022年,星期三 3利用运算器计算操作数地址或转移地址利用运算器计算操作数地址或转移地址 如果当前执行转移指令,转移地址由程序计数器的值加上
11、相对位移量得出。操作过程:MUX1选择指令寄存器中的相对位移量送入ALU的A输入端,MUX2选择程序计数器PC的内容送入ALU的B输入端,ALU进行A+B运算,从Y输出端输出结果,并存入PC中,即为转移地址。下次执行指令就从转移地址开始执行。第13页,共44页,编辑于2022年,星期三 4关于移位操作关于移位操作 这里以4位二进制数最左边一位为符号位为例,来说明移位操作的规则和操作结果。(1)算术左移SAL 原数X3X2X1X0 算术左移一位之后变为 可见,算术左移时,最高位被移出,用0来补充最低位。移位后的结果(如果没有溢出发生)是原数的2倍。在没有溢出的情况下,如果左移n位,则移位后的结果
12、是原数的2n倍;若有溢出情况发生,则移位后的结果数据不定。X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 0 0第14页,共44页,编辑于2022年,星期三 (2 2)算术右移)算术右移SARSAR 原数原数X X3 3X X2 2X X1 1X X0 0 算术右移一位之后变为算术右移一位之后变为 可见,算术右移时,最低位被移出,最高位可见,算术右移时,最低位被移出,最高位保持不变。移位后的结果(如果没有溢出发生)保持不变。移位后的结果(如果没有溢出发生)是原数的是原数的1/21/2。在没有溢出的情况下,如果右移。在没有溢出的情况下,如果右移n n位,位,则
13、移位后的结果是原数的则移位后的结果是原数的1/21/2n n;若有溢出情况发生,;若有溢出情况发生,则移位后的结果数据不定。则移位后的结果数据不定。X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X3 X3 X2 X2 X1 X1第15页,共44页,编辑于2022年,星期三 (3 3)逻辑左移)逻辑左移SHLSHL 原数原数X X3 3X X2 2X X1 1X X0 0 逻辑左移一位之后变为逻辑左移一位之后变为 可见,逻辑左移时,最高位被移出,用可见,逻辑左移时,最高位被移出,用0 0来补来补充最低位,结果与算术左移相同。充最低位,结果与算术左移相同。(4 4)逻辑右移)逻辑右移
14、SHRSHR 原数原数X3X2X1X0X3X2X1X0 逻辑右移一位之后变为逻辑右移一位之后变为 可见,逻辑右移时,最低位被移出,最高位可见,逻辑右移时,最低位被移出,最高位用用0 0补充,结果与算术右移不同。补充,结果与算术右移不同。X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 0 0 X3 X3 X2 X2 X1 X1 X0 X0 0 0 X3 X3 X2 X2 X1 X1第16页,共44页,编辑于2022年,星期三 (5 5)循环左移)循环左移ROLROL 原数原数X X3 3X X2 2X X1 1X X0 0 循环左移一位之后变为循环左移一位之后
15、变为 可见,循环左移时,所有的位顺序向左移一可见,循环左移时,所有的位顺序向左移一位,最低位由最高位循环移入。位,最低位由最高位循环移入。(6 6)循环右移)循环右移RORROR 原数原数X X3 3X X2 2X X1 1X X0 0 循环右移一位之后变为循环右移一位之后变为 可见,循环右移时,所有的位顺序向右移一可见,循环右移时,所有的位顺序向右移一位,最高位由最低位循环移入。位,最高位由最低位循环移入。X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 X3 X3 X0 X0 X3 X3 X2 X2 X1 X
16、1第17页,共44页,编辑于2022年,星期三 (7 7)带进位的循环左移)带进位的循环左移RCLRCL 原数原数X X3 3X X2 2X X1 1X X0 0 循环左移一位之后变为循环左移一位之后变为 (8 8)带进位的循环右移)带进位的循环右移RCRRCR 原数原数X X3 3X X2 2X X1 1X X0 0 循环右移一位之后变为循环右移一位之后变为C C X3 X3 X2 X2 X1 X1 X0 X0 0 0 C C X3 X3 X2 X2 X1 X1 C C X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X2 X2 X1 X1 X0 X0 C C第18页,共44页,
17、编辑于2022年,星期三3.1.5 定点运算器的基本结构定点运算器的基本结构 定点运算器包括ALU、阵列乘除器、寄存器、多路开关、缓冲器、数据总线等逻辑部件。定点运算器大体有如下3种结构形式。第19页,共44页,编辑于2022年,星期三 1.1.单总线结构的运算器单总线结构的运算器 如图如图(a)a)所示。由于所有部件都要接所示。由于所有部件都要接到同一单总线上,为了把两个操作数输到同一单总线上,为了把两个操作数输入到入到ALUALU,需要分两次来做,而且还需,需要分两次来做,而且还需要要A A和和B B两个缓冲寄存器。只有当这两两个缓冲寄存器。只有当这两个操作数同时出现在个操作数同时出现在A
18、LUALU的两个输入端的两个输入端时,时,ALUALU才能执行加法。当加法结果出才能执行加法。当加法结果出现在单总线上时,由于输入数据已保存现在单总线上时,由于输入数据已保存在缓冲寄存器中,它并不会对输入数据在缓冲寄存器中,它并不会对输入数据产生影响。然后,再由第产生影响。然后,再由第3 3个传送命令个传送命令把加法的把加法的“和和”传送到目的寄存器中。传送到目的寄存器中。由此可见,这种结构的主要缺由此可见,这种结构的主要缺点是操作速度较慢。点是操作速度较慢。第20页,共44页,编辑于2022年,星期三 2.2.双总线结构的运算器双总线结构的运算器 如图如图 (b)b)所示。在这种运算器中,两
19、个操作数同时送到所示。在这种运算器中,两个操作数同时送到ALUALU进行运进行运算,只需要一次操作数控制,而且马上就可以得到运算结果。从图中算,只需要一次操作数控制,而且马上就可以得到运算结果。从图中可以看出,两条总线各自把其数据送至可以看出,两条总线各自把其数据送至ALUALU的输入端。特殊寄存器分的输入端。特殊寄存器分成两组,它们分别与一条总线交换数据。这样,通用寄存器中的数就成两组,它们分别与一条总线交换数据。这样,通用寄存器中的数就可以进入到任一组特殊寄存器中去,从而使数据传送更为灵活。可以进入到任一组特殊寄存器中去,从而使数据传送更为灵活。3.3.三总线结构的运算器三总线结构的运算器
20、 如图如图(c c)所示。在三总线结构中,所示。在三总线结构中,ALUALU的两个输入端分别由两的两个输入端分别由两条总线供给,而条总线供给,而ALUALU的输出则与第的输出则与第3 3条总线相连。这样,算术逻辑条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。由于操作就可以在一步的控制之内完成。由于ALUALU本身有时间延迟,所以,本身有时间延迟,所以,打入输出结果的选通脉冲必须考虑到包括这个延迟。另外,设置了一打入输出结果的选通脉冲必须考虑到包括这个延迟。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从总线个总线旁路器。如果一个操作数不需要修改,而直接从总线2 2传送
21、到总传送到总线线3 3,那么可以通过控制总线旁路器把数据传出;如果一个操作数传送,那么可以通过控制总线旁路器把数据传出;如果一个操作数传送时需要修改,那么就借助于时需要修改,那么就借助于ALUALU。很显然,三总线结构的运算器的特。很显然,三总线结构的运算器的特点是操作速度快。点是操作速度快。第21页,共44页,编辑于2022年,星期三3.2 算术逻辑运算的基本电路算术逻辑运算的基本电路 3.2.1 半加器半加器 有两个输入端,以供两个有两个输入端,以供两个代表数字(代表数字(A0、B0)的电位输)的电位输入;有两个输出端,用以输出入;有两个输出端,用以输出总和总和S0和进位和进位C0。这样的
22、电路。这样的电路可能出现的状态可用左图表示。可能出现的状态可用左图表示。第22页,共44页,编辑于2022年,星期三 从下图中可以看出这分别是“与”和“异或”的关系,可以用“与门”和“异或门”组成半加器,如(a)图。在电子技术中常把基本元件的电路图简化成符号,如图(b)所示就是半加器的符号。第23页,共44页,编辑于2022年,星期三3.2.2 全加器全加器 全加器有3个输入端,即Ai、Bi和Ci,有两个输出端,即Si和Ci+1。其真值表和电路图如下图所示。第24页,共44页,编辑于2022年,星期三 由此图分析可知,其总和Si可用“异或门”来实现,而其进位Ci+1可用3个“与门”和1个“异或
23、门”来实现。可见全加器可以处理低位进位,如果多个一位全加器按进位方向串联起来,就可以实现多位全加。全加器的电路如下图所示。第25页,共44页,编辑于2022年,星期三3.3 定点加定点加/减法运算减法运算 数据在计算机中可以采用原码、反码和补码表示,数据在计算机中可以采用原码、反码和补码表示,但是对于计算机来讲,原码加减法运算规则比较复杂,但是对于计算机来讲,原码加减法运算规则比较复杂,实际上机器中很少采用原码表示数的加减法运算,而用实际上机器中很少采用原码表示数的加减法运算,而用补码来表示,其运算结果也是用补码表示的。若结果的补码来表示,其运算结果也是用补码表示的。若结果的符号为符号为0 0
24、,表示正数,得到的补码即是原码,只需在,表示正数,得到的补码即是原码,只需在数值部分前面加上数值部分前面加上“+”号,即为真值。若结果的符号号,即为真值。若结果的符号为为1 1,表示负数,得到的是补码,这时需要对得到的补码,表示负数,得到的是补码,这时需要对得到的补码再求补码,得到原码,然后在数值部分前面加上再求补码,得到原码,然后在数值部分前面加上“-”号才号才为真值。为真值。第26页,共44页,编辑于2022年,星期三3.3.1 定点补码的加法运算定点补码的加法运算 规则:X补补+Y补补=X+Y补补(mod 2n)现根据X、Y的符号及绝对值的大小分4种情况进行讨论。(1)X0,Y0,X+Y
25、0。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:X补补+Y补补=X+Y=X+Y补补(mod 2n)第27页,共44页,编辑于2022年,星期三 例3-1:已知X=+00010100B,Y=+00000101B,进行补码加法运算,求X补+Y补。X补=00010100 (+20的补码)+)Y补=00000101 (+5的补码)X+Y补=00011001 (+25的补码)符号位第28页,共44页,编辑于2022年,星期三 (2)X0,Y0,且|X|Y|,即0X+Y0,Y|X|,即2n-1X+Y0 由补码定义可知:X补补=X Y补补=2n+Y X+Y补补=2n+(X+Y)X补
26、补+Y补补=X+2n+Y=2n+(X+Y)=X+Y补补(mod 2n)结果得到的是一个负数的补码形式。第31页,共44页,编辑于2022年,星期三 例3-3:已知X=+00000011B,Y=-01101001B,进行补码加法运算,求X补补+Y补补。X补补=00000011 (+3的补码)+)Y补补=11101001 (-23的补码)X+Y补补=11101100 (-20的补码)符号位第32页,共44页,编辑于2022年,星期三 (4)X0,Y0,X+Y Y Y,则,则X X Y Y无借位,差值为正,无借位,差值为正,X X Y Y 补补=X X 补补+Y Y 补补之和必大于之和必大于2 2n
27、 n,最高位有进位,得到的和即是,最高位有进位,得到的和即是X X Y Y的原码。的原码。例例3-73-7:已知:已知X=+0100100BX=+0100100B,Y=+0000011BY=+0000011B,进行补码减法,进行补码减法运算,求运算,求X-YX-Y。X X 补补=X X 原原=0100100=0100100 Y Y 补补=Y Y 原原=0000011=0000011 Y Y 补补=11111101=11111101 X X 补补=00100100 =00100100 (+36+36的补码)的补码)+)+)Y Y 补补=11111101 =11111101 (-3-3的补码)的补
28、码)X X-Y Y 补补=100100001 =100100001 (+33+33的补码)的补码)丢失,有进位表示无借位,结果为正数丢失,有进位表示无借位,结果为正数 结果为结果为X X Y Y=+0100001B=+0100001B。第39页,共44页,编辑于2022年,星期三 (2 2)若)若XYXY,则,则X X Y Y有借位,差值为负,有借位,差值为负,X X Y Y 补补=X X 补补+Y Y 补之和必小于补之和必小于2 2n n,最高位无进位,得到的,最高位无进位,得到的和即是(和即是(X X Y Y)=(Y Y X X)的补码。)的补码。例例3-83-8:已知:已知X X=+00
29、01010B=+0001010B,Y Y=+0100000B=+0100000B,进行,进行补码减法运算,求补码减法运算,求X X Y Y。X X 补补=X X 原原=00001010=00001010 Y Y 补补=Y Y 原原=00100000=00100000 Y Y 补补=11100000=11100000 X X 补补=00001010 =00001010 (+10+10的补码)的补码)+)+)Y Y 补补=11100000 =11100000 (3232的补码)的补码)X X+Y Y 补补=11101010 =11101010 (2222的补码)的补码)无进位,表示有借位,结果为负
30、数无进位,表示有借位,结果为负数 结果为结果为X X Y Y=1101010B1101010B。第40页,共44页,编辑于2022年,星期三3.3.4 溢出溢出 采用补码运算时,若结果的数值超出了补码能表示的范围,采用补码运算时,若结果的数值超出了补码能表示的范围,计算结果错误,我们把这种情况称为溢出。计算结果错误,我们把这种情况称为溢出。注意:溢出与进位的性质是不同的,溢出主要用于判断注意:溢出与进位的性质是不同的,溢出主要用于判断带符号数的运算结果是否超过数的表示范围,而进位是指运带符号数的运算结果是否超过数的表示范围,而进位是指运算结果的最高位向更高位进位或借位。算结果的最高位向更高位进
31、位或借位。例如:例如:01101001 01101001 (+105+105)+00110010 +00110010 (+50+50)1001101110011011 符号位符号位 按照补码规定按照补码规定1001101110011011为为 101D101D,这显然是错误的,因为,这显然是错误的,因为105D+50D=155D105D+50D=155D超过了超过了8 8位有符号数所能表示范围的最大值位有符号数所能表示范围的最大值+127D+127D,使数值部分占据了符号位的位置,导致了运算错误。,使数值部分占据了符号位的位置,导致了运算错误。第41页,共44页,编辑于2022年,星期三 下面
32、研究一下判断溢出的方法。常用的判断溢下面研究一下判断溢出的方法。常用的判断溢出的方法有多种,这里重点对利用双进位时位的状出的方法有多种,这里重点对利用双进位时位的状态判断溢出作介绍。态判断溢出作介绍。该方法主要是利用字节的最高位(符号位)和次高该方法主要是利用字节的最高位(符号位)和次高位(数值部分的最高位)的进位状态来判断结果是否发位(数值部分的最高位)的进位状态来判断结果是否发生溢出。为了说明这种方法,引入两个符号生溢出。为了说明这种方法,引入两个符号CSCS和和CSCS+1+1,其中,其中CSCS表示两数值中次高位向符号位进位时的状表示两数值中次高位向符号位进位时的状态,有进位,则态,有
33、进位,则CSCS=1=1,否则为,否则为0 0;CSCS+1+1表示两个符号表示两个符号位向更高位进位时的状态,有进位,则位向更高位进位时的状态,有进位,则CSCS+1=1+1=1,否,否则为则为0 0。并且,参加运算的两个数。并且,参加运算的两个数X X、Y Y的绝对值小于的绝对值小于2 2n n 1 1,只有当两个数同时为正或同时为负,其和,只有当两个数同时为正或同时为负,其和X+YX+Y超过允超过允许的表示范围时,才会发生溢出。许的表示范围时,才会发生溢出。第42页,共44页,编辑于2022年,星期三 (1 1)X X和和Y Y均为正数,当均为正数,当X+YX+Y22n n11时,不会发
34、生溢时,不会发生溢出。出。例例3-93-9:已知:已知X X=+0101101B=+0101101B,Y Y=+0101110B=+0101110B,求,求X+YX+Y。C CS+1S+1 C Cs s 进位位进位位 0 01011 0 01011 进位进位 00101101 +4500101101 +45补补 +00101110 +46+00101110 +46补补 X+YX+Y 补补=01011011=01011011 由于由于X+YX+Y22n1n1,C CS S=0=0,X X和和Y Y均为正,其符号位均为均为正,其符号位均为0 0,所以,所以C CS+1S+1=0=0,由此可知,当,
35、由此可知,当C CS+1S+1C CS S=00=00时,不会发生溢时,不会发生溢出。出。当当X+YX+Y22n1n1时,时,C CS S=1=1,X X和和Y Y均为正,其符号位均为均为正,其符号位均为0 0,所以,所以C CS+1S+1=0=0,由此可知,当,由此可知,当C CS+1S+1C CS S=01=01时,会发生溢时,会发生溢出。出。第43页,共44页,编辑于2022年,星期三 (2 2)X X和和Y Y均为负数,当均为负数,当-2-2n n11 X+YX+Y00时,不会发生溢出。时,不会发生溢出。例例3-113-11:已知:已知X X=-0000101B=-0000101B,Y
36、 Y=-0000010B=-0000010B,求,求X+YX+Y。C CS S+1+1 C CS S 进位位进位位 1 1111110 1 1111110 进位进位 11111011 11111011 55补补 +11111110 +11111110 22补补 X+YX+Y 补补=11111001=11111001当当C CS+1S+1C CS S=11=11时,不会发生溢出。时,不会发生溢出。当当X+YX+Y-2-2n1n1时,会发生溢出。时,会发生溢出。当当C CS+1S+1C CS S=10=10时,会发生溢出。时,会发生溢出。综上所述,当综上所述,当C CS+1S+1C CS S=00=00或或C CS+1S+1C CS S=11=11时不会产生溢出;但当时不会产生溢出;但当C CS+1S+1C CS S=10=10或或C CS+1S+1C CS S=01=01时则产生溢出。换言之,时则产生溢出。换言之,C CS+1S+1和和C CS S相异时相异时产生溢出。产生溢出。第44页,共44页,编辑于2022年,星期三