当前位置:首页 > 计算机组成原理课后答案(唐朔飞第二版)[1]
21
注意:程序中断方式虽然CPU运行效率比程序查询高,但传输速度却比程序查询慢。 (6)程序查询接口硬件结构最简单,因此最经济; 程序中断接口硬件结构稍微复杂一些,因此较经济; DMA控制器硬件结构最复杂,因此成本最高; (7)程序中断方式适用于中、低速设备的I/O交换; 程序查询方式适用于中、低速实时处理过程; DMA方式适用于高速设备的I/O交换; 讨论:
问题1:这里的传送速度指I/O设备与主存间,还是I/O与CPU之间?
答:视具体传送方式而定,程序查询、程序中断为I/O与CPU之间交换,DMA为I/O与主存间交换。
问题2:主动性应以CPU的操作方式看,而不是以I/O的操作方式看。 程序查询方式:以缓冲器容量(块、二进制数字)为单位传送;? ? 程序中断方式:以向量地址中的数据(二进制编码)为单位传送; DMA:传送单位根据数据线的根数而定;?
30. 什么是多重中断?实现多重中断的必要条件是什么?
解:多重中断是指:当CPU执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。
实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为1,即开中断。
第 六 章
2. 已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。 (1)X > 1/8; ?1/2; (2)X X?
(3)1/4 > 1/16
解: (1)若要X > 1/2,只要a1=1,a2~a6不全为0即可(a2 or a3 or a4 1/8,只要a1~a3不全为0即可(a1 or a2 or a3 =1),?or a5 or a6 = 1); (2)若要X a4~a6可任取0或1;
X?(3)若要1/4 > 1/16,只要a1=0,a2可任取0或1; 当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0(a5 or a6=1;若a3=1,则a4~a6可任取0或1; 当a2=1时, a3~a6可任取0或1。
3. 设x为整数,[x]补=1,x1x2x3x4x5,若要求 x < -16,试问 x1~x5 应取何值? 解:若要x < -16,需 x1=0,x2~x5 任意。(注:负数绝对值大的补码码值反而小。)
6.4 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。 -13/64,29/128,100,-87 解:真值与不同机器码对应关系如下: 真 值
十进制 二进制 原 码 反 码 补 码 -13/64 -0.00 1101 1.001 1010 1.110 0101 1.110 0110
22
29/128 0.001 1101 0.001 1101 0.001 1101 0.001 1101 100 110 0100 0,110 0100 0,110 0100 0,110 0100 -87 -101 0111 1,101 0111 1,010 1000 1,010 1001
5. 已知[x]补,求[x]原和x。 [x1]补=1. 1100; [x2]补=1. 1001; [x3]补=0. 1110; [x4]补=1. 0000; [x5]补=1,0101; [x6]补=1,1100; [x7]补=0,0111; [x8]补=1,0000; 解:[x]补与[x]原、x的对应关系如下:
6. 设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时,
[x]补=[x]原成立。
解: 当x为小数时,若x >0 [x]补=[x]原成立; 若x < 0,则当x= -1/2时, [x]补=[x]原成立。 0,则 [x]补=[x]原成立; 若x?当x为整数时,若x < 0,则当x= -64时, [x]补=[x]原成立。
7. 设x为真值,x*为绝对值,说明[-x*]补=[-x]补能否成立。
解:当x为真值,x*为绝对值时,[-x*]补=[-x]补不能成立。 [-x*]补=[-x]补的结论只在x>0时成立。当x<0时,由于[-x*]补是一个负值,而[-x]补是一个正值,因此此时[-x*]补不等于[-x]补。
8. 讨论若[x]补>[y]补,是否有x>y?
解:若[x]补>[y]补,不一定有x>y。 [x]补 > [y]补时 x > y的结论只在 x > 0、y > 0,及 x<0、y<0时成立。当x>0、 y<0时,有x>y,但由于负数补码的符号位为1,则[x]补<[y]补。同样,当x<0、 y >0时,有x < y,但[x]补>[y]补。
注意: 1)绝对值小的负数其值反而大,且负数的绝对值越小,其补码值越大。因此, 当x<0、y<0时,若[x]补>[y]补,必有x>y。 2)补码的符号位和数值位为一体,不可分开分析。 3)完整的答案应分四种情况分析,但也可通过充分分析一种不成立的情况获得正确答案。 4)由于补码0的符号位为0,因此x、y=0可归纳到>0的一类情况讨论。 5)不考虑不同数字系统间的比较。(如有人分析x、y字长不等时的情况,无意义。)
12. 设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024所对应的机器数。要求如下: (1)阶码和尾数均为原码。 (2)阶码和尾数均为补码。
(3)阶码为移码,尾数为补码。 解:据题意画出该浮点数的格式:
阶符1位 阶码4位 数符1位 尾数10位 -1-5
将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2 * 0.110 011B
x2= -27/1024= -0.0000011011B = 2*(-0.11011B)
则以上各数的浮点规格化数为:
(1)[x1]浮=1,0001;0.110 011 000 0 [x2]浮=1,0101;1.110 110 000 0 (2)[x1]浮=1,1111;0.110 011 000 0 [x2]浮=1,1011;1.001 010 000 0 (3)[x1]浮=0,1111;0.110 011 000 0
23
[x2]浮=0,1011;1.001 010 000 0
13. 浮点数格式同上题,当阶码基值分别取2和16时, (1)说明2和16在浮点数中如何表示。 (2)基值不同对浮点数什么有影响? (3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数和非零最小正数真值。 解:(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:2和16不出现在浮点格式中,仅为人为的约定。
(2)当基值不同时,对数的表示范围和精度都有影响。即:在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但精度越下降。 (3)r=2时,最大正数的浮点格式为: 0,1111;0.111 111 111 1 其真值为:N+max=215×(1-2-10) 非零最小规格化正数浮点格式为: 1,0000;0.100 000 000 0 其真值为:N+min=2-16×2-1=2-17 r=16时,最大正数的浮点格式为: 0,1111;0.1111 1111 11 其真值为:N+max=1615×(1-2-10) 非零最小规格化正数浮点格式为: 1,0000;0.0001 0000 00 其真值为:N+min=16-16×16-1=16-17
14. 设浮点数字长为32位,欲表示±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取一位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么? 解:若要保证数的最大精度,应取阶的基=2。 若要表示±6万间的十进制数,由于32768(215)< 6万 <65536(216),则:阶码除阶符外还应取5位(向上取2的幂)。 故:尾数位数=32-1-1-5=25码 25
15. 什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式? 解:机器零指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码66拼起来正好为一串0的形式)。
16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。 (1)无符号数;
(2)原码表示的定点小数。 (3)补码表示的定点小数。 (4)补码表示的定点整数。 (5)原码表示的定点整数。
(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出其正数和负数的表示范围。
(7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。
解:(1)无符号整数:0 —— 2 - 1,即:0—— 65535;
无符号小数:0 —— 1 - 2 ,即:0 —— 0.99998;
(2)原码定点小数:-1 + 2——1 - 2 ,即:-0.99997 —— 0.99997 (3)补码定点小数:- 1——1 - 2 ,即:-1——0.99997亚运会
-15
-15
-15
-16
16
位 25(32) 该浮点数格式如
下: 1 5 1 ??按此格式,该浮点数上溢的条件为:阶
24
(4)补码定点整数:-2——2 - 1 ,即:-32768——32767 (5)原码定点整数:-2 + 1——2 - 1,即:-32767——32767
(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时: 最大负数= 1,11 111;1.000 000 001 ,即 -2?2 最小负数= 0,11 111;1.111 111 111,即 -(1-2)?2 则负数表示范围为:-(1-2)?2—— -2?2 最大正数= 0,11 111;0.111 111 111,即 (1-2)?2 最小正数= 1,11 111;0.000 000 001,即 2?2 则正数表示范围为:2?2
-9
-31
-9
-31-9
31
-9
31
-9
-31
-9
31
-9
-31
15
15
1515
——(1-2)?2
-1
-32
-931
(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则 最大负数=1,00 000;1.011 111 111,即 -2?2 最小负数=0,11 111;1.000 000 000,即 -1?2 则负数表示范围为:-1?2—— -2?2
最大正数=0,11 111;0.111 111 111,即 (1-2)?2 最小正数=1,00 000;0.100 000 000,即 2?2 则正数表示范围为:2?2
-1
-32
-1
-32-9
31
31
-1
-32
31
——(1-2)?2
-931
17. 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术
右移一位、两位,讨论结果是否正确。
[x1]原=0.001 1010;[y1]补=0.101 0100;[z1]反=1.010 1111; [x2]原=1.110 1000;[y2]补=1.110 1000;[z2]反=1.110 1000; [x3]原=1.001 1001;[y3]补=1.001 1001;[z3]反=1.001 1001。 解:算术左移一位:
[x1]原=0.011 0100;正确
[x2]原=1.101 0000;溢出(丢1)出错 [x3]原=1.011 0010;正确
[y1]补=0.010 1000;溢出(丢1)出错 [y2]补=1.101 0000;正确
[y3]补=1.011 0010;溢出(丢0)出错 [z1]反=1.101 1111;溢出(丢0)出错 [z2]反=1.101 0001;正确
[z3]反=1.011 0011;溢出(丢0)出错 算术左移两位:
[x1]原=0.110 1000;正确
[x2]原=1.010 0000;溢出(丢11)出错 [x3]原=1.110 0100;正确
[y1]补=0.101 0000;溢出(丢10)出错 [y2]补=1.010 0000;正确
[y3]补=1.110 0100;溢出(丢00)出错 [z1]反=1.011 1111;溢出(丢01)出错 [z2]反=1.010 0011;正确
[z3]反=1.110 0111;溢出(丢00)出错 算术右移一位:
[x1]原=0.000 1101;正确
共分享92篇相关文档