〈计算机组成与结构〉典型例题及习题各20例
典型例题:
1.什麽是CPU?什麽是主机?输入输出设备为什麽称为外围设备?
[答]:在计算机的各个基本部件中,通常把运算器和控制器合在一起称为中央处理器CPU。把CPU、存储器、输入输出接口电路合在一起构成处理系统称为主机,而这些部件都是数字电路部件,可以集成在一块电路板上。输入输出设备包含一些机械部件而难于与主机集成,故通常置于主机之外,称为外围设备,又称IO设备。
2.计算机软件有那些基本类型?
[答]:计算机软件一般可分为系统软件和应用软件两类。
系统软件是整个计算机系统的一部分,为用户 操作计算机及应用程序的运行提供一个方便的界面。系统软件又分两类:一类是操作系统软件,负责计算机系统的运行控制;另一类是对程序设计语言进行处理的软件,包括编译程序、解释程序、汇编程序等。应用软件是完成用户所需功能的软件,专门为解决某个应用领域中的具体任务而编写的。应用软件的种类繁多,办公自动化软件、游戏软件均属这一类。
3.
计算机分那些组成部分?为什麽要分成这些组成部分?
[答]:电子计算机主要有五个组成部分:输入设备、控制单元、存储单元、运算单元及输出设备。这些设备相互配合互相协调地完成运算任务。输入设备用于接受外界信息,输出设备将计算的结果从计算机中输出,控制器完成操作步骤的控制和协调,存储单元用于存储数据及程序,运算器用于完成计算工作。
4.
计算机中有几种逻辑操作?对逻辑函数通常采用那些化简方法?
[答]:计算机中有三种逻辑操作:分别为“与”“或”“非”操作,由这三种基本操作可构成计算机中的各种逻辑部件,如:加法器、乘法器、译码器、数据选择器、寄存器、计数器等。同样三种逻辑操作也构成了各种逻辑函数,逻辑函数的难易直接关系到逻辑部件的构成,因此化简逻辑函数便显得尤为重要,常用的化简方法有代数法和卡诺图法,代数法很难判断是否化为最简,因此我们更常采用卡诺图法,但要注意卡诺图化简的结果不是唯一的。
5.
画出一个具有4位加减功能的电路,并写出在下列输入情况下的输出结果。
(1)
M=0,A=0111,B=0110,
(2)M=0,A=1000,B=1001, A0
(3)M=1,A=1100,B=1000, B0 R0
(4)M=1,A=0101,B=1010,
(5)M=1,A=0000,B=0001。 A1
[答]具有4位加减法功能的电路如图右: B1 R1
(1) R=0111+0110=1101,C=0, A2
(2) R=1000+1001=0001,C=1, B2 R2
(3) R=1100+0111=0001=0100,C=1,
(4) R=0101+0101+0001=1011,C=0, A3 R3
(5) R=0000+1110+0001=1111,C=0。 B3
6.
将十进制数19.7转换成二进制,保留6位小数。
C
[答]:十进制数转换为二进制数分为整数部分和小数部分两种情况。整数部分的转换方法是除2取余法。先将十进制数的整数部分除以2,取余数,该余数为二进制的最低位,再以取得的商除以2取余,依此类推,直到求的商位零为止,将所得的余数按从下到上的顺序排列就组成了二进制的整数部分。本题整数的转换部分如下:
19÷2=9 …… 1
9÷2=4 …… 1
4÷2=2 …… 0
2 ÷2=1 …… 0
1÷ 2=0 …… 1
所以整数部分的结果为(100110)2 。
小数部分十进制数转换二进制数的方法是乘2取整法。先将十进制数的小数部分乘以2,取其积的整数部分,该整数部分即为二进制小数部分的第一位,再以2乘以上述结果的小数部分,取整数为二进制的次高位,依此类推,直到积为零或者满足所需的位数为止,将所得的整数部分从上到下的顺序排列即可。本题的小数部分转换如下:
0.
7×2=1.4……1
0.
4×2=0.8……0
0. 8×2=1.6 …… 1
0. 6×2=1.2 …… 1
0. 2×2=0.4 …… 0
0. 4×2=0.8 …… 0
故小数部分的转换结果为(0.101100)2
所以(19.7)10=(10011.101100)2
7.
将(11010.1001011)2转换成八进制数和十六进制数。
[答]:二进制的整数部分转换成八进制时,从小数点起按低位到高位的顺序将整数部分的二进制分成三位一组,不足三位的高位补零,每组都转换成八进制,将结果连起来即得到整数部分得结果。小数部分转换成八进制时,从小数点起按高位到低位将小数部分的二进制数分成三位一组,不足三位的低位补零,每组都转换成八进制数,将结果连起来即为小数部分的结果。所以
(11010.1001011)2=(011,010.100,101,100)2=(32.454)8
3 2 . 4 5 4
二进制的整数部分转换成十六进制数时,从小数点起按低位到高位的顺序将整数部分的二进制数分成四位一组,不足四位的高位补零,每组都转换十六进制,将结果连起来即得到小数部分的结果。所以
0001,1010.1001,01102=1A.9616
8.
求下列二进位制数的原码、反码、补码、移码的编码:
(1)1011;
(2)-1011。
[答]:(1)因为1011大于0,所以根据各种码的编码方法,有:
[1011]原=01011 (符号位取0,其余位不变)
[1011]反=01011 (符号位取0,其余位不变)
[1011]补=01011 (符号位取0,其余位不变)
[1011]移=01011+10000=11011 (加24或补码的符号位取反)
(2)因为-1011小于0,所以根据各种码的编码方法,有:
[-1011]原=11011(符号位取1,其余位不变)
[-1011]反=10100(符号位取1,其余位按位取反)
[-01011]补=10101(按位取反后再最低位上加1)
[-1011]移=10000-01011=00101(加24或补码的符号位取反)
9.求以下编码的真值:
(1)[ X ]原=10101
(2)[ X ]原=00101
(3)[ X ]补=00111
(4)[X]补=10111
[答]: (1)原码中的符号为1,说明它是一个负数。负数原码的真值等于数值位前加一个负号,即
-101。
(2)原码中的符为0,说明它是一个正数。正数原码的真值等于其数值位,即101
(3)补码中的符号位为0,说明它是一个正数。正数补码的真值等于起数值位,即+111。
(4)补码中的符号位为1,说明它是一个负数。负数补码的真值可以通过对它在进行一次求补 得到。对10111求补的结果为01001,再加上负号,得—1001。
10. 对数据12310作规格化浮点数的编码,假定1为符号位,基数为2,阶码5位,采用移码,尾数10位,采用补码。
[答]:(1)先将数据表示成M×RE的形式
12310=11110112=0.1111011000×22
分别对M和E按照题目要求进行编码,即阶码采用五位移码,尾数采用十位补码,有:
E= [7]移=10000+00111=10111
M= [0.1111011000]补=0.1111011000
将编码的结果按浮点数格式表示出来,因为符号位为零,所以浮点格式为:
010111 1111011000
其中第一位为尾数符,第二位为阶符。
11.
将下列十进制数用压缩的十进制数串形式进行编码:
(1) 369;
(2) +34;
(3) -432。
[答]:根据压缩的十进制数串的编码方法,用四位二进制数表示一个十进制数,符号位和数据位的位数之和必须为偶数位,若不是,在最高位加0000补足偶数位;用1100表示正号,用1101表示负号,表示符号的代码放在数据最低位的后面,所以结果如下:
(1)36910=(0000 0011 0110 1001)压缩十进制;
(2)+3410=(0000 0011 0100 1100)压缩十进制;
(3)-14210=(0100 0011 0010 1101)压缩十进制。
12.
对四位有效信息(1100)作CRC编码,生成多项式为(1011)。
[ 解]:以知四位有效信息为:M(x)=X3+X2=1100
左移三位为: M(x)×X3=X6+X5=1100000
生成多项式为:G(x)=X3+X+1=1011
求余数(即校验码)为: [ M(x)×X3]÷G(x)=1100000÷1011=1110+010÷1011
求得的余数为:R(x)=010
将信息码后拼接校验码即为CRC循环校验码。
故1100的CRC码为:M(x)×X3+R(x)=1100000+010=1100010
13.
用浮点数运算步骤对56×55进行二进制运算,浮点数格式为:1位符号位、五位阶码、10位尾数。
[解]:5610=1110002=26×0.111000,
[56]浮=00110,0.1110000000;
5510=1101112=26×0.110111,
[55]浮=00110,0.1101110000;
1)步骤1、阶码相加:00110+00110=01100。
2)步骤2、尾数相乘:0.1110000000×0.1101110000=0.1100000010。(可使用原码一位或两位乘法,亦可使用补码一位或两位乘法。)
3)步骤3、规格化:尾数数码的最高位必须为真值1,即尾数的真值不得小于0.5,无论采用原码或补码,其符号位及数码最高位必为相反数(0或1,1或0),由上可看出为规格化数:0.1100000010,无须规格化。
4)步骤4、舍入:将右规移出的数用寄存器保存,舍入时将该数的最高位 采用0舍1入的办法进行舍入,即再左移回来,该题不存在舍入,尾数已适合10位存储,不做舍入操作。
5)步骤5、判溢:利用学过的各种判溢方法进行判溢,上数两个数均为正数,结果也为正数,无溢出,最后结果为:
(56×55)浮=26×0.111000×26×0.110111
=212×0.1100000010
=01100,0.110000001
14.
假定计算机系统需要512 字节RAM和512字节的ROM,使用的RAM 芯片是128字×8位。RAM芯片有CS及控制端,ROM芯片有CS控制端,CPU有地址线A15~A0、数据线D7~D0、读写控制线R/W等。试确定各存储芯片的地址区间、指出存储器及各存储器需的地址线数量,并画出存储器与CPU的连线图。
[答]:存储器需要(512÷128=4)4片RAM和1片ROM芯片。为了区别不同的RAM芯片以及ROM芯片,必须给每个芯片设置不同的地址区间,各存储器芯片的地址区间安排如下:
|
元件(列出芯片的型) |
十六进制地址范围(每个芯片的地址围 |
二进制地址值(地址信号逻辑值,x表任意值) A9A8A7A6A5A4A3A2A1A0 |
|
RAM1 |
0000~007F |
0 0 0 x x x x x x x |
|
RAM2 |
0080~00FF |
0 0 1 x x x x x x x |
|
RAM3 |
0100~017F |
0 1 0 x x x x x x x |
|
RAM4 |
0180~01FF |
0 1 1 x x x x x x x |
|
ROM |
0200~03FF |
1 x x x x x x x x x |
存储器的总容量为1KB,需10条地址线,多余的高位 地址线可以空置不用。RAM芯片需要
7条信号线(27=128),ROM芯片需要9条地址线(29=512)。存储器与CPU的连接如图示: