当前位置:文档之家› 计算机组成原理第四章

计算机组成原理第四章


§4.1机器数的加减运算及其实现
例:已知X=-10111,Y=-10001,用变形 补码的加法求X+Y 解:设比例因子H=2,则有 所以:
X+Y=-101000
§4.1机器数的加减运算及其实现
补码相加的规则总结:
若两数的符号不同,相加的结果即为和的补码
若两数符号相同,相加后若其符号不变,结果正确 若两数符号相同,相加后若其符号改变,结果错误
§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
§4.1机器数的加减运算及其实现
2. 符号相异的两个原码相加 规则:先比较两数的绝对值,用绝对值大的数减去 绝对值小的数,结果取绝对值大的数的符号 例:已知X=+10101,Y=-01010,求X+Y 10101 -01011 01011 例:已知X=+01010,Y=-10111,求X+Y 10101 -01011 01101
d. (-63)+(-66)=-129 符号位 1 1 0 0 0 0 0 1 +10111110 溢出 101111111
§4.1机器数的加减运算及其实现
溢出判断方法: 1. 根据符号位判断 规则:两个正数相加,结果为负,则溢出 两个负数相加,结果为正,则溢出 即,当两个同号数相加,若结果符号与 两个操作数的符号不同,则发生溢出。
符号位
溢出位
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
负溢出、正溢出
当发生错误时,采用除以比例因子H的方法求解
§4.1机器数的加减运算及其实现
补码加法特点: 符号与数值部分都参加运算 运算结果按2取模(小数),或按2n取模(整数) 运算结果仍为补码形式
补码相加的规则总结: 若两数的符号不同,相加的结果即为和的补码 若两数符号相同,相加后若其符号不变,结果正确 若两数符号相同,相加后若其符号改变,结果错误: 负溢出、正溢出 当发生错误时,采用除以比例因子H的方法求解
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,再与被减数相 加 运算的结果仍然是补码的形式.
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]补 = .01101 + 00.11001
§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
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机器数的加减运算及其实现
通过例子来说明如何判断结果是否发生溢出 假设计算机字长为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机器数的加减运算及其实现
3. 符号相异的两个原码相减 同1 4. 符号相同的两个原码相减 同2 原码运算的特点:符号位不参加运算 原码运算的优缺点:麻烦 引入反码的原因:? 引入补码的原因:?
§4.1机器数的加减运算及其实现
二、补码加法 特点: 符号与数值部分都参加运算 运算结果按2取模(小数),或按2n取模 (整数) 运算结果仍为补码形式 1. 定点补码运算性质 性质一: 两数之和的补码等于两数补码之和 [X+Y]补=[X]补+[Y]补
§4.1机器数的加减运算及其实现
例:已知X=+10111,Y=+10001,用变 形补码的加法求X+Y 解:设比例因子H=2,则有 所以:
X+Y=+101000
§4.1机器数的加减运算及其实现
说明: a. 舍入处理 恒置1; 0舍1入; b. 符号位扩展 补码在右移时,要注意符号位要一起 移,且最左边要补上原符号的值
§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 机器数的加减运算及其实现 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
§4.1机器数的加减运算及其实现
2. 双符号位判断法 又称为变形补码判断法 定义:正数用00表示符号 负数用11表示符号 性质: [X+Y]变形补=[X]变形补+[Y]变形补 [[X ]变形补]变形补=[X]原
§4.1机器数的加减运算及其实现
判断方法: 若双符号位相同(00或11),则无溢出 若双符号位不同(01或10),则有溢出 01:正溢出;10:负溢出 例:
§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
符号位 溢出
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机器数的加减运算及其实现
性质二: 一个数的补码的补码是这个数的原码 [[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]原
相关主题