《计算机组成原理习题解答.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理习题解答.ppt(93页珍藏版)》请在优知文库上搜索。
1、1计算机组成原理习题解答计算机组成原理习题解答2第一章第一章 计算机系统概论计算机系统概论3 冯诺依曼计算机的主要设计思想是:冯诺依曼计算机的主要设计思想是:存储程序并按地址顺序执行存储程序并按地址顺序执行。 冯诺依曼计算机主要包括:冯诺依曼计算机主要包括:存储器、运算器、控制器、输入和输出五部分组成。存储器、运算器、控制器、输入和输出五部分组成。1.4 冯诺依曼型计算机的主要设计思想是什么?冯诺依曼型计算机的主要设计思想是什么? 它包括哪些主要组成部分?它包括哪些主要组成部分?41.5 什么是存储容量?什么是单元地址?什么是存储容量?什么是单元地址? 什么是数据字?什么是指令字?什么是数据字
2、?什么是指令字? 存储容量存储容量存储器所能保存二进制数据的总数,常用单位为存储器所能保存二进制数据的总数,常用单位为KB、MB等。等。 单元地址单元地址用于识别存储器中每个存储单元的编号,即单元地址。用于识别存储器中每个存储单元的编号,即单元地址。 数据字数据字表示计算机所要处理数据的计算机字,称为数据字。表示计算机所要处理数据的计算机字,称为数据字。 指令字指令字表示一条指令的计算机字,称为指令字。表示一条指令的计算机字,称为指令字。5指令:指令:由操作码和操作数两部分构成,能够表示计算机中的由操作码和操作数两部分构成,能够表示计算机中的一个一个基本操作基本操作的代码或二进制串。的代码或二
3、进制串。程序:程序:用于求解某一问题的一串指令序列,称为该问题的计用于求解某一问题的一串指令序列,称为该问题的计算程序,简称为算程序,简称为程序程序。1.6 什么是指令?什么是程序?什么是指令?什么是程序?61.7 指令和数据均存放在内存中,计算机如何区指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?分它们是指令还是数据?计算机对指令和数据的区分是依靠指令的执行阶段计算机对指令和数据的区分是依靠指令的执行阶段来决定的;来决定的;在取指阶段,从存储器中读取的均是在取指阶段,从存储器中读取的均是CPU要执行的要执行的指令;指令;在执行阶段,从存储器中读取的一定是指令执行所在执行阶段,从
4、存储器中读取的一定是指令执行所需要的操作数;需要的操作数;71.8 什么是内存?什么是外存?什么是什么是内存?什么是外存?什么是CPU? 什么是适配器?简述其功能。什么是适配器?简述其功能。 内存:内存:用于存放系统当前运行所需要的程序和数据的半导体存储器,用于存放系统当前运行所需要的程序和数据的半导体存储器,称为内存储器,简称称为内存储器,简称内存内存; 外存:外存:用于存放程序和数据,但不能被用于存放程序和数据,但不能被CPU直接访问的大容量存储器,直接访问的大容量存储器,称为外存储器,简称为称为外存储器,简称为外存外存;外存一般包括磁盘存储器和光盘存储器。外存一般包括磁盘存储器和光盘存储
5、器。 CPU:运算器和控制器合称为中央处理器,简称运算器和控制器合称为中央处理器,简称CPU。 适配器:适配器:主机和不同速度的外设之间的一种部件,用于主机和外设之间主机和不同速度的外设之间的一种部件,用于主机和外设之间的信息转换。的信息转换。8第二章第二章 运算方法和运算器运算方法和运算器92.1 用用8位编码表示下列各整数的原码、反码、补码。位编码表示下列各整数的原码、反码、补码。真值真值原码原码反码反码补码补码-35- 010 00111010 00111101 11001101 1101127+111 11110111 11110111 11110111 1111-127-111 11
6、111111 11111000 00001000 0001-1-000 00011000 00011111 11101111 111110 若若a7 0,则,则X为正数,显然为正数,显然a6 a0取任何值,取任何值, X均大于均大于-0.5。 若若a7 1,则,则X为负数,为负数,X移移0. a6 a5 a0 0.5D = 0.100000B,则,则0.5D 移移0.100000 若要若要X0.5,即等价于,即等价于X移移 0.5D 移移 即即0. a6 a5 a00.100000,因此必须是,因此必须是a5 a2不全为不全为0 结论:结论: 如果如果a7 0, a6 a0取任何值均可;取任何
7、值均可; 如果如果a7 1 ,必须满足,必须满足a6 =1 且且a5 a0不全为不全为0。 2.2 设设X补补a7.a6 a5 a0 ,其中,其中ai 取取0或或1, 若要若要X-0.5,求,求a0 a1 a2 a6 的取值。的取值。11(1)最大值(最大正数)最大值(最大正数)机器数形式:机器数形式:0 1111 1111 111 1111 1111 1111 1111 1111真值:真值: (1-2-23) * 2127二进制表示:二进制表示: x = (1-0.0000 0000 0000 0000 0000 001) * 2111 1111 (2)最小值(最小负数)最小值(最小负数)机
8、器数形式:机器数形式:1 1111 1111 000 0000 0000 0000 0000 0000真值:真值: 1 * 2127二进制表示:二进制表示: x = -1* 2111 1111 2.3 有一个字长为有一个字长为32位的浮点数,符号位位的浮点数,符号位1位;阶码位;阶码8位,用移码位,用移码表示;尾数表示;尾数23位,用补码表示;基数为位,用补码表示;基数为2。请写出:请写出: (1)最大数的二进制表示最大数的二进制表示(2)最小数的二进制表示最小数的二进制表示(3)规格化数所能表示的数的范围。规格化数所能表示的数的范围。1位数符位数符S8位阶码位阶码E23位尾数位尾数M机器数格
9、式机器数格式12(3)规格化数表示范围)规格化数表示范围 最大正数:最大正数: 0 1111 1111 111 1111 1111 1111 1111 1111 即即 x = (1-2-23) * 2127 最小正数:最小正数: 0 0000 0000 100 0000 0000 0000 0000 0000 即即 x = 2-1 * 2-128 最大负数:最大负数: 1 0000 0000 011 1111 1111 1111 1111 1111 即即 x = -(2-1+2-23) * 2-128 最小负数:最小负数: 1 1111 1111 000 0000 0000 0000 0000
10、 0000 即即 x = 1 * 2127 所以规格化数的正数范围为:所以规格化数的正数范围为:2-129 (1-2-23) * 2127, 负数范围为:负数范围为:2127 -(2-1+2-23) * 2-128尾数为补码:尾数为补码:必须使最高数值位和符号位相反必须使最高数值位和符号位相反13 (1) 27/64 =27(1/64) = (0001 1011)2*2-6 = 0.011011B = 1.1011 2-2 e=2,则,则Ee127125 规格化数为规格化数为 (2) 27/64 = 0.011011B = 1.1011 2-2 规格化数为规格化数为符号位符号位阶码阶码(8)尾
11、数尾数(23)00111 11011011 0000 0000 0000 0000 000符号位符号位阶码阶码(8)尾数尾数(23)10111 11011011 0000 0000 0000 0000 0002.4 将下列十进制数表示成将下列十进制数表示成IEEE754标准的标准的32位浮点规格化数。位浮点规格化数。 (1)27/64 (2)27/6414(1) x补补00 11011 ,y补补00 00011 x+y补补00 11110,未溢出,未溢出(2) x补补00 11011 ,y补补11 01011 x+y补补00 00110,未溢出,未溢出(3)x补补11 01010 ,y补补11
12、 11111 x+y补补 11 01001 ,未溢出,未溢出2.5 已知已知x和和y,用变形补码计算,用变形补码计算xy,同时指出结果是否溢出。,同时指出结果是否溢出。 (1) x=11011 y=00011 (2) x=11011 y=10101 (3) x=10110 y=00001 00 11011) 00 0001100 1111000 11011) 11 0101100 0011011 01010) 11 1111111 0100115(1) x补补00 11011 ,y补补00 11111 xy补补 01 11010 ,溢出(上溢),溢出(上溢)(2) x补补00 10111 ,y
13、补补00 11011 , y补补11 00101 xy补补 11 11100 ,未溢出,未溢出(3) x补补00 11011 ,y补补11 01101 , y补补00 10011 xy补补 01 01110 ,溢出(上溢),溢出(上溢)2.6 已知已知x和和y,用变形补码计算,用变形补码计算xy,同时指出结果是否溢出。,同时指出结果是否溢出。(1)x=11011 y=11111 (2) x=10111 y=11011 (3)x=11011 y=1001100 11011) 00 1111101 1101000 10111) 11 0010111 1110000 11011) 00 100110
14、1 0111016 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 11 1 0 1 11 1 0 1 0 0 0 1 0 1 1 1 1 1 1(1) 输入数据的原码:输入数据的原码: x原原0 11011 y原原1 11111 符号位单独运算:符号位单独运算: 0 11 算前求补器输出:算前求补器输出: |x|=11011 |y|=10011 乘法阵列乘法阵列:|x| |y| 1 1 0 1 0 0 0 1 0 1 加上乘积符号位加上乘积符号位1,得,得xy原原 1 1101000101 即即x y=11010001012.7 用原码阵列乘法器、补码阵列乘法器分
15、别计算用原码阵列乘法器、补码阵列乘法器分别计算xy。(1) x11011 y11111(2) x11111 y11011 1 1 0 1 117 输入数据的原码:输入数据的原码: x原原 1 11111 y原原 1 11011 符号位单独运算符号位单独运算 1 10 算前求补器输出:算前求补器输出:|x|= 11111 |y|= 11011 乘法阵列乘法阵列:|x| |y| 1 1 0 1 0 0 0 1 0 1 加上乘积符号位加上乘积符号位0,得,得xy原原 0 1101000101 即即xy=1101000101(2) x11111 y11011 1 1 1 1 1 1 1 1 1 1 0
16、 0 0 0 0 1 1 1 1 11 1 1 1 11 1 0 1 0 0 0 1 0 1 1 1 0 1 11 1 1 1 118(1)x=2-0110.100101 y=2-010(-0.011110)(2)x=2-101(-0.010110) y=2-1000.0101102.9 设阶码设阶码3位,尾数位,尾数6位,按浮点数运算方法,位,按浮点数运算方法,完成下列取值的完成下列取值的x+y、x-y运算:运算:19(1-1) x=2-0110.100101 ,y=2-010(-0.011110),求,求x+y 设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则则x、y的浮点数表示为的浮点数表示为x浮浮 11 101,0.100101 y浮浮 11 110,1.100010 求阶差并对阶求阶差并对阶 EExEyEx补补Ey补补11 101 00 01011 111 修改后的修改后的x表示为:表示为: x浮浮 11 110,0.010010(1) 尾数求和尾数求和Mx+My 1 . 1 1 0 1 0 0 (1)1 .