计算机组成原理课后习题答案(第三版)白中英
第一章
1. 模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。数字计算机的主要特
点是按位运算,并且不连续地跳动计算。模拟计算机用电压表示数据,采用电压组合和
测量值的计算方式,盘上连线的控制方式,而数字计算机用数字 0 和 1 表示数据,采用
数字计数的计算方式,程序控制的控制方式。数字计算机与模拟计算机相比,精度高,
数据存储量大,逻辑判断能力强。
2. 数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行
的经济性和适应性来划分的。
3. 科学计算、自动控制、测量和测试、信息处理、教育和卫生、家用电器、人工智能。
4. 主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制
装置、存储器、输入和输出设备
5. 存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元
地址。如果某字代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字。
6. 每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序。
7. 取指周期中从内存读出的信息流是指令流,而在执行器周期中从内存读出的信息流是指
令流。
8. 半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外
存共同用来保存二进制数据。运算器和控制器合在一起称为中央处理器,简称 CPU,它
用来控制计算机及进行算术逻辑运算。适配器是外围设备与主机联系的桥梁,它的作用
相当于一个转换器,使主机和外围设备并行协调地工作。
9. 计算机的系统软件包括系统程序和应用程序。系统程序用来简化程序设计,简化使用方
法,提高计算机的使用效率,发挥和扩大计算机的功能用用途;应用程序是用户利用计
算机来解决某些问题而编制的程序。
10.
在早期的计算机中,人们是直接用机器语言来编写程序的,这种程序称为手编程序
或目的程序;后来,为了编写程序方便和提高使用效率,人们使用汇编语言来编写程序,
称为汇编程序;为了进一步实现程序自动化和便于程序交流,使不熟悉具体计算机的人
也能很方便地使用计算机,人们又创造了算法语言,用算法语言编写的程序称为源程序,
源程序通过编译系统产生编译程序,也可通过解释系统进行解释执行;随着计算机技术
的日益发展,人们又创造出操作系统;随着计算机在信息处理、情报检索及各种管理系
统中应用的发展,要求大量处理某些数据,建立和检索大量的表格,于是产生了数据库
管理系统。
11.从第一至五级分别为微程序设计级、一般机器级、操作系统级、汇编语言级、高级语言
级。采用这种用一系列的级来组成计算机的概念和技术,对了解计算机如何组成提供了
一种好的结构和体制。而且用这种分级的观点来设计计算机,对保证产生一个良好的系
统结构也是很有帮助的。
12.
因为任何操作可以由软件来实现,也可以由硬件来实现;任何指令的执行可以由
硬件完成,也可以由软件来完成。实现这种转化的媒介是软件与硬件的逻辑等价性。
13.
( 略 )
1
计算机组成原理课后习题答案(第三版)白中英
第二章
1.(1)
(2)
[
[
[
[
]
35
64
35
64
35
原
64
35
64
35
64
35
64
反
移
补
]
23
128
]
]
43.0
)8(
.0
100011
11000110
10111010
10111001
00111010
.0
134
)8(
.0
001011100
23[
128
23[
128
23[
128
23[
128
(3)-127
]
原
00010111
]
补
00010111
]
反
00010111
]
移
10010111
-127 = -7F = -1111111
[-127]原 = 11111111
[-127]补 = 10000001
[-127]反 = 10000000
[-127]移 = 00000001
(4)[-1]原 = 1000 0000
[-1]补 = 1000 0000
[-1]反 = 1111 1111
[-1]移 = 0000 0000
(5)-1 = -00000001
[-1]原 = 1000 0001
[-1]补 = 1111 1111
[-1]反 = 1111 1110
[-1]移 = 0111 1111
2
计算机组成原理课后习题答案(第三版)白中英
2.[x]补 = a0. a1a2…a6
解法一、
(1) 若 a0 = 0, 则 x > 0, 也满足 x > -0.5
此时 a1→a6 可任意
(2) 若 a0 = 1, 则 x <= 0, 要满足 x > -0.5, 需 a1 = 1
即 a0 = 1, a1 = 1, a2→a6 有一个不为 0
解法二、
-0.5 = -0.1(2) = -0.100000 = 1, 100000
(1) 若 x >= 0, 则 a0 = 0, a1→a6 任意即可
[x]补 = x = a0. a1a2…a6
(2) 若 x < 0, 则 x > -0.5
只需-x < 0.5, -x > 0
[x]补 = -x, [0.5]补 = 01000000
即[-x]补 < 01000000
a
0
*
a
1
*
a
2
a
1
6
01000000
a
0
*
a
1
*
a
2
a
6
00111111
aaa
10
2
a
6
11000000
即 a0a1 = 11, a2→a6 不全为 0 或至少有一个为 1(但不是“其余取 0”)
3.字长 32 位浮点数,阶码 10 位,用移码表示,尾数 22 位,用补码表示,基为 2
Es
E1→E9
Ms
M20
M0
(1) 最大的数的二进制表示
E = 111111111
Ms = 0, M = 11…1(全 1)
表示为: 11…1 011…1
10 个 21 个
29
1
2
即:
21(
(2) 最小的二进制数
21
)
E = 111111111
Ms = 1, M = 00…0(全 0)(注意:用 10….0 来表示尾数-1)
表示为: 11…1 100…0
10 个 21 个
即:
29
2
1
)1(
3
计算机组成原理课后习题答案(第三版)白中英
(3) 规格化范围
正最大 E = 11…1, M = 11…1, Ms = 0
10 个
22
即:
19
21 个
21
)21(
正最小 E = 00…0, M = 100…0, Ms = 0
10 个
20 个
即:
29 2
1
2
负最大 E = 00…0, M = 011…1, Ms = 1
10 个
20 个
(最接近 0 的负数)即:
29
2
1
2(
21
)2
负最小 E = 11…1, M = 00…0, Ms =1
10 个
21 个
即:
29
2
1
)1(
2
511
规格化所表示的范围用集合表示为:
[
,
19
22
29 2
1
2(
2
(4) 最接近于 0 的正规格化数、负规格化数(由上题可得出)
1
21
)21(
)1(
] [
2
2
,
2
29
511
29
正规格化数
E = 00…0, M = 100…0, Ms = 0
10 个
29 2
1
20 个
负规格化数
2
E = 00…0, M = 011…1, Ms = 1
10 个
20 个
29
2
1
2(
21
)2
4.假设浮点数格式如下:
Es
E1→E3
Ms
M8
M0
(1)
27
64
.0
011011
.0
11011
12
1
阶补码:
尾数补码: 0
机器数:
11
1101 1000
1110 1101 1000
(2)
.0
011011
.0
110110
12
27
64
阶补码: 1
尾数补码: 1
机器数:
11
0010 1000
1110 0010 1000
1
21
)2
]
4
计算机组成原理课后习题答案(第三版)白中英
5.(1)x = 0.11011, y = 0.00011
0 0 1 1 0 1 1
+ 0 0 0 0 0 1 1
0 0 1 1 1 1 0
x+y = 0.11110
无溢出
(2) x = 0.11011, y = -0.10101
[x]补 =
[y]补 =
0 0 1 1 0 1 1
+1 1 0 1 0 1 1
0 0 0 0 1 1 0
x+y = 0.00110
无溢出
(3)x = -0.10110
y = -0.00001
[x]补 =
[y]补 =
1 1 0 1 0 1 0
+1 1 1 1 1 1 1
1 1 0 1 0 0 1
x+y = -0.10111
无溢出
6.(1)x = 0.11011
y = -0.11111
[x]补 =
[y]补 =
溢出
(2)x = 0.10111
y = 0.11011
[x]补 =
[y]补 =
0 0. 1 1 0 1 1
+0 0. 1 1 1 1 1
0 1. 1 1 0 1 0
0 0. 1 0 1 1 1
+1 1. 0 0 1 0 1
1 1. 1 1 1 0 0
x-y = -0.00100
无溢出
(3)x = 0.11011
y = -0.10011
[x]补 =
[y]补 =
溢出
7.(1)原码阵列
0 0. 1 1 0 1 1
+0 0. 1 0 0 1 1
0 1. 0 1 1 1 0
x = 0.11011, y = -0.11111
符号位:
x0⊕y0 = 0⊕1 = 1
[x]原 = 11011, [y]原 = 11111
*
1 1 0 1 1
1 1 1 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 0 0 0 1 0 1
5
计算机组成原理课后习题答案(第三版)白中英
[x*y]原 = 1, 11 0100 0101
直接补码阵列
[x]补 = (0)11011, [y]补 = (1)00001
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
(0) 1
(1) 0
(0)
1
0
(0) 0
0
0
0
0
0
0
(1) (0) (1) (1)
(1) (0) (1) (1)
0
1,
(0) 0
0
0
0
0
1
0
(0)
(0) 0
(1)
(1)
0
0
0
1,
1
1
1
1
0
0
1
1
1
1
[x*y]补 = 1,00101,11011(直接补码阵列不要求)
带求补器的补码阵列
[x]补 = 0 11011, [y]补 = 1 00001
乘积符号位单独运算 0⊕1=1
尾数部分算前求补输出│X│=11011,│y│=11111
*
1 1 0 1 1
1 1 1 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 1
1 1 0 1 0 0 0 1 0 1
X×Y=-0.1101000101
(2) 原码阵列
x = -0.11111, y = -0.11011
符号位:
[x]补 = 11111, [y]补 = 11011
x0⊕y0 = 1⊕1 = 0
1 1 1 1 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
1 1 0 1 0 0 0 1 0 1
[x*y]补 = 0,11010,00101
直接补码阵列
[x]补 = (1)00001, [y]补 = (1)00101
6
计算机组成原理课后习题答案(第三版)白中英
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
(1) 0
(1) 0
(1) 0
0
0
0
0
0 (1) (1)
1 0
1
0
0
0
0
1
1
0
0
1
1
(0)0
0
(1) 0
0
0
(0) 0
0
0
0
(0) 0
(0) (0) (0) (0) (1)
0
0
1
0
1
1
0
[x*y]补 = 0,11010,00101(直接补码阵列不要求)
带求补器的补码阵列
[x]补 = 1
00001,
[y]补 = 1 00101
乘积符号位单独运算 1⊕1=0
尾数部分算前求补输出│X│=11111,│y│=11011
1 1 1 1 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
1 1 0 1 0 0 0 1 0 1
X×Y=0.1101000101
7
计算机组成原理课后习题答案(第三版)白中英
8.(1) 符号位 Sf = 0⊕1 = 1
去掉符号位后:[y’]补 = 00.11111
[-y’]补 = 11.00001
[x’]补 = 00.11000
+[-y’]补
+[y’]补
+[-y’]补
+[-y’]补
+[y’]补
+[y’]补
0 0 1 1 0 0 0
1 1 0 0 0 0 1
1 1 1 1 0 0 1
← 1 1 1 0 0 1 0
0 0 1 1 1 1 1
0 0 1 0 0 0 1
← 0 1 0 0 0 1 0
1 1 0 0 0 0 1
0 0 0 0 0 1 1
← 0 0 0 0 1 1 0
1 1 0 0 0 0 1
1 1 0 0 1 1 1
← 1 0 0 1 1 1 0
0 0 1 1 1 1 1
1 1 0 1 1 0 1
← 1 0 1 1 0 1 0
0 0 1 1 1 1 1
1 1 1 1 0 0 1
x
y
.0
11000
,
余数
.0
00111
52*
(2) 符号位 Sf = 1⊕0 = 1
去掉符号位后:[y’]补 = 00.11001
[-y’]补 = 11.00111
[x’]补 = 00.01011
+[-y’]补
+[y’]补
+[y’]补
+[-y’]补
+[-y’]补
+[-y’]补
0 0 0 1 0 1 1
1 1 0 0 1 1 1
1 1 1 0 0 1 0
1 1 0 0 1 0 0
0 0 1 1 0 0 1
1 1 1 1 1 0 1
1 1 1 1 0 1 0
0 0 1 1 0 0 1
0 0 1 0 0 1 1
0 1 0 0 1 1 0
1 1 0 0 1 1 1
0 0 0 1 1 0 1
←
←
←
← 0 0 1 1 0 1 0
1 1 0 0 1 1 1
0 0 0 0 0 0 1
← 0 0 0 0 0 1 0
1 1 0 0 1 1 1
1 1 0 1 0 0 1
0
0.1
0.11
0.110
0.1100
0.11000
0
0.0
0.01
0.011
0.0111
0.01110
8