白中英-第五版-计算机组成原理第2章解析课件

上传人:仙*** 文档编号:241539876 上传时间:2024-07-02 格式:PPT 页数:140 大小:1.48MB
返回 下载 相关 举报
白中英-第五版-计算机组成原理第2章解析课件_第1页
第1页 / 共140页
白中英-第五版-计算机组成原理第2章解析课件_第2页
第2页 / 共140页
白中英-第五版-计算机组成原理第2章解析课件_第3页
第3页 / 共140页
点击查看更多>>
资源描述
计算机组成原理计算机组成原理1第二章第二章 运算方法与运算器运算方法与运算器l 2.1 数据与文字的表示方法 l 2.2 定点加法、减法运算l 2.3 定点乘法运算 l 2.4 定点除法运算l 2.5 定点运算器的组成 l 2.6 浮点运算方法和浮点运算器计算机组成原理计算机组成原理2二进制数l便于计算机存储及物理实现便于计算机存储及物理实现l特特点点:逢逢二二进进一一,由由0 0和和1 1两两个个数数码码组组成成,基基数数为为2 2,各个位权以,各个位权以2 2k k表示表示l二进制数:二进制数:a an na an-1n-1aa1 1a a0 0.b.b1 1b b2 2b bm ma an n22n na an-1n-122n-1n-1a a1 1221 1a a0 0220 0 b b1 122-1 1b b2 222-2 2b bm m22-m m 其中其中a ai i,b bj j非非0 0即即1 1计算机组成原理计算机组成原理3十六进制数l用于表达二进制数,相互转换简单用于表达二进制数,相互转换简单l基数基数1616,逢,逢1616进位,位权为进位,位权为1616k k,1616个数码:个数码:0 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,A A,B B,C C,D D,E E,F Fl十六进制数:十六进制数:a an na an-1n-1aa1 1a a0 0.b.b1 1b b2 2b bm ma an n1616n na an-1n-11616n-1n-1a a1 116161 1 a a0 016160 0b b1 11616-1 1b b2 21616-2 2b bm m1616-m m其中其中a ai i,b bj j是是0 0F F中的一个数码中的一个数码计算机组成原理计算机组成原理4二进制数或十六进制数转换为十进制数l方法:按权展开方法:按权展开l二进制数转换为十进制数二进制数转换为十进制数0011.10100011.1010B B12121 112120 01212-1 10202-2 21212-3 33.6253.625l十六进制数转换为十进制数十六进制数转换为十进制数1.21.2H H1161160 02162161 11.1251.125十六进制数用后缀字母十六进制数用后缀字母H二进制数用后缀字母二进制数用后缀字母B计算机组成原理计算机组成原理5十进制整数转换为二或十六进制数l整数整数部分转换:用除法部分转换:用除法十十进进制制数数整整数数部部分分不不断断除除以以基基数数2 2或或1616,并并记记下下余余数,直到商为数,直到商为0 0为止为止由由最最后后一一个个余余数数起起逆逆向向取取各各个个余余数数,则则为为转转换换成成的的二进制和十六进制数二进制和十六进制数12612601111110B01111110B1261267EH7EH计算机组成原理计算机组成原理6十进制小数转换为二或十六进制数l小数小数部分转换:用乘法部分转换:用乘法分分别别乘乘以以各各自自的的基基数数,记记录录整整数数部部分分,直直到到小小数数部部分为分为0 0为止为止0.81250.81250.1101B0.1101B0.81250.81250.DH0.DHl小数转换会发生总是无法乘到为小数转换会发生总是无法乘到为0 0的情况的情况可选取一定位数(精度)可选取一定位数(精度)将产生无法避免的转换误差将产生无法避免的转换误差计算机组成原理计算机组成原理7真值和机器数l真值真值:现实中真实的数值:现实中真实的数值l机器数机器数:计算机中用:计算机中用0 0和和1 1数码组合表达的数值数码组合表达的数值l无符号数无符号数:只表达:只表达0 0和正整数的定点整数和正整数的定点整数l有有符符号号数数:表表达达负负整整数数、0 0和和正正整整数数的的定定点点整整数数符号位需要占用一个位,常用机器数的最高位符号位需要占用一个位,常用机器数的最高位0 0表示正数、表示正数、1 1表示负数表示负数具有具有原码原码、反码反码、补码补码、移码移码计算机组成原理计算机组成原理8l没有符号位,使用全部字长来表示数值大小没有符号位,使用全部字长来表示数值大小l字长字长N N8 8时,编码:时,编码:00000000000000001111111111111111取值范围:取值范围:0 0255255(2 28 8-1-1)l字长字长N N1616时,编码:时,编码:00000000FFFFHFFFFH取值范围:取值范围:0 06553565535(2 21616-1-1)l字长字长N N3232时,编码:时,编码:0000000000000000FFFFFFFFHFFFFFFFFH取值范围:取值范围:0 02 23232-1-1无符号数的表示计算机组成原理计算机组成原理92.1 数据与文字的表示方法l2.1.1 数据格式2.1.2 数的机器码表示2.1.3 字符与字符串的表示方法2.1.4 汉字的表示方法2.1.5 校验码计算机组成原理计算机组成原理10n计算机中常用的数据表示格式有两种,一是计算机中常用的数据表示格式有两种,一是定点定点格式格式,二是,二是浮点格式浮点格式n定点格式定点格式容许的数值范围有限,但要求的处理容许的数值范围有限,但要求的处理硬件比较简单硬件比较简单n浮点格式浮点格式容许的数值范围很大,但要求的处理容许的数值范围很大,但要求的处理硬件比较复杂硬件比较复杂2.1.1 数据格式计算机组成原理计算机组成原理111、定点数的表示方法n定点表示定点表示:约定机器中所有数据的小数点位置是固约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成定不变的。通常将数据表示成纯小数纯小数或或纯整数纯整数n定点数定点数xx0 x1x2xn 在定点机中表示如下在定点机中表示如下(x0表示表示符号位,符号位,0代表正号,代表正号,1代表负号代表负号)定点整数的小数点位置定点小数的小数点位置计算机组成原理计算机组成原理12定点数例定点数例例:X=+1010110.纯整数:纯整数:X=01010110.正数,符号位取正数,符号位取0Y=-1101001.纯整数:纯整数:Y=11101001.(原码)原码)负数,符号位取负数,符号位取1X=+0.11011Y=-0.10101符号位取符号位取0纯小数:纯小数:X=0.11011符号位取符号位取1纯小数:纯小数:X=1.10101(原码)原码)计算机组成原理计算机组成原理13定点整数的表示范围l纯整数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位)0|2n 1l例如:n8,最大值编码:11111111表示:111111111000000001281l目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算计算机组成原理计算机组成原理14定点小数的表示范围l纯小数的表示范围为(x1x2xn各位均为0时最小;各位均为1时最大,x0为符号位)0|12-nl例如,n8,最大值编码:0.11111111表示:0.11111111 1.00.00000001 1-2-8计算机组成原理计算机组成原理152、浮点数的表示方法l电 子 质 量(克):910-28=0.910-27太阳质量(克):21033=0.21034 采用定点很难表示,而且不容易计算?l数的小数点位置随比例因子的不同而在一定范围内自由浮动 一个十进制数可以写成 10e一个进制数可以写成 eM尾数尾数 e指数指数R基数基数数的科学表达法数的科学表达法计算机组成原理计算机组成原理16阶码和尾数n用用定定点点小小数数表表示示,给给出出有有效效数数字字,决决定定了了浮浮点点数数的的表表示示精度精度n表达指数部分表达指数部分n用用整整数数形形式式表表示示,指指明明小小数数点点在在数数据据中中的的位位置置决定浮点数的表示范围决定浮点数的表示范围早期计算机表达法早期计算机表达法浮点数的机器表示方法计算机组成原理计算机组成原理1732位单精度浮点数:含阶符的阶码,:含阶符的阶码,8 位位阶码采用移码方式阶码采用移码方式(方便比较和对阶)来表示正负指数,采用方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值这种方式时,将浮点数的指数真值e变成阶码变成阶码E时,应将指数时,应将指数e加上一个固定的偏移值加上一个固定的偏移值127(01111111),即,即E=e+127。:1位位符符号号位位0表示正数表示正数1表示负数表示负数:尾数,:尾数,23位小位小数表示,小数点放数表示,小数点放在尾数域最前面在尾数域最前面IEEE 754标准标准计算机组成原理计算机组成原理1864位双精度浮点数:1位位符符号号位位:尾数,:尾数,52位小位小数数IEEE 754标准标准:含阶符的阶码,:含阶符的阶码,11 位位阶码采用移码方式阶码采用移码方式(方便比较和对阶)来表示正负指数,采用方便比较和对阶)来表示正负指数,采用这种方式时,将浮点数的指数真值这种方式时,将浮点数的指数真值e变成阶码变成阶码E时,应将指数时,应将指数e加上一个固定的偏移值加上一个固定的偏移值1023(01111111111),即,即E=e+1023。计算机组成原理计算机组成原理19浮点数的规格化浮点数的规格化例:156.78=15.678101=1.5678102=0.15678103=REM对于二进制数对于二进制数1011.1101=0.10111101 2+4=10.111101 2+2=1.0111101 2+3 (规格化表示法规格化表示法)=1.0111101 2+11(规格化表示法规格化表示法)=REM那么,计算机中究竟采用哪种数据形式?那么,计算机中究竟采用哪种数据形式?多种数据形式多种数据形式二进制数二进制数IEEE 754标准标准小小数数点点左左边边这这个个1在在机机器器里可以省略(少存一位)里可以省略(少存一位)计算机组成原理计算机组成原理20l尾数最高有效位为1,隐藏,并且隐藏在小数点的左边(即:1M2)l32位单精度浮点数规格化表示(-1)s(1.)2E-127e127(e127)l64位双精度浮点数规格化表示(-1)s(1.)2E-1023e1023(e1023)指数真值指数真值e 用移码形式表示为阶码用移码形式表示为阶码尾数规格化表示原则尾数规格化表示原则IEEE 754标准标准计算机组成原理计算机组成原理21 X(-1)s1.M2e(1.011011)231011.011(11.375)10 指数指数e阶码阶码127 1000 00100111111100000011=(3)10 包括隐藏位包括隐藏位1的尾数的尾数1.M 1.011011例1:浮点机器数(41360000)16,求真值 十六进制数展开成二进制数十六进制数展开成二进制数0 100 0001 0011 0110 0000 0000 0000 0000S阶码阶码E(8位位)尾数尾数M(23位位)计算机组成原理计算机组成原理22例例2:真值:真值20.59375,求,求32位单精度浮点数位单精度浮点数 分别将整数和分数部分转换成二进制数分别将整数和分数部分转换成二进制数 20.5937510100.10011 移动小数点,使其在第移动小数点,使其在第1、2位之间位之间10100.100111.01001001124e4S0E4+12713110000011M010010011 得到得到32位浮点数的二进制存储格式为:位浮点数的二进制存储格式为:0 100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16计算机组成原理计算机组成原理23l二进制:二进制:0100 0001 1010 0001 1000 0000,0100 0001 1010 0001 1000 0000,lS=0 e=10000011-01111111=100=4S=0 e=10000011-01111111=100=4lM=1.01000011M=1.01000011l真值真值(1.01000011)2(1.01000011)24 4l10100.001110100.001120.187520.18751010练习题:若浮点机器为(41A18000)1616,求真值?计算机组成原理计算机组成原理243、十进制数据表示人人们们习习惯惯于于用用十十进进制制表表示示数数据据,而而计计算算机机则则采采用用二二进进制制表表示示和和处处理理数数据据。所所以以向向计计算算机机输输入入数数据据时时,需需要要进进行行十十进进制制数数到到二二进进制制数数的的转转换换;输输出出数数据据时时,则则要要进进行行二二进进制制数数到到十十进进制制数数的的转转换换处处理理。在在数数据据量量较较小小的的情情况况下下,这这样样的的转转换换对对机机器器运运行行效效率率的的影影响响不不是是很很大大。但但是是,在在某某些些应应用用领领域域,运运算算简简单单而而数数据据量量很很大大,进进行行这这些些转转换换所所占占用用的的时时间间比比例例比比较较大大。所所以以为为了了提提高机器的运行效率,计算机可以用十进制来表示和处理数据。高机器的运行效率,计算机可以用十进制来表示和处理数据。一一个个十十进进制制数数位位是是用用若若干干位位二二进进制制编编码码表表示示。用用四四位位二二进进制制代代码码的的不不同同组组合合来来表表示示一一个个十十进进制制数数码码的的编编码码方方法法,称称为为二二十十进进制制编编码码,也也称称BCDBCD码码(Binary Binary Coded Coded DecimalDecimal)。常常用用这这种种编编码码作作为为十十进进制制数数转转换换成成二二进进制制数数的的中中间间过过渡渡。即即先先将将一一个个十十进制数用进制数用BCDBCD码来表示,再把它们送入机器。码来表示,再把它们送入机器。计算机组成原理计算机组成原理25BCD码(Binary Coded Decimal)l二进制编码的十进制数二进制编码的十进制数一个十进制数位用一个十进制数位用4 4位二进制编码来表示位二进制编码来表示常用常用8421 BCD8421 BCD码:低码:低1010个个4 4位二进制编码表示位二进制编码表示0 09 9lBCDBCD码很直观码很直观BCDBCD码:码:0100 1001 0111 1000.0001 0100 10010100 1001 0111 1000.0001 0100 1001十进制真值:十进制真值:4978.1494978.149BCD码便于输入输出,表达数值准确码便于输入输出,表达数值准确计算机组成原理计算机组成原理26十进制数串的表示方法1.字符串形式每个十进制的数位或符号位都用一个字节存放+12-38-382.压缩的十进制数串形式一个字节存放两个十进制的数位,符号位占半个字节,一个字节存放两个十进制的数位,符号位占半个字节,数位加符号位之和必须为偶数(例如用数位加符号位之和必须为偶数(例如用C表示正,表示正,D表表示负)示负)+1212 3 C012D123-12 每个数位可用每个数位可用BCD码码1.1.原码表示法原码表示法l定点整数的原码形式为x0 x1x2 xn X 2n X 0 X原原2nX2n|X|0X2nl使用8位二进制:105 10=011010012X+105,则 X原 01101001X-105,则 X原 11101001l0使用原码有两种表达形式+0原=00000000 -0原 =10000000符号位符号位2.1.2数的机器码表示具有具有原码、反码、补码、移码原码、反码、补码、移码计算机组成原理计算机组成原理28原码缺点l进行加减运算十分麻烦进行加减运算十分麻烦比较数的绝对值的大小比较数的绝对值的大小大数减小数大数减小数符号跟大数符号跟大数计算机组成原理计算机组成原理297/2/2024 11:44 PM现在是北京时间现在是北京时间3点整,而时钟却指向点整,而时钟却指向5点。点。5-2=35+10=15=3(12自动丢失。12就是模)2 2、补码表示法、补码表示法计算机组成原理计算机组成原理307/2/2024 11:44 PMl继续推导:5-2=5+10(MOD 12)-2=10(MOD 12)l结论:可以说:在模为12的情况下,-2的补码就是10。一个负数用其补码代替,可以把减法转换为加法来实现。计算机组成原理计算机组成原理312.2.补码表示法补码表示法l定点整数定点整数的补码形式为的补码形式为x0 x1x2 xn X 2n X 0 X补补2n+1+X2n+1-|X|02n计算机组成原理计算机组成原理32定点整数的补码方法l有符号整数在计算机中默认采用补码有符号整数在计算机中默认采用补码最高位表示符号:正数用最高位表示符号:正数用0 0,负数用,负数用1 1正数补码:直接表示数值大小(原码无符号数)正数补码:直接表示数值大小(原码无符号数)负数补码:符号位不变,将对应数值取反加负数补码:符号位不变,将对应数值取反加1 1105105补码补码110100111010010110100101101001-105-105补码补码11010011101001取反取反1 1001011000101101 1001011100101111001011110010111为什么是补码为什么是补码证明:-105补=2n+1+X=28+(-1101001)=100000000+(-1101001)=10010111计算机组成原理计算机组成原理333、定点整数的反码l反码:二进制的各位数码反码:二进制的各位数码 0 0 变为变为1 1,1 1变为变为0 0l有符号整数采用反码有符号整数采用反码最高位表示符号:正数用最高位表示符号:正数用0 0,负数用,负数用1 1正数反码:直接表示数值大小(原码补码)正数反码:直接表示数值大小(原码补码)负数反码:将对应正数反码取反负数反码:将对应正数反码取反105105反码反码0110100101101001-105-105反码反码11010011101001取反取反1001011010010110计算机组成原理计算机组成原理344、定点整数的移码(偏移码)l移码移码通常用于表示浮点数的阶码通常用于表示浮点数的阶码l有符号整数采用移码有符号整数采用移码最最高高位位表表示示符符号号:正正数数用用1 1,负负数数用用0 0(跟跟其其他他码码相相反)反)移码的传统定义:移码的传统定义:XX移码移码 2 2n n X X 2 2n n XX2 2n n105105移码移码1000000010000000110100111010011 1,11010011101001-105-105移码移码1000000010000000110100111010010 0,00101110010111相对于偏移一半相对于偏移一半传统定义与标准浮点数阶码的定义不同传统定义与标准浮点数阶码的定义不同计算机组成原理计算机组成原理35真值原码反码补码移码-1281000000000000000-12711111111 100000001000000100000001.-110000001 11111110 1111111101111111-010000000 111111110000000010000000+000000000 000000000000000010000000+100000001 000000010000000110000001.+12701111111 01111111 01111111 11111111计算机组成原理计算机组成原理36例例8 8设机器字长16位,定点表示,尾数15位,数符1位,问:定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数是多少?最小负数是多少?计算机组成原理计算机组成原理37例8之解定点原码整数表示最 大 正 数 值 (215 1)10(32767)10 最 小 负 数 值 -(215 1)10 (-32767)10 定点原码小数表示最大正数值(0.111.11)2(1 2-15)10最小负数值(0.111.11)2(1 2-15)10 0 111 1111 1111 1111 1 111 1111 1111 1111 计算机组成原理计算机组成原理38例例9 9假设由假设由S S,E E,M M三个域组成的一个三个域组成的一个3232位二进制字所表示的非零规格化浮点位二进制字所表示的非零规格化浮点数数,真值表示为(非真值表示为(非IEEE754IEEE754标准):标准):(1)1)s s(1.(1.M M)2)2E E128128问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?(1)(1)最大正数最大正数0 1111 0 1111 11111111 111 1111 111 1111 11111111 11111111 11111111 1111111111(1(12 2-23)2)2127(2)(2)最小正数最小正数 000 000 000000 000000 000 000000 000 000000 000000 000000 000000 000000 00 001.021.02128(3)(3)最小负数最小负数111 111 111111 111111 111 111111 111 111111 111111 111111 111111 111111 11 1111(1(12 223)2)2127(4)(4)最最大大负负数数100 000 000000 000 100 000 000000 000 000000 000000 000000 000000 000000 00 001.021.02128 计算机组成原理计算机组成原理39同一代码的不同含义n一个代码,采用不同编码,其数值不一样一个代码,采用不同编码,其数值不一样n计算机内一个二进制数:计算机内一个二进制数:1000 0001n不同的含义不同的含义n无符号二进制数:无符号二进制数:129n8421 BCD码:码:81n有符号整数的原码:有符号整数的原码:-1n有符号整数的反码:有符号整数的反码:-126n有符号整数的补码:有符号整数的补码:-127计算机组成原理计算机组成原理40数的机器码表示小结l正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法l采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法l有些机器用原码进行存储和传送,运算时改用补码l有些机器做加减法时用补码,做乘除法时用原码l移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反计算机组成原理计算机组成原理41ASCII码(美国标准信息交换码)l标标准准ASCIIASCII码码用用8 8位位二二进进制制编编码码,最最高高位位为为偶偶校校验验位位,其其余余7 7位位构成构成128128个编码个编码l可显示和打印的字符:可显示和打印的字符:20H20H后的后的9494个编码个编码数码数码0 09 9:30H30H39H39H大写字母大写字母A AZ Z:41H41H5AH5AH小写字母小写字母a az z:61H61H7AH7AH空格:空格:20H20H2.1.3字符和字符串(非数值)的表示方法表表2.1 ASCII字符编码表字符编码表0000010100111001011101110000NULDELSP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?O_oDEL0-3位4-6位字符串的表示方法l字符串是指连续的一串字符,通常占用主存中连续的多个字节,每个字节存一个字符IF AB THEN READ(C)字符串的存放方法计算机组成原理计算机组成原理441.汉字的输入编码l数字编码国标区位码,用数字串代表一个汉字输入 l拼音码以汉字拼音为基础的输入方法l字形编码用汉字的形状(笔划)来进行的编码例如五笔字形2.1.4 2.1.4 汉字的表示方法汉字的表示方法 计算机组成原理计算机组成原理452 2、汉字内码、汉字内码l汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示l汉字内码有多种方案,常以国标码为基础进行编码l例如,将国标码两字节的最高位置1后形成汉字“啊”的CCDOS系统汉字内码 3021H(0011 0000 0010 0001)对应的汉字内码 B0A1H(1011 0000 1010 0001)计算机组成原理计算机组成原理46字模码汉字的字模码为:16位 16位=32字节汉字字模点阵及编码汉字字模点阵及编码3、汉字字模码、汉字字模码 用于对汉字进行显示输出用于对汉字进行显示输出计算机组成原理计算机组成原理47汉字的表示方法汉汉字字的的输输入入编编码码、汉汉字字内内码码、字字模模码码是是计计算算机机中中用用于于输输入入、内内部部处处理理、交交换换、输输出出四四种种不不同同用用途途的的编编码码,不不要要混混为为一一谈谈显示输出显示输出打印输出打印输出机内码向字形码转换机内码向字形码转换机内码机内码输入码向机内码转换输入码向机内码转换字符代码化(输入)字符代码化(输入)计算机组成原理计算机组成原理482.1.52.1.5校验码校验码l校验码:能够发现甚至纠正信息传输或存储过程中出现错误的编码l检错码:仅能检测出错误的编码l纠错码:能够发现并纠正错误的编码l最简单且应用广泛的检错码:奇偶校验码l奇校验:使包括校验位在内的数据中为“1”的个数恒为奇数l偶校验:使包括校验位在内的数据中为“1”的个数恒为偶数(包括0)l只能检测出奇数个位出错的情况,不能纠错计算机组成原理计算机组成原理49例7:用奇校验和偶校验进行编码用奇校验和偶校验进行编码数据1010101001010100000000000111111111111111偶校验码10101010 001010100 100000000 001111111 111111111 0奇校验码10101010 101010100 000000000 101111111 011111111 1计算机组成原理计算机组成原理502.22.2运算方法和运算方法和运算运算器器l2.2 2.2 定点加法、减法运算定点加法、减法运算l2.3 2.3 定点乘法运算定点乘法运算l2.4 2.4 定点除法运算定点除法运算l2.5 2.5 定点运算器的组成定点运算器的组成l2.6 2.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器计算机组成原理计算机组成原理512.2.1补码加法l补码加法公式补码加法公式 x补+y补=x+y补 (mod 2 2n+1n+1)在模2 2n+1n+1意义下,任意两数的补码之和等于该两数之和的补码。计算机组成原理计算机组成原理52补码加法特点l符号位要作为数的一部分一起参加运算符号位要作为数的一部分一起参加运算l要要在在模模2 2n+1n+1的的意意义义下下相相加加,即即超超过过2 2n+1n+1的的进进位位要要丢掉丢掉计算机组成原理计算机组成原理53补补补证明l假设采用定点整数表示假设采用定点整数表示 l现分四种情况来证明现分四种情况来证明 (1)(1)0,0,0,0,则则0 0 补补=x,=x,补补=y,=y,补补=x+yx+y所以等式成立所以等式成立.(2)(2)0,0,0,0,则则00或或0 00时时,2 2n+1n+1 ()2 2n+1n+1,进进位位2 2n+1n+1必必丢丢失失,又又因因()0)0,故故 补补 补补 补补当当00时时,2 2n+1n+1 ()2 2n+1n+1,又因又因()0)0,故故 补补 补补 2 2n+1n+1 ()补补所以上式成立所以上式成立计算机组成原理计算机组成原理54补补补证明(3)(3)0,0,0,则则00或或 0 0 这这种种情情况况和和第第2 2种种情情况况一一样样,把把和和的的位位置置对对调即得证。调即得证。(4)(4)0,0,0,0,则则0 0 相加两数都是负数相加两数都是负数,则其和也一定是负数。则其和也一定是负数。补补 2 2n+1n+1 ,补补 2 2n+1n+1 补补 补补 2 2n+1n+12 2n+1n+1 2 2n+1n+1(2 2n+1n+1 )上上式式右右边边分分为为”2 2n+1n+1”和和(2 2n+1n+1)两两部部分分.既既然然()是是负负数数,那那么么(2 2n+1n+1 )进进位位”2 2n+1n+1”必必丢丢失失.又又因因()0,)0,所所以以 补补 补补 2 2n+1n+1 ()补补计算机组成原理计算机组成原理55例11:+1001,+0101,求x 补01001,y 补00101 x 补 01001 y 补00101+补 01110 所以01110 计算机组成原理计算机组成原理56例9:1011,0101,求x 补01011,y 补11011 x 补 01011 y 补 11011+补 100110 所以00110计算机组成原理计算机组成原理572.2.2补码减法l补码减法运算公式补码减法运算公式 x-yx-y 补补=x=x补补-y-y补补=x=x补补+-y+-y补补计算机组成原理计算机组成原理58x-y补=x补-y补=x补+-y补只要证明只要证明 补补 补补,上式即得证。现证明如下:上式即得证。现证明如下:补补 补补 补补(mod 2(mod 2n+1n+1)补补 补补 补补 (2.19a)(2.19a)补补()补补 补补 补补 补补 补补 补补 (2.19b)(2.19b)将式将式(2.19a)(2.19a)与与(2.19b)(2.19b)相加相加,得得 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补 补补0 0故故 补补 补补(mod 2(mod 2n+1n+1)(2.20)(2.20)从从 补补求求 补补的的法法则则是是:对对 补补包包括括符符号号位位“求求反反且且最最末末位位加加1”,1”,即可得到即可得到 补。补。写写成成运运算算表表达达式式,则则为为 补补 补补2 2n n 其其中中符符号号表表示示对对 补作包括符号位在内的求反操作补作包括符号位在内的求反操作,2,2n n表示最末位的表示最末位的1 1计算机组成原理计算机组成原理59x1补10010-x1补x1补 2-4 011010000101110 x2补01101-x2补x2补 2-4 100100000110011 例例13:已知已知11110,21101求:求:x1补补,-x1补补 ,x2补补,-x2补补计算机组成原理计算机组成原理60例14:+1101,+0110,求-x补01101,y补00110-y补11010 x 补 01101 -y 补 11010 -补 100111 所以0111计算机组成原理计算机组成原理612.2.3 溢出概念与检验方法u两个正数相加两个正数相加,结果为负(即:结果为负(即:大于机器所能表示的大于机器所能表示的最大正数最大正数),称为称为正溢正溢。u两个负数相加两个负数相加,结果为正(即:结果为正(即:小于机器所能表示的小于机器所能表示的最小负数最小负数),),称为称为负溢负溢。u运算出现溢出,结果就是错误的运算出现溢出,结果就是错误的计算机组成原理计算机组成原理62 例例1515 10111011,10011001,求求。解:补01011,补01001 补01011 补 01001 补10100 两正数相加,结果为负,显然错误。运算中出现了“正溢”计算机组成原理计算机组成原理63l 例例16 16 x=-1101 x=-1101,y=-1011 y=-1011,求求 x+yx+y 。解解:xx补补=10011=10011,yy补补=10101=10101xx补补 1 1 0 0 0 0 1 1 1 1 xx补补 1 1 0 0 1 1 0 0 1 1 x+yx+y 补补 0 0 1 1 0 0 0 0 0 0两个负数相加的结果成为正数,表示负溢。两个负数相加的结果成为正数,表示负溢。计算机组成原理计算机组成原理647/2/2024 11:44 PM1)两个数太大:)两个数太大:产生进位而改变了符号位;1、两异号数相加或两同号数相减是否两异号数相加或两同号数相减是否 会产生溢出?会产生溢出?2、仅当两同号数相加或两异号数相减、仅当两同号数相加或两异号数相减 时才有可能产生溢出?时才有可能产生溢出?问题:问题:决不会产生溢出决不会产生溢出正确正确2、溢出原因:、溢出原因:计算机组成原理计算机组成原理65“溢出溢出”检测方法:检测方法:第一种方法:采用双符号位法,称为“变形补码”或“模4补码”。用“00”表示正数,“11”表示负数,两个符号位同时参加运算,如果运算结果两符号位相同,则没有溢出发生。如果运算结果两符号位不同,则表明产生了溢出。“10”表示负溢出(下溢出),说明运算结果为负数,“01”表示正溢出(上溢出),说明运算结果为正数。计算机组成原理计算机组成原理66例17 x=+1100,y=+1000,求 x+y。l解解:xx补补 =00001100 1100,yy补补 =000010001000 xx补补 0 0 0 0 1 1 0 0 yy补补 0 0 0 0 1 1 0 0 0 0 0 0 x+yx+y 补补0 10 1 0 1 0 0 0 1 0 0l(表表示示正正溢溢)计算机组成原理计算机组成原理67例18 x=-1100,y=-1000,求 x+y。l解解:xx补补 =11110100 0100,yy补补 =111110001000 xx补补 1 1 1 1 0 0 1 1 0 0 0 0 yy补补 1 1 1 1 1 1 0 0 0 0 0 0 x+yx+y 补补 1 1 0 0 1 1 1 1 0 0 0 0(表表示示负负溢溢)计算机组成原理计算机组成原理68第二种方法:单符号位法l当当最最高高有有效效位位产产生生进进位位而而符符号号位位无无进进位位时时,产产生生上上溢溢;当当最最高高有有效效位位无无进进位位而而符符号号位位有进位时有进位时,产生下溢。产生下溢。l故故溢溢出出逻逻辑辑表表达达式式为为VCf C0,其其中中Cf为为符符号号位位产产生生的的进进位位,C0为为最最高高有有效效位位产产生生的的进进位。(见例位。(见例15、16)计算机组成原理计算机组成原理692.2.4 基本的二进制加法/减法器l在计算机中完成两个二进制数相加的基本加法器有半加器和全加器。l半加器在完成两数相加时,不需要考虑低位进位。l全加器用来完成两个二进制数相加,并且同时考虑低位的进位,即全加器完成三个一位数相加的功能。计算机组成原理计算机组成原理702.2.4 基本的二进制加法/减法器全加器逻辑图CiAiBiSiCi+1FACiAiBiSiCi+1输出输入0110100001101000100010100010111010111111表2-2全加器真值表计算机组成原理计算机组成原理712.2.4 基本的二进制加法/减法器l全加器的表达式为:全加器的表达式为:S Si i=A=Ai i B Bi i C Ci i C Ci+1i+1=A Ai iB Bi i+B Bi iC Ci i +A Ai iC Ci i 一一位位全全加加器器内内部部逻逻辑辑图图BCSiCi+1ABCAAiBiCi计算机组成原理计算机组成原理722.2.4 基本的二进制加法/减法器利用全加器可以实现两数的和或差1、串行加法:从低位开始,每步只完成一位运算的加法。串行加法器只需要全加器计算两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。高位运算只有等低位运算完成后才能进行,速度较慢计算机组成原理计算机组成原理732.2.4 基本的二进制加法/减法器图图2-22-2 行波进位补码加法行波进位补码加法/减法器减法器FAFAFAFAFAS0S1Sn-1Bs1As1Bs2As2Cs2Cs1Ss2Ss1Bn-1An-1Cn-1Cn-2B1A1B0A0C1C2C0溢出溢出M方式方式控制控制M=1 减减M=0 加加计算机组成原理计算机组成原理742.3 定点乘法运算l2.3.1 2.3.1 原码并行乘法原码并行乘法l2.3.2 2.3.2 补码并行乘法补码并行乘法计算机组成原理计算机组成原理752.3.1 原码并行乘法l1.1.人工算法与机器算法的同异性人工算法与机器算法的同异性设设n位被乘数和乘数用定点整数表示位被乘数和乘数用定点整数表示 被乘数被乘数 原原f n110 乘数乘数 原原f n110 则乘积则乘积 原原(f f)(n110)(n110)计算机组成原理计算机组成原理76两个原码表示的数相乘的运算规则是两个原码表示的数相乘的运算规则是:乘乘积积的的符符号号位位由由两两数数的的符符号号位位按按异异或或运运算算得得到到,而而乘乘积积的的数数值值部部分分则则是两个是两个正数相乘正数相乘之积。之积。数值部分的运算方法与普通的十进制乘法类似。数值部分的运算方法与普通的十进制乘法类似。设设1101,1011.让让我我们们用用人人工工算算法法求求其其乘乘积积,其其过过程程如如下下:7/2/2024 11:44 PMl人工算法 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1+1 0 0 0 1 1 1 1 计算机组成原理计算机组成原理772.3.1 原码乘法l缺点缺点(a)将多个数一次相加,机器难以实现。一般的加法器,只能把两个输入数相加,多个位积的同时输入是无法实现的。(b)乘积位数增长了一倍,即2n,而机器字长只有n位l所以需要改进所以需要改进方法一:硬件实现方法方法一:硬件实现方法(串行的串行的“加法和移位加法和移位”),),硬件硬件 结构简单结构简单,速度太慢速度太慢(时间延迟太长时间延迟太长).).方法二:不带符号位的阵列乘法器方法二:不带符号位的阵列乘法器计算机组成原理计算机组成原理782.2.不带符号的阵列乘法器不带符号的阵列乘法器mn位不带符号的阵列乘法器逻辑图位不带符号的阵列乘法器逻辑图 每一个部分乘积项每一个部分乘积项aibj叫做一个叫做一个被加数。这被加数。这mn个被加数可以用个被加数可以用mn个个“与与”门并行地产生。门并行地产生。计算机组成原理计算机组成原理79不带符号的全加器(不带符号的全加器(FAFA)阵列)阵列斜线为进位输出和输入行波进位加法器n(n-1)个全加器nn个与门play5位5位阵列乘法器的逻辑电路图计算机组成原理计算机组成原理80例19 已知不带符号的二进制整数A=11011,B=10101,求每一部分乘积项aibj的值与p9p8p0的值。解:解:1 1 1 1 0 0 1 1 1 1 A A(27(271010)1 1 0 0 1 1 0 0 1 1 B B(21(211010)1 1 1 1 0 0 1 1 1 1 a4b0=1,a4b0=1,a3b0=1,a3b0=1,a2b0=0,a2b0=0,a1b0=1,a1b0=1,a0b0=1 a0b0=1 0 0 0 0 0 0 0 0 0 0 a4b1=0,a4b1=0,a3b1=0,a3b1=0,a2b1=0,a2b1=0,a1b1=0,a1b1=0,a0b1=0 a0b1=0 1 1 1 1 0 0 1 1 1 1 a4b2=1,a4b2=1,a3b2=1,a3b2=1,a2b2=0,a2b2=0,a1b2=1,a1b2=1,a0b2=1 a0b2=1 0 0 0 0 0 0 0 0 0 0 a4b3=0,a4b3=0,a3b3=0,a3b3=0,a2b3=0,a2b3=0,a1b3=0,a1b3=0,a0b3=0 a0b3=0 1 1 1 1 0 0 1 1 1 1 a4b4=1,a4b4=1,a3b4=1,a3b4=1,a2b4=0,a2b4=0,a1b4=1,a1b4=1,a0b4=1 a0b4=1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 P PP P=p9p8p7p6p5p4p3p2p1p0 p9p8p7p6p5p4p3p2p1p0=1000110111 1000110111(567(5671010)计算机组成原理计算机组成原理813、带符号位的阵列乘法器l阵列乘法器使用的求补电路阵列乘法器使用的求补电路 原原理理:采采用用按按位位扫扫描描技技术术,则则从从数数最最右右端端往往左左边边扫扫描描,直直到到第第一一个个1 1的的时时候候,该该位位和和右右边边各各位位保保持持不不变变,左左边各数值位按位取反。边各数值位按位取反。计算机组成原理计算机组成原理82 3.3.带符号的阵列乘法器带符号的阵列乘法器 l(1)(1)对对2 2求补器电路求补器电路 进行求补的方法就是从数的最右端进行求补的方法就是从数的最右端a0开始,由右向左,开始,由右向左,直到直到找出第一个找出第一个“1”,其以左的每一个输入位都求反,其以左的每一个输入位都求反。E为为“1”对对a求补求补 E为为“0”输出输输出输入入 符号位符号位可作控制信号可作控制信号E数值位数值位play计算机组成原理计算机组成原理83101001101计算机组成原理计算机组成原理84 3.3.带符号的阵列乘法器带符号的阵列乘法器 当乘积为负时,将运算结果变成带符号数(补码)符号位用做使能控制信号符号位异或的结果,用做使能控制 既适用于原码乘法既适用于原码乘法 输入为原码,输入为原码,算前和算后求补不做任何动作。算前和算后求补不做任何动作。也适用于补码乘法也适用于补码乘法 输入为补码,算输入为补码,算前转换为原码和算后求补。前转换为原码和算后求补。符号单独处理。符号单独处理。ABPp2n1p1p0 p2nan bn计算机组成原理计算机组成原理85解解:xx原原=01111=01111,yy原原=11101=11101,|x|=1111|x|=1111,|y|=1101|y|=1101符符号号位位运运算算:01=101=11 1 1 1 1 1 1 11 1 1 1 0 0 1 11 1 1 1 1 1 1 10 0 0 0 0 0 0 01 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1乘乘 积积 符符 号号 为为 1 1,算算 后后 求求 补补 器器 输输 出出 1100001111000011,xyxy 原原=111000011=111000011换算成二进制数真值是换算成二进制数真值是 xyxy=(-11000011)=(-11000011)2 2=(-195)=(-195)1010 例20 设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘积 xy=?计算机组成原理计算机组成原理86乘积符号位单独运算:乘积符号位单独运算:x0 y0=1 1=0算后求补器输出为算后求补器输出为11000011,最后补码乘积值为最后补码乘积值为xy补补=011000011195l例例21 设设15,13,用用带带求求补补器器的的补补码码阵阵列列乘乘法法器求出乘积器求出乘积?解解 输入数据用补码表示:输入数据用补码表示:x补补=10001,y补补=10011 尾数部分算前求补器输出为尾数部分算前求补器输出为|x|=1111,|y|=1101。11111101111100001111111111000011计算机组成原理计算机组成原理872.4 2.4 定点除法运算定点除法运算l2.4.1 2.4.1 原码除法算法原理原码除法算法原理 主要内容:原码除法 两个原码表示的数相除时,商的符号由两数的符号“异或”求得,即同号时为正,异号为负。商的数值可由两数的绝对值相除求得。计算机组成原理计算机组成原理88手工算除法手工算除法x=0.1011 y=0.1101 求求 xy0.1 0 1 10.1 1 0 10.0 1 1 0 10.0 1 0 0 10.0 0 1 1 0 10.0 0 0 1 0 10.0 0 0 0 1 1 0 10.0 0 0 0 0 1 1 1 1商符单独处理商符单独处理心算上商心算上商余数不动低位补余数不动低位补“0”减右移一位的除数减右移一位的除数xy=0.1 1 0 1余数余数 0.0 0 0 0 0 1 1 100.101000?计算机组成原理计算机组成原理892.4.1 2.4.1 原原码除法除法l笔算特点:(1)每次都是由心算来比较余数和除数的大小,余数大时,商1;余数小时,商0。(2)每做一次减法,总是保持余数不动,而除数向右移一位。(3)商的符号单独处理。l机器实现:机器必须通过减法,余数为正够减,余数为负表示不够减。不够减,则加上除数,这叫恢复余数法;不够减,下次加除数,这叫加减交替法(即不恢复余数法)。计算机组成原理计算机组成原理90 0.101001 +-y补补 1.001 1.110001 +y补补 0.111 0.101001+-y补补2-1 1.1001 0.001101 +-y补补2-2 1.11001 1.111111+y补补2-2 0.00111 0.001101+-y补补2-3 1.111001 0.000110例,x=0.101001,y=0.111,求x/y。x补=0.101001y补=0.111-y补=1.001q=q0.q1q2q3=0.101r=0.000110恢复余数恢复余数不够减的次数不固定。注意:减法在机器中是通过补码加法完成的。q0=0q1=1q2=0q3=1恢复余数法恢复余数法计算机组成原理计算机组成原理91假设要计算xy,当上商qi时,x减的是y2-i,余数为r;r0,表示不够减,上商0,并恢复余数,即r=r+y2-i,下次减y2-(i+1);r+y2-i-y2-(i+1)=r+y2-(i+1)可不恢复余数,下次对余数做加法。这种不恢复余数除法,叫做加减交替法。加减交替法的原理加减交替法的原理计算机组成原理计算机组成原理92 0.101001+-y补补 1.001 1.110001+y补补2-1 0.0111 0.001101 +-y补补2-2 1.11001 1.111111 +y补补2-3 0.000111 0.000110 例,x=0.101001,y=0.111,求x/y。x补=0.101001,y补=0.111,-y补=1.001补码移1位补码移2位补码移3位q=q0.q1q2q3=0.101r=0.000110加减法的步数固定!每步实际是做补码加法!余数10000,则尾数末位加1;若移出01111,即10000,则直接截掉!若移出10000,若尾数末位为0,则截掉;反之,末位加1S E(8)M(23S E(8)M(23位位)10010101+1 11001+10111 S E 10111000 S E 1100计算机组成原理计算机组成原理1232.6.1 2.6.1 浮点加法、减法运算浮点加法、减法运算l浮点加/减法操作流程舍入处理IEEE754中的四种舍入处理朝0舍入向尾数绝对值变小方向舍入,即截掉移出部分。朝+舍入对于正数,只要移出的数位有1,则尾数末位加1;对于负数,直接截掉!朝舍入对于正数,直接截掉!对于负数,只要移出的数位有1,则尾数末位加1。计算机组成原理计算机组成原理1242.6.1 2.6.1 浮点加法、减法运算浮点加法、减法运算l浮点加/减法操作流程溢出处理阶码上溢浮点数的指数 e 超出机器阶码表示的最大值。结合数符,可判定浮点数为+或。阶码下溢浮点数的指数 e 超出机器阶
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!