(计算机组成原理)第4章 运算方法与运算器-fjw-1

合集下载

006第4章-运算方法与运算器1PPT课件

006第4章-运算方法与运算器1PPT课件

-
10
第4章 运算方法与运算器
补码加减运算举例
例:已知X=+1011,Y=-0100,用补码计算X+Y 和X-Y。
写出补码:
[X]补 =0,1011 [Y]补 =1,1100 [-Y]补 =0,0100 计算:
0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
-
7
第4章 运算方法与运算器
当x+y<0时, 2+(x+y)<2, 所以, (x)补+(y)补= 2+(x+y) =(x+y)补
(3)当 x<0,y>0,则x+y>0或x+y<0,该种情况和第 二种情况一样,把x和y的位置对调即得证。
(4)当x<0,y<0时,则x+y<0。
所以,(x)补=2+x,(y)补=2+y 故: (x)补+ (y)补= 2+x+ 2+y=2+(2+x+y) 因为:|x+y|<1,所以1< 2+x+y<2
4) X= –3 X补=1 1101
Y= –2 Y补=1 1110
Y= 2 Y补=0 0010
0 0001(+1补码)
1 1111(–1补码)
-
12
第4章 运算方法与运算器
例. 求(X – Y)补
1) X= 4 X补=0 0100
2) X= –4 X补=1 1100
Y= –5 Y补=1 1011Biblioteka Y= 5 Y补=0 0101

(计算机组成原理)第4章 运算方法与运算器-fjw-1

(计算机组成原理)第4章 运算方法与运算器-fjw-1

0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
0,1111
[X-Y]补 = 0, 1111
7
2、补码加减运算的溢出判断
❖ 当运算结果超出机器数的表示范围时,称为溢出。计 算机必须具备检测运算结果是否发生溢出的能力,否 则会得到错误的结果。
❖ 对于加减运算,可能发生溢出的情况:同号(两数) 相加,或者异号(两数)相减。
❖ (2)双符号位判溢方法 ▪ X和Y采用双符号位补码参加运算,正数的双符号 位为00,负数的双符号位为11;当运算结果的两 位符号Sf1 Sf2不同时(01或10),发生溢出。 ▪ V= Sf1 ⊕ Sf2= Xf ⊕Yf ⊕Cf⊕ Sf ▪ Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。
一 原码乘法及实现 二 补码乘法及实现 三 阵列乘法器
19
一、原码乘法及实现
❖ 由于计算机的软硬件在逻辑上具有一定的等价性,因 此实现乘除法运算,可以有三种方式:
❖ Ⅰ.用软件实现。
▪ 硬件上:设计简单,没有乘法器和除法器。 ▪ 指令系统:没有乘除指令,但有加/减法和移位指
令 ▪ 实现:乘除运算通过编制一段子程序来实现 ▪ 算法:程序中运用串行乘除运算算法,循环累加、
Xf 符号位
X1 X2
Xf 符号位
X1 X2
Xn
0
Xn
14
补码的算术移位举例
❖ 例:设X=0.1001,Y=-0.0101,求 ▪ [X]补= 0?.1001 ▪ [2X]补= ?1.0010(溢出) ▪ [X/2]补=?0.0100 ▪ [Y]补= 1?.1011 ▪ [2Y]补= ?1.0110 ▪ [Y/2]补=?1.1101

4计算机组成原理(第四章)

4计算机组成原理(第四章)

23
算术逻辑部件ALU
实现Ai+Bi 选择S3~S0=1011 、M=1
Fi=( Ai+Bi )⊕0= Ai+Bi
实现AiBi 选择S3~S0=1110 、M=1
控制信号与选择器输出关系
S3 S2 Xi
S1 S0 Yi
0 0 1 0 0 Ai 0 1 Ai+Bi 0 1 AiBi
1 0 Ai+Bi 1 0 AiBi
■ 2■因逻辑相同,能直接用4位先行进位电路(CLA)生成这些信

16
多级先行进位
组内进位信号能同时产生、组间进位信号也能同时产生,由此 可构成多级并行进位逻辑。16位2级先行进位加法器如下图:
17
多级先行进位
二级先行进位的实现思路(16位为例): 4位一组分成4组,组内实现先行进位,为一级先行进位;其 电路称为成组先行进位电路; 让一级进位链多产生两个辅助函数Gi*和Pi*,并作为高一级 先行进位的输入,该高一级进位为二级先行进位; 组间进位信号C4.C8、C12、C16,根据其逻辑关系式由二级进 位链来产生;(注:一级和二级进位链用同一电路) 再将组间进位信号C4.C8、C12、C16输入一级加法电路,与操 作数一起产生和的输出。
15
多级先行进位
四个组内的最高进位C16.C12、C8、C4可以分别表示为
:C4 = G1* + P1* C0 C8 = G2* + P2* C4 C12 = G3* + P3* C8 C16 = G4* + P4* C12
■ 1■这4组进位结构与前述4位先行进位逻辑完全相同,组 间进位信号只与最低进位C0有依赖关系, 所以能同时 产生
控制参数不同,得到的组合函数也不同,就能实现多种算术和逻 辑运算——ALU。

经典:计算机组成原理-运算方法和运算器

经典:计算机组成原理-运算方法和运算器
44
C n+1= Y0+ X0 Cn
C n+2= Y1+ Y0 X1 + X0 X1 Cn
C n+3= Y2 + Y1 X2 + Y0 X1 X2 + X0 X1 X2 Cn
C n+4= Y3 + Y2 Y3 + Y1 X2 X3 + Y0 X1 X2 X3 + X0 X1 X2 X3 Cn
p* G*
1.外部特性
41
工作方式: 正逻辑 负逻辑
控制方式: M=0 算术运算 M=1 逻辑运算
42
芯片管脚介绍:
控制端:S0 、 S1 、 S2 、 S3 、 M 输入端: A0 、B0 、 A1 、B1 、A2 、B2 、A3 、B3 进位输入端: Cn 输出端: F0 、F1 、 F2 、F3 进位输出端: Cn+4 比较输出端:A=B
被乘数 乘数
[X]原= Xf . Xn-1 …… X1 X0 [Y]原= Yf . Yn-1 …… Y1 Y0
积 [Z]原= (Xf Yf )(0. xn-1 …… x1 x0)(0. yn-1 …… y1 y0)
如下图:
27
110 11
1010 1
110 11
000 00
110 11
000 00
纯整数〔X〕反 =
X, (2n+1 – 1)+ x ,
2n > x ≥ 0 0≥ x > - 2n
纯小数〔X〕反 =
X, (2 – 2-n)+ x ,
1>x≥0 0≥ x > -1
特点:表示简单易懂,但运算复杂;另外还存在 零表示的不唯一性。

计算机组成原理第四章课后习题及答案_唐朔飞().doc

计算机组成原理第四章课后习题及答案_唐朔飞().doc

第4 章存储器1.解释概念:主存、辅存、Cache RAM SRAM DRAMROMPROMEPROVEEPROM CDRO、MFlash Memory 。

答:主存:主存储器,用于存放正在执行的程序和数据。

CPU可以直接进行随机读写,访问速度较高。

辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。

Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。

RAM半导体随机存取存储器,主要用作计算机中的主存。

SRAM 静态半导体随机存取存储器。

DRAM 动态半导体随机存取存储器。

ROM 掩膜式半导体只读存储器。

由芯片制造商在制造时写入内容,以后只能读出而不能写入。

PROM 可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。

EPRO M紫外线擦写可编程只读存储器。

需要修改内容时,现将其全部内容擦除,然后再编程。

擦除依靠紫外线使浮动栅极上的电荷泄露而实现。

EEPROM电擦写可编程只读存储器。

CDROMI只读型光盘。

Flash Memory :闪速存储器。

或称快擦型存储器。

2.计算机中哪些部件可以用于存储信息?按速度、容量和价格/ 位排序说明。

答:计算机中寄存器、Cache主存、硬盘可以用于存储信息。

按速度由高至低排序为:寄存器、Cache主存、硬盘;按容量由小至大排序为:寄存器、Cache主存、硬盘;按价格/位由高至低排序为:寄存器、Cache主存、硬盘3.存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。

Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

(完整版)计算机组成原理第4章作业参考答案

(完整版)计算机组成原理第4章作业参考答案

第4章部分习题参考答案【4-4】已知X和Y,试用它们的变形补码计算出X + Y,并指出结果是否溢出(3)X = -0.10110,Y = -0.00001解:[X]补= 1.01010 [Y]补= 1.111111 1 . 0 1 0 1 0+ 1 1 . 1 1 1 1 11 1 . 0 1 0 0 1无溢出,X+Y = -0.10111【4-5】已知X和Y,试用它们的变形补码计算出X - Y,并指出结果是否溢出(3)X = 0.11011,Y = -0.10011解:[X]补= 0.11011 [-Y]补= 0.100110 0 . 1 1 0 1 1+ 0 0 . 1 0 0 1 10 1 . 0 1 1 1 0结果正溢【4-8】分别用原码乘法和补码乘法计算X * Y(1)X = 0.11011,Y = -0.11111法一:原码一位乘算法解:|X| = 0.11011→B |Y| = 0.11111→C 0→AA C 说明1 1 1 1 1C5 = 1, +|X|1 1 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 1 1 1 部分积右移一位→C5 = 1, +|X|1 0 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 0 1 1 部分积右移一位→C5 = 1, +|X|0 0 1 0 1 部分积右移一位→|X * Y| = 0.1101000101Ps = Xs ⊕ Ys = 0 ⊕ 1 = 1X*Y = -0.1101000101法二:补码一位乘算法解:[X]补= 0.11011→B [Y]补= 1.00001→C [-X]补= 1.00101 0→AA C 附加说明0 0. 0 0 0 0 0 1 0 0 0 0 1 0+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 11 1. 1 0 0 1 0 1 1 0 0 0 0 1 部分积右移一位→+0 0. 1 1 0 1 1 C4C5 = 01 +|X|0 0. 0 1 1 0 10 0. 0 0 1 1 0 1 1 1 0 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 1 1 00 0. 0 0 0 1 1 0 1 1 1 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 1 10 0. 0 0 0 0 1 1 0 1 1 1 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 0 10 0. 0 0 0 0 0 1 1 0 1 1 1 0 部分积右移一位→+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 1[X*Y]补= 11.0010111011X*Y = -0.1101000101【4-10】计算X/Y(2)X = -0.10101,Y = 0.11011原码恢复余数法:解:|X| = -0.101010→A |Y| = 0.110110→B [-|Y|]补= 1.00101 0→C0 0. 1 0 1 0 1 0 0 0 0 0 0+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 0 1 0 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 0 1 0 1 0 0 0 0 0 0 商00 1. 0 1 0 1 0 0 0 0 0 0 0 左移←+1 1. 1 1 0 0 1 -|Y|0 0. 0 1 1 1 1 0 0 0 0 0 1 >0,商10 0. 1 1 1 1 0 0 0 0 0 1 0 左移←+1 1. 0 0 1 0 1 -|Y|0 0. 0 0 0 1 1 0 0 0 0 1 1 >0,商10 0. 0 0 1 1 0 0 0 0 1 1 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 0 1 0 1 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 0 1 1 0 0 0 0 1 1 0 商00 0. 0 1 1 0 0 0 0 1 1 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1.1 0 0 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 1 1 0 0 0 0 1 1 0 0 商00 0. 1 1 0 0 0 0 1 1 0 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 1 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 1 0 0 0 0 1 1 0 0 0 商0Qs = Xs⊕Ys = 0⊕1 = 1Q = -0.11000,R = 0.11000*2-5【4-11】设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题(2)X = 2-101*0.101100,Y = 2-100*(-0.101000)解:[X]补= 1011;0.101100[Y]补= 1100;1.011000对阶:△E = Ex – Ey = -5 -(-4)= -1Ex < Ey,将Mx右移一位,Ex+1→Ex[X]’补=1011;0.010110尾数求和:0 0. 0 1 0 1 1 0+1 1. 0 1 1 0 0 01 1. 1 0 1 1 1 0尾数结果规格化:尾数左移1位,阶码减1[X+Y]补=1011;1.011100X+Y = (-0.100100)*2-101减法算法过程略,X-Y = 0.111110 * 2-100【4-13】用流程图描述浮点除法运算的算法步骤设:被除数X = Mx * 2Ex; 除数Y = My * 2 Ey。

《计算机组成原理》第4章:运算器

《计算机组成原理》第4章:运算器

/webnew/
4.3.1 定点加法的实现方案
二进制加法是实现算术运算的基础。当采用补码方 案时,加减法可采用统一的方式处理。实际上,乘除 法也是通过加减运算和移位相结合的方案实现的。因 此首先讨论用补码实现加减法对运算器组成的要求。 1. 实现原理 已知:[X+Y]补=[X]补+[Y]补 可推之:[X-Y]补=[X]补+[-Y]补 若已有[Y]补,求[-Y]补,则可用把[Y]补的每一位(包 括符号位和数值位)取反,再在最低位加上1来实现, 由此可得到如图4-6所示的逻辑电路。 加法器和寄存器由多少个二进制位组成,被叫做定点 运算器的字长,一般可为16、32或64位等。它们的
/webnew/
4.2 一个简单的算术逻辑单元
,可送往SN74182构成组间并行进位。有关的逻 辑式如下。 Cn+1= G0+P0Cn Cn+2= G1+P1G0+P1P0Cn Cn+3= G2+P2G1+P2 P1G0+ P2P1P0Cn Cn+4= G· 3P2P1P0Cn=G· n=G+PCn P PC 其中,G=G3+P3G2+P3P2G1+P3P2P1G0 P= P3P2P1P0 (3)ALU四位数据的输入选择逻辑,位于图的下半 部分,选择运算功能。
图4-4 用4片74181构成的16位ALU
/webnew/
4.2 一个简单的算术逻辑单元
如果采用组间并行进位结构,可增加并行进 位链芯片SN74182。图4-5提供了一个16位 连接实例。74181输出的小组进位产生函数 G与进位传递函数P,可作为并行进位链 74182的输入,而74182则向各74181提供 组间进位信号。74182的输出还可支持更高 一级的并行进位链,从而可构造更长位数的 ALU。

计算机组成原理 运算方法与运算器

计算机组成原理 运算方法与运算器

真值
原码
-128
-127
1111 1111
...
...
-1
1000 0001
-0
1000 0000
+0
0000 0000
+1
0000 0001
...
...
2021年+3月12317日星期三 0111 1111
反码
1000 0000
...
1111 1110 1111 1111 0000 0000 0000 0001
第2章 运算方法和运算器
目录
2.0 数据的类型
2.1 数据与文字的表示方法 (掌握)
2.2 定点加法、减法运算
(掌握)
2.3 定点乘法运算
(掌握)
2.4 定点除法运算
(掌握)
2.5 定点运算器的组成
(了解)
2.6 浮点运算方法和浮点运算器(理解)
2021年3月31日星期三
2
学习要求
掌握定点和浮点数的表示方法,表示范围; 掌握定点数的补码加减法、常用的乘除法运算方法; 掌握浮点数的加减运算方法; 掌握数据校验的方法; 理解溢出判断方法; 清楚运算器部件的组成结构及设计方法。
阶码E:8 位,采用有偏移值的移码表示,移码域值大则其指数也大; 移127码,即E=e+127,E的8位二进制数即为移127码的编码;
浮点数的真值:N=(-1)S×(1.M)×2E-127
2021年3月31日星期三
19
IEEE754 标准格式 (64位格式)
其真值表示为: x=(-1)S×(1.M)×2E-1023
...
0111 1111
补码
1000 0000 1000 0001
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24
举例
❖ 例如:X=+1011, Y=-1101,用原码 一位乘法计算 P=X·Y。
❖ [X]原=0,1011 ❖ [Y]原=1,1101 ❖ Ps=Xs⊕Ys
=0⊕1=1 ❖ |P| = |X|·|Y|
[P]原=1,10001111
部分积 0,0000 + 0,1011 0,1011 0,0101 + 0,0000 0,0101 0,0010 + 0,1011 0,1101 0,0110 + 0,1011 1,0001 0,1000
❖ (2)双符号位判溢方法 ▪ X和Y采用双符号位补码参加运算,正数的双符号 位为00,负数的双符号位为11;当运算结果的两 位符号Sf1 Sf2不同时(01或10),发生溢出。 ▪ V= Sf1 ⊕ Sf2= Xf ⊕Yf ⊕Cf⊕ Sf ▪ Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
30
第二次求部分积
右移1位
A(0 部0 10分01积10)
Q(1乘1 数11|1Y1|)0Q1 n
右移一位
CF
缓冲器
CP
00000 1101 01011 1101 00101 1110 00101 1110 00010 1111
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
31
第三次求部分积 加运算:+|X| 00000 1101
01011 1101
A(0 部01 01分10积01)
Q(1乘数1 |1Y|) 1Qn 00101 1110
右移一位
CF
缓冲器
CP
00101 1110 00010 1111
Cn 并行加法器(n位) C0
01101 1111
[X+Y]补 00,0001
Sf1 Sf2=00,无溢出
[X]补 00,1000 + [-Y]补 11,0111
[X-Y]补 11,1111
Sf1 Sf2=11,无溢出
[X]补 11,1000 + [-Y]补 11,0111
[X-Y]补 10,1111
Sf1 Sf2=10,负溢出
10
3、补码加减运算器
❖ 确定发生溢出的情况: ▪ 正数相加,且结果符号位为1; ▪ 负数相加,且结果符号位为0; ▪ 正数-负数,且结果符号位为1; ▪ 负数-正数,且结果符号位为0;
8
常用的判溢方法(补码加减运算)
❖ (1)单符号位判溢方法2 ▪ 当最高有效位产生的进位和符号位产生的进位不 同时,加减运算发生了溢出。 ▪ V=C1⊕Cf
Xf 符号位
X1 X2
Xf 符号位
X1 X2
Xn
0
Xn
14
补码的算术移位举例
❖ 例:设X=0.1001,Y=-0.0101,求 ▪ [X]补= 0?.1001 ▪ [2X]补= ?1.0010(溢出) ▪ [X/2]补=?0.0100 ▪ [Y]补= 1?.1011 ▪ [2Y]补= ?1.0110 ▪ [Y/2]补=?1.1101
S≤9时,结果正确,
不需校正。
C1
❖ 对于8421 BCD码,校
正条件为:
▪ S8’S4’S2’S1’ ≥1010
▪ 或C=1
S8 S4 S2 S1
四位二进制加法器
0
0
P
S8'S4' S2'S1'
四位二进制加法器
C
C0
A8 A4 A2 A1 B8 B4 B2 B1
18
4.2 定点数的乘法运算及实现
• Sf1 Sf2=10时,结果正溢出; • Sf1 Sf2=11时,结果负溢出。 ▪ 由于移码运算用于浮点数的阶码,当运算结果正 溢出时,浮点数上溢;当运算结果负溢出时,浮 点数下溢,当作机器零处理。
17
四、十进制加法运算
ห้องสมุดไป่ตู้
❖ 十进制加法器实现: 二进制加法器+校正 电路
❖ 当相加的两数之和
S>9时,加6校正;当
▪ 指令系统:具有乘除法指令。 ▪ 实现:完全通过硬件来实现。 ▪ 算法:并行乘/除法。 ▪ 运算速度:很快,但硬件设计相当复杂。 ▪ 适用场合:高性能CPU。
1、手工乘法算法 2、原码一位乘法算法 3、原码乘法的硬件实现
22
1、手工乘法算法
❖ 手工计算1011×1101,步骤: ❖ 手工算法:对应每1位乘数求得1项位
同时,并行加法器的最低位产生进位,即B取反加1, 此时并行加法器的运算相当于[A]补加[-B]补 ,完成减 法运算。
12
二、机器数的移位运算
❖二进制数据(真值)每相对于小数点左移一位,相当 于乘以2;每相对于小数点右移一位,相当于除以2。
❖计算机中的移位运算分为: ▪ 1、逻辑移位:将移位的数据视为无符号数据,各 数据位在位置上发生了变化,导致无符号数据的数 值(无正负)放大或缩小。 ▪ 2、算术移位:将移位的数据视为带符号数据(机 器数)。算术移位的结果,在数值的绝对值上进行 放大或缩小,同时,符号位必须要保持不变。 ▪ 3、循环移位:所有的数据位在自身范围内进行左 移或者右移,左移时最高位移入最低位,右移时最 低位移入最高位。
例: [X]补 =0.1101,则: [-X]补 = 1?.0011 [Y]补 =1.1101,则: [-Y]补 = ?0.0011
6
补码加减运算举例
❖例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。
▪写出补码:
[X]补 =0,1011 ▪ 计算:
[Y]补 =1,1100 [-Y]补 =0,0100
15
三、移码加减运算与判溢
❖ 移码和移码计算
❖ [X]移 =2n+X
[Y]移 =2n+Y -2n≤X≤2n-1
❖ [X]移 + [Y]移 =2n+X+2n+Y= 2n+(2n +X+Y)

= 2n + [ X+Y]移
❖ [X]移 + [-Y]移 = 2n + [ X-Y]移
❖移码和补码混合计算
❖[Y]补 =2n+1+Y (mod 2n+1) ❖[X]移 + [Y]补 = [ X+Y]移
一 原码乘法及实现 二 补码乘法及实现 三 阵列乘法器
19
一、原码乘法及实现
❖ 由于计算机的软硬件在逻辑上具有一定的等价性,因 此实现乘除法运算,可以有三种方式:
❖ Ⅰ.用软件实现。
▪ 硬件上:设计简单,没有乘法器和除法器。 ▪ 指令系统:没有乘除指令,但有加/减法和移位指
令 ▪ 实现:乘除运算通过编制一段子程序来实现 ▪ 算法:程序中运用串行乘除运算算法,循环累加、
16
三、移码加减运算与判溢
❖ 移码运算结果判溢:双符号位 0 Xf X1 X2 ……Xn
▪ [X]移的最高符号位恒为0
+ Yf Yf Y1 Y2 ……Yn
▪ [Y]补采用双符号位
Sf1 Sf2 S1 S2 ……Sn
❖ 移码运算结果溢出的判断条件是:
▪ 当结果的最高符号位Sf1=1时溢出,Sf1=0时结果正 确。
控制逻辑
B(0被1乘0数1|X1|)
32
第三次求部分积
乘数Y 1101
操作说明 Y4=1,+|X|
1110
右移一位 Y3=0,+0
1 1 1 1 右移一位 Y2=1,+|X|
1 1 1 1 右移一位 Y1=1,+|X|
1111
右移一位
25
3、原码乘法的硬件实现
A(部分积)
Q(乘数|Y|) Qn
右移一位
缓冲器 C F
Cn 并行加法器(n位) C0
C
计数器 P =0
23
2、原码一位乘法算法:
❖ 假设[X]原=XS X1 X2 ……Xn , [Y]原=YS Y1 Y2 ……Yn , P=X·Y,PS是积的符号:
❖ 符号位单独处理 Ps=Xs ⊕ Ys ❖ 绝对值进行数值运算 |P|=|X|*|Y| ❖ 初始部分积为0,Yi=1,部分积加|X|,Yi=0,
部分积加0,累加结果右移一位,得新部分 积。 ❖ 累加右移n次,即i=n,n-1,…,2,1。
B ……
Qn Q
…… Bi
控制逻辑电路
控制逻辑
Q D MUL
Q CLR
B(被乘数|X|)
26
原码一位乘法 为各寄存器赋初值 00000 1101
A(0 部0 0分0积0)
Q(乘1 数1|Y0|) Q1n
右移一位
CF
缓冲器
CP
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
27
第一次求部分积 加运算:+|X|
0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
0,1111
[X-Y]补 = 0, 1111
7
2、补码加减运算的溢出判断
❖ 当运算结果超出机器数的表示范围时,称为溢出。计 算机必须具备检测运算结果是否发生溢出的能力,否 则会得到错误的结果。
❖ 对于加减运算,可能发生溢出的情况:同号(两数) 相加,或者异号(两数)相减。
右移指令→乘法,循环减、左移指令→除法。 ▪ 运算速度:较慢。 ▪ 适用场合:单片机。
20
一、原码乘法及实现
❖ Ⅱ.用硬件乘法器和除法器实现。
相关文档
最新文档