计算机组成原理 溢出的检测PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10页/共22页
2.2.3溢出的检测
举例:
• x=+0.1100, y=+0.1000,求x+y
[x]补
00.1100
+
[y]补
00.1000
————————————————
01.0100
第11页/共22页
• x=-0.1100, y=-0.1000,求x+y
[x]补
11.0100
+
[y]补
11.1000
2、单符号位法
• 定义:
• Cf为符号位产生的进位,
• C0为最高有效位产生的进位
⊕ • V=Cf
C0 ,V=1表示溢出
• Cf C0
0
0
0
1
1
0
1
1
正确(正数) 正溢 负溢 正确(负数)
第15页/共22页
• [例] x=-1100 , y=-1000 , 求 x+y 。 解: [x]补 = 10100 , [y]补 = 11000
• [例16] x=-1101 , y=-1011 , 求 x+y 。 解:[x]补=10011 , [y]补=10101
[x]补
10011
+
[x]补
10101
——————————————
[x+y]补
01000
两个负数相加的结果成为正数,表示负溢。
第4页/共22页
2.2.3 溢出概念与检测方法
溢出的概念
[y]补=24+2 +(-1000) =1000000-1000 =1 1 1 0 0 0
双符号位
第9页/共22页
变形补码运算结果的两个符号位: Sf1 Sf2 0 0正确(正数)
0 1正溢 1 0负溢
1 1正确(负数) • Sf1 表示正确的符号, • 逻辑表达式为V=Sf1⊕Sf2, V=1表示溢出产生 • 可以用异或门来实现
————————————————
[x+y]补
10100
•
进位:
0 1 (表示正溢)
第17页/共22页
• [例] x=-0.0100, y=0.1000,求x+y
• 解: [x]补 = 1.1100 , [y]补 =0.1000
•
[x]补
1.1100
+
[y]补
0.1000
————————————————
————————————————
10.1100
第12页/共22页
• [例17] x=+1100 , y=+1000 , 求 x+y 。 解: [x]补 = 001100 , [y]补 = 001000
[x]补
001100
+
[y]补
001000
————————————————
[x+y]补
010100
2.2.2 溢出的检测
• 溢出的检测 • 可能产生溢出的情况 • 两正数加,变负数,上溢(大于机器所能表示的最大数) • 两负数加,变正数,下溢(小于机器所能表示的最小数)
第1页/共22页
2.2.2 溢出的检测
• 例3:x=+0.1011, y=+0.1001, 求x+y
• 例4:x=-0.1101, y=-0.1011, 求x+y
1.0100
•
进位:
0 1 (表示正溢)
第19页/共22页
• 两种溢出检测方法均可使用异或门实现
• A: Sf1 或者 Cf • B: Sf2 或者 C0
第20页/共22页
• 截止目前,学习了计算机内执行加减法运算的基本理论 • 具体地,在计算机的硬件上怎样实现?
第21页/共22页
感谢观看!
第22页/共22页
第5页/共22页
2.2.2 溢出的检测
一、检测方法
1、双符号位法(参与加减运算的数采用变 形补码表示)
什么是变补码?
对于定点小数:x0.x1x2……xn
x
1>x≥0
[x]补=
4+x
0≥x >-1
第6页/共22页
2.2.3 溢出概念与检测方法
• 定点整数x0x1x2…xn
x
2n>x≥0
[x]补=
[x]补
10100
+
[y]补
11000
————————————————
[x+y]补
01100
•
进位:
1 0 (表示负溢)
第16页/共22页
• [例] x=+1100 , y=+1000 , 求 x+y 。 解: [x]补 = 01100 , [y]补 = 01000
[x]补
01100
+
[y]补
01000
2n+2+x
0≥x ≥ -2n
第7页/共22页
举例:
• x=+0.1100, y=+0.1000,
• X,y的变形补码:
•
[x]补
00.1100
[y]补
00.1000
双符号位
第8页/共22页
• 举例: x=-1100 , y=-1000 , • X和y的变形补码: 。
[x]补=24+2 +(-1100) =1000000-1100 =1 1 0 1 0 0
0.0100
•
进位:
1 1 (正确)
• 这里所说的进位是整个运算过程中出现的进位
第18页/共22页
• [例]x=+0.1100, y=+0.1000,
求x+y
• 解: [x]补 = 0.1100 , [y]补 =0.1000
•
[x]补
0.1100
+
[y]补
0.1000
————————————————
(表示正溢)
第13页/共22页
• [例18] x=-1100 , y=-1000 , 求 x+y 。 解: [x]补 = 110100 , [y]补 = 111000
[x]补
110100
+
[y]补
111000
————————————————
[x+y]补
101100
(表示负溢)
第14页/共22页
2.2.3 溢出的检测
2021/4/23
2
第2页/共22页
• [例15] x=+1101 , y=+1001 , 求 x+y 。 解:[x]补=01011 , [y]补=01001
[x]补
01011
+
[x]补
01001
——————————————
[x+y]补
10100
两个正数相加的结果成为负数,表示正溢。
第3页/共22页
2.2.3溢出的检测
举例:
• x=+0.1100, y=+0.1000,求x+y
[x]补
00.1100
+
[y]补
00.1000
————————————————
01.0100
第11页/共22页
• x=-0.1100, y=-0.1000,求x+y
[x]补
11.0100
+
[y]补
11.1000
2、单符号位法
• 定义:
• Cf为符号位产生的进位,
• C0为最高有效位产生的进位
⊕ • V=Cf
C0 ,V=1表示溢出
• Cf C0
0
0
0
1
1
0
1
1
正确(正数) 正溢 负溢 正确(负数)
第15页/共22页
• [例] x=-1100 , y=-1000 , 求 x+y 。 解: [x]补 = 10100 , [y]补 = 11000
• [例16] x=-1101 , y=-1011 , 求 x+y 。 解:[x]补=10011 , [y]补=10101
[x]补
10011
+
[x]补
10101
——————————————
[x+y]补
01000
两个负数相加的结果成为正数,表示负溢。
第4页/共22页
2.2.3 溢出概念与检测方法
溢出的概念
[y]补=24+2 +(-1000) =1000000-1000 =1 1 1 0 0 0
双符号位
第9页/共22页
变形补码运算结果的两个符号位: Sf1 Sf2 0 0正确(正数)
0 1正溢 1 0负溢
1 1正确(负数) • Sf1 表示正确的符号, • 逻辑表达式为V=Sf1⊕Sf2, V=1表示溢出产生 • 可以用异或门来实现
————————————————
[x+y]补
10100
•
进位:
0 1 (表示正溢)
第17页/共22页
• [例] x=-0.0100, y=0.1000,求x+y
• 解: [x]补 = 1.1100 , [y]补 =0.1000
•
[x]补
1.1100
+
[y]补
0.1000
————————————————
————————————————
10.1100
第12页/共22页
• [例17] x=+1100 , y=+1000 , 求 x+y 。 解: [x]补 = 001100 , [y]补 = 001000
[x]补
001100
+
[y]补
001000
————————————————
[x+y]补
010100
2.2.2 溢出的检测
• 溢出的检测 • 可能产生溢出的情况 • 两正数加,变负数,上溢(大于机器所能表示的最大数) • 两负数加,变正数,下溢(小于机器所能表示的最小数)
第1页/共22页
2.2.2 溢出的检测
• 例3:x=+0.1011, y=+0.1001, 求x+y
• 例4:x=-0.1101, y=-0.1011, 求x+y
1.0100
•
进位:
0 1 (表示正溢)
第19页/共22页
• 两种溢出检测方法均可使用异或门实现
• A: Sf1 或者 Cf • B: Sf2 或者 C0
第20页/共22页
• 截止目前,学习了计算机内执行加减法运算的基本理论 • 具体地,在计算机的硬件上怎样实现?
第21页/共22页
感谢观看!
第22页/共22页
第5页/共22页
2.2.2 溢出的检测
一、检测方法
1、双符号位法(参与加减运算的数采用变 形补码表示)
什么是变补码?
对于定点小数:x0.x1x2……xn
x
1>x≥0
[x]补=
4+x
0≥x >-1
第6页/共22页
2.2.3 溢出概念与检测方法
• 定点整数x0x1x2…xn
x
2n>x≥0
[x]补=
[x]补
10100
+
[y]补
11000
————————————————
[x+y]补
01100
•
进位:
1 0 (表示负溢)
第16页/共22页
• [例] x=+1100 , y=+1000 , 求 x+y 。 解: [x]补 = 01100 , [y]补 = 01000
[x]补
01100
+
[y]补
01000
2n+2+x
0≥x ≥ -2n
第7页/共22页
举例:
• x=+0.1100, y=+0.1000,
• X,y的变形补码:
•
[x]补
00.1100
[y]补
00.1000
双符号位
第8页/共22页
• 举例: x=-1100 , y=-1000 , • X和y的变形补码: 。
[x]补=24+2 +(-1100) =1000000-1100 =1 1 0 1 0 0
0.0100
•
进位:
1 1 (正确)
• 这里所说的进位是整个运算过程中出现的进位
第18页/共22页
• [例]x=+0.1100, y=+0.1000,
求x+y
• 解: [x]补 = 0.1100 , [y]补 =0.1000
•
[x]补
0.1100
+
[y]补
0.1000
————————————————
(表示正溢)
第13页/共22页
• [例18] x=-1100 , y=-1000 , 求 x+y 。 解: [x]补 = 110100 , [y]补 = 111000
[x]补
110100
+
[y]补
111000
————————————————
[x+y]补
101100
(表示负溢)
第14页/共22页
2.2.3 溢出的检测
2021/4/23
2
第2页/共22页
• [例15] x=+1101 , y=+1001 , 求 x+y 。 解:[x]补=01011 , [y]补=01001
[x]补
01011
+
[x]补
01001
——————————————
[x+y]补
10100
两个正数相加的结果成为负数,表示正溢。
第3页/共22页