计算机组成原理第四章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

§4.1机器数的加减运算及其实现
例: 已知X=+1101,Y=-110,求X+Y 解: [X]补=00001101, [Y]补=11111010 [X+Y]补=[X]补+[Y]补 = 00001101+11111010
符号位
溢出
00001101 +1 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 mod 28
负溢出、正溢出
当发生错误时,采用除以比例因子H的方法求解
§4.1机器数的加减运算及其实现
补码加法特点: 符号与数值部分都参加运算 运算结果按2取模(小数),或按2n取模(整数) 运算结果仍为补码形式
补码相加的规则总结: 若两数的符号不同,相加的结果即为和的补码 若两数符号相同,相加后若其符号不变,结果正确 若两数符号相同,相加后若其符号改变,结果错误: 负溢出、正溢出 当发生错误时,采用除以比例因子H的方法求解
第四章 机器数的运算方法及运算器
4.1 机器数的加减运算及其实现 4.2 定点乘法及其实现 4.3 定点除法及其实现 4.4 浮点数的算术运算 4.5 运算器的组成和结构 4.6 浮点运算器
第二章内容回顾
1. 真值与机器数 2. 定点数的原码、反码、补码 例:写出13与-11的二进制形式真值、原码、 反码、补码。 解:真值:X=+1101,Y=-1011 [X]原= [X]反= [X]补=01101 [Y]原=11011, [Y]反= 10100 [Y]补=10101
符号位 溢出位
1 1 .0 1 1 0 1 +0 0 .1 1 0 0 1 1 0 0 .0 0 1 1 0
mod 22
所以,X-Y=+110
§4.1机器数的加减运算及其实现
例:两负数相减,被减数小于减数。已知X= -11001,Y=-10011,求真值X-Y 解:[X]补=11.00111,[-Y]补=00.10011 [X-Y]补=[X]补+[-Y]补 = 11.00111 + 00.10011
符号位
101001 +010001 111010
§4.1机器数的加减运算及其实现
2. 溢出及其判别方法 溢出原因:字长限制 例:对字长位8位的计算机,定点整数的表示 范围:-128~+127 溢出特点: 两异号数相加或两同号数相减不会产生溢出 两同号数相加或两异号数相减可能产生溢出 正溢:结果为正且大于最大正数 负溢:结果为负且小于最小负数
§4.1机器数的加减运算及其实现
例:已知X=+10111,Y=+10001,用变 形补码的加法求X+Y 解:设比例因子H=2,则有 所以:
X+Y=+101000
§4.1机器数的加减运算及其实现
说明: a. 舍入处理 恒置1; 0舍1入; b. 符号位扩展 补码在右移时,要注意符号位要一起 移,且最左边要补上原符号的值
§4.1机器数的加减运算及其实现
性质二: 一个数的补码的补码是这个数的原码 [[X ]补]补=[X]原 例:设有两定点小数X=0.10011, Y=-0.11001,求其补码的补码 解: [X]原=0.10011,[X]补=0.10011 [[X ]补]补=0.10011= [X]原 [Y]原=1.11001,[Y]补=1.00111 [[Y ]补]补=1.11001= [Y]原
0 0 .1 0 0 1 1 +1 1 .0 0 1 1 1 1 1 .1 1 0 1 0 所以,X-Y=-110
符号位
mod 22
§4.1机器数的加减运算及其实现
例:两负数相减,被减数大于减数。已知X= -10011,Y=-11001,求真值X-Y 解:[X]补=11.01101,[-Y]补=00.11001 [X-Y]补=[X]补+[-Y]补 = 11.01101 + 00.11001
1 1 .0 0 1 1 1 +0 0 .1 0 0 1 1 1 1 .1 1 0 1 0 所以,X-Y=-110
符号位
mod 22
§4.1机器数的加减运算及其实现
补码加减法运算规则总结: 参加运算的操作数用补码表示 符号位与数值位一起参加运算 若为加法操作,则两数直接相加;若为减法,则 减数连同符号位一起变反加1,再与被减数相 加 运算的结果仍然是补码的形式.
§4.1机器数的加减运算及其实现
通过例子来说明如何判断结果是否发生溢出 假设计算机字长为8位
a. 31+13=44 符号位 0 0 0 1 1 1 1 1 +00001101 00101100 b. 63+66=129 符号位 0 0 1 1 1 1 1 1 +01000010 10000001
c. ( -31)+(-13)=-44 符号位 1 1 1 0 0 0 0 1 +11110011 溢出 111010100
§4.1机器数的加减运算及其实现
例:设有两个定点小数X=+0.10111,Y=+0.10001, 用补码的加法求Z=X+Y 解:[X]补= 0.10111,[Y]补=0.10001 [X+Y]补= [X]补+[Y]补=0.10111+0.10001=1.01000 Z=X+Y=-0.11000 例:设 X=-0.10111 , Y=-0.10001 ,用补码的加法求 Z=X+Y 解:[X]补=1.01001,[Y]补=1.01111 [X+Y]补= [X]补+[Y]补=1.01001+1.01111=0.11000 Z=X+Y=+0.11000
§4.1机器数的加减运算及其实现
例:已知X=-10111,Y=-10001,用变形 补码的加法求X+Y 解:设比例因子H=2,则有 所以:
X+Y=-101000
§4.1机器数的加减运算及其实现
补码相加的规则总结:
若两数的符号不同,相加的结果即为和的补码
若两数符号相同,相加后若其符号不变,结果正确 若两数符号相同,相加后若其符号改变,结果错误
§4.1机器数的加减运算及其实现
2. 符号相异的两个原码相加 规则:先比较两数的绝对值,用绝对值大的数减去 绝对值小的数,结果取绝对值大的数的符号 例:已知X=+10101,Y=-01010,求X+Y 10101 -01011 01011 例:已知X=+01010,Y=-10111,求X+Y 10101 -01011 01101
§4.1机器数的加减运算及其实现
3. 符号相异的两个原码相减 同1 4. 符号相同的两个原码相减 同2 原码运算的特点:符号位不参加运算 原码运算的优缺点:麻烦 引入反码的原因:? 引入补码的原因:?
§4.1机器数的加减运算及其实现
二、补码加法 特点: 符号与数值部分都参加运算 运算结果按2取模(小数),或按2n取模 (整数) 运算结果仍为补码形式 1. 定点补码运算性质 性质一: 两数之和的补码等于两数补码之和 [X+Y]补=[X]补+[Y]补
符号位 溢出
010111 +101111 1000110
§4.1机器数的加减运算及其实现
例 : 设 有 两 个 定 点 小 数 X=-0.10111 , Y=+0.10001,用补码的加法求Z=X+Y 解:[X]补=1.01001,[Y]补=0.10001 [X+Y]补= [X]补+[Y]补=1.01001+0.10001
00110110 +1 1 0 0 1 1 0 1 100000011
符号位 正溢出
00110110 +0 0 1 1 0 0 1 1 01101001
§4.1机器数的加减运算及其实现
四、补码加减法线路的实现 逻辑电路如图所示:
§4.1机器数的加减运算及其实现
§4.1机器数的加减运算及其实现
结果错误的原因: 1.符号参加运算 2.产生了溢出
例:设有两个定点小数X=+0.10111,Y=- 0.10001 , 用补码的加法求Z=X+Y 解:[X]补= 0.10111,[Y]补=1.01111 [X+Y]补= [X]补+[Y]补=0.10111+1.01111
a. 63+66=129 符号位 000111111 +001000010 010000001
正溢出
d. (-63)+(-66)=-129 符号位 1 1 1 0 0 0 0 0 1 +110111110 1101111111
溢出
负溢出
§4.1机器数的加减运算及其实现
总结: 当结果两符号位不同时发生溢出 第一位符号总是结果的正确符号 第二位符号位区别是正 / 负溢出 操作数及结果在寄存器或存储器中仍然 只用一位,只是在运算时扩充为双符号位 措施:选取一个合理的比例因子H=2i,对每 个加数都除以H,然后相加,最后将结果乘以 H即可。
§4.1机器数的加减运算及其实现
2. 双符号位判断法 又称为变形补码判断法 定义:正数用00表示符号 负数用11表示符号 性质: [X+Y]变形补=[X]变形补+[Y]变形补 [[X ]变形补]变形补=[X]原
§4.1机器数的加减运算及其实现
判断方法: 若双符号位相同(00或11),则无溢出 若双符号位不同(01或10),则有溢出 01:正溢出;10:负溢出 例:
符号位
溢出位
0 0 .1 1 0 0 1 +1 1 .0 1 1 1 1 1 0 0 .0 1 0 0 0
mod 22
所以,X-Y=+1000
§4.1机器数的加减运算及其实现
例:两正数相减,被减数小于减数。已知X= +10011,Y=+11001,求真值X-Y 解:[X]补=00.10011,[-Y]补=11.00111 [X-Y]补=[X]补+[-Y]补 = 00.10011 + 11.00111
§4.1机器数的加减运算及其实现
例:已知X=+110110,Y=-110011,求 X+Y, X-Y. 解: 设机器字长为8,则: [X]补=00110110,[Y]补=11001101, [-Y]补=00110011
[X+Y]补= [X]补+ [X]补, [X-Y]补= [X]补+ [-X]补
符号位 溢出位
§4.1机器数的加减运算及其实现
计算结果的补码均可化成该数的原码。 例:设有两个定点小数 X=-0.1101,Y=0.0111,(1<X+Y<0),求这两数之和。 解:[X]补=1.0011 [Y]补=0.0111 [X]补+[Y]补=1.0011+0.0111=1.1010 [X+Y]原=[[X]补+[Y]补]补=[1.1010]补=1.0110 所以,X+Y=-0.0110 说明: 用补码做加法是数值位连同符号位一起参加 运算的。
§4.1机器数的加减运算及其实现
一、原码加法 1. 符号相同的两个原码相加 规则:符号不变,数值部分相加 例:已知X=+10101,Y=+01011,求X+Y (+ 1 0 1 0 1) +( + 0 1 0 1 1 ) +100000 例:已知X=-10011,Y=-01101,求X+Y ( - 1 0 0 1 1) +( - 0 1 1 0 1 ) -100000
d. (-63)+(-66)=-129 符号位 1 1 0 0 0 0 0 1 +10111110 溢出 101111111
§4.1机器数的加减运算及其实现
溢出判断方法: 1. 根据符号位判断 规则:两个正数相加,结果为负,则溢出 两个负数相加,结果为正,则溢出 即,当两个同号数相加,若结果符号与 两个操作数的符号不同,则发生溢出。
Biblioteka Baidu
§4.1机器数的加减运算及其实现
例: 已知X=+101100,Y=-110010,求X+Y 解: [X]补=0101100, [Y]补=1001110 [X+Y]补=[X]补+[Y]补 =0101100 + 1001110
符号位
0101100 +1 0 0 1 1 1 0 1111010
mod 27
§4.1机器数的加减运算及其实现
三、补码减法 原理:减法运算转换为加法运算 性质三:两数之差的补码等于被减数的补码与 负的减数补码之和 [X-Y]补=[X]补+[-Y]补 例:两正数相减,被减数大于减数。已知X= +11001,Y=+10001,求真值X-Y
§4.1机器数的加减运算及其实现
解:[X]补=00.11001, [Y]补=00.10001 [-Y]补=11.01111 [X-Y]补=[X]补+[-Y]补 =00.11001+11.01111
相关文档
最新文档