补充题:
一、某CRT显示器可显示64种ASCII字符,每帧可显示72字×24排;每个字符字形采用7×8点阵,即横向7点,字间间隔1点,纵向8点,排间间隔6点;帧频50Hz,采取逐行扫描方式。假设不考虑屏幕四边的失真问题,且行回扫和帧回扫均占扫描时间的20%,问:
1)显存容量至少有多大?
2)字符发生器(ROM)容量至少有多大? 3)显存中存放的是那种信息?
4)显存地址与屏幕显示位置如何对应?
5)设置哪些计数器以控制显存访问与屏幕扫描之间的同步?它们的模各是多少? 6)点时钟频率为多少?
解:1)显存最小容量=72×24×8 =1728B
2)ROM最小容量=64×8行×8列= 512B(含字间隔1点) 3)显存中存放的是ASCII码信息。
4)显存每个地址对应一个字符显示位置,显示位置自左至右,从上到下,分别对应缓存地址由低到高。
5)设置点计数器、字计数器、行计数器、排计数器控制显存访问与屏幕扫描之间的同步。
它们的模计算如下: 点计数器模 = 7+1 = 8 行计数器模 = 8 + 6 = 14
字、排计数器的模不仅与扫描正程时间有关,而且与扫描逆程时间有关,因此计算较为复杂。
列方程: (72+x)× 0.8 = 72
(24+y)× 0.8 = 24
解方程得:x = 18,y = 6,则: 字计数器模 = 72 + 18 = 90 排计数器模 = 24 + 6 = 30
6)点频 = 50Hz × 30排 × 14行 × 90字 × 8点 = 15 120 000Hz= 15.12MHz
二、有一编码键盘,其键阵列为8行×16列,分别对应128种ASCII码字符,采用硬件扫描方式确认按键信号,问:
1)扫描计数器应为多少位?
2)ROM容量为多大?
3)若行、列号均从0开始编排,则当第5行第7列的键表示字母“F”时,CPU从键盘读入的二进制编码应为多少(设采用奇校验)?
4)参考教材图5.15,画出该键盘的原理性逻辑框图; 5)如果不考虑校验技术,此时ROM是否可省? 解:1)扫描计数器 = 7位(与键的个数有关)
2)ROM容量 = 128 × 8 = 128B(与字符集大小有关)
3)CPU从键盘读入的应为字符“F”的ASCII码 = 01000110 (46H) ,其中最高位为奇校验位(注:不是位置码)。
4)该键盘的原理性逻辑框图见下页,与教材图5.15类似,主要需标明参数。 5)如果不考虑校验技术,并按ASCII码位序设计键阵列(注意) ,则ROM编码表可省,此时7位计数器输出值(扫描码或键位置码)即为ASCII码。
该键盘的原理性逻辑框图如下:
三、一针式打印机采用7列×9行点阵打印字符,每行可打印132个字符,共有96种可打印字符,用带偶校验位的ASCII码表示。问: 1)打印缓存容量至少有多大? 2)字符发生器容量至少有多大? 3)列计数器应有多少位? 4)缓存地址计数器应有多少位?
解:1)打印缓存最小容量 = 132×8= 132B(考虑偶校验位)
2)ROM最小容量 = 96×7列×9行= 672×9位 3)列计数器 = 3位(7列向上取2的幂) 4)缓存地址计数器 = 8位(132向上取2的幂) 讨论:
1.由于针打是按列打印,所以ROM一个存储单元中存一列的9个点,则容量为672×9位;
2.列计数器是对列号进行计数,所以模=7,3位(模不等于位数); 3.同样缓存地址计数器模=132,8位。
第6章 计算机的运算方法
2. 已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。 (1)X?1 2(2)X?1 8
1?X?(3)1 416解: (1)若要X?1,只要a1=1,a2~a6不全为0即可。 2(2)若要X?1,只要a1~a3不全为0即可。 8
1?X?(3)若要1,只要a1=0,a2可任取0或1; 416当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0;
若a3=1,则a4~a6可任取0或1;
当a2=1时, a3~a6均取0。
3. 设x为整数,[x]补=1,x1x2x3x4x5,若要求 x < -16,试问 x1~x5 应取何值? 解:若要x < -16,需 x1=0,x2~x5 任意。(注:负数绝对值大的补码码值反而小。)
4. 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。 -13/64,29/128,100,-87 解:真值与不同机器码对应关系如下:
真值 二进制 原码 1.001 1010 0.001 1101 0110 0100 1101 0111 补码 1.1100110 0.001 1101 0110 0100 10101001 反码 1.1100101 0.001 1101 0110 0100 10101000
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的对应关系如下:
[x]1.1101.1000.1111.00补-13/64 29/128 100 1100100 -87 -1010111 -0.001101 0.0011101 1,0101 1,1011 1,110,0111,0000 1 00 无 0 1 0 00 无 [x]1.0101.0110.111原1,010,01100 1 0 1 0 -1 x -0.01-0.010.111-101-100 0,011-10000
11 0 1 1 00 6. 设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时,[x]补=[x]原成立。
解:当x为小数时,若x? 0,则 [x]补=[x]原成立;
若x < 0,当x= -1/2时,[x]补=[x]原=1.100 0000,则 [x]补=[x]原成立。
当x为整数时,若x?0,则 [x]补=[x]原成立;
若x< 0,当x= -64时,[x]补=[x]原=1,100 0000,则 [x]补=[x]原成立。
7. 设x为真值,x*为绝对值,说明[-x*]补=[-x]补能否成立。
解:当x为真值,x*为绝对值时,[-x*]补=[-x]补不能成立。原因如下:
(1)当x<0时,由于[-x*]补是一个负值,而[-x]补是一个正值,因此此时[-x*]补=[-x]补
不成立;
(2)当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时成立。
由于正数补码的符号位为0,负数补码的符号位为1,当x>0、 y<0时,有x>y,但则[x]补<[y]补;同样,当x<0、 y >0时,有x < y,但[x]补>[y]补。
9. 当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)? 解:真值和机器数的对应关系如下:
9BH 原码 补码 反码 移码 无符号数 对应十进制数 FFH 原码 补码 反码 移码 无符号数 对应十进制数
10. 在整数定点机中,设机器数采用1位符号位,写出±0的原码、补码、反码和移码,
-128 -1 -0 +128 256 -27 -101 -100 +27 155 得出什么结论?
解:0的机器数形式如下:(假定机器数共8位,含1位符号位在内)
真值 +0 原码 0 000 0000 -0 1 000 0000 补码 0 000 0000 0 000 0000 反码 0 000 0000 1 111 1111 移码 1 000 0000 1 000 0000 结论:0的原码和反码分别有+0和-0两种形式,补码和移码只有一种形式,且补码和移码数值位相同,符号位相反。
11. 已知机器数字长为4位(含1位符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。
整数定点机 小数定点机 原码 补码 反码 真值 原码 补码 反码 真值 0,000 0,000 0,000 0,001 0,001 0,001 0,010 0,010 0,010 0,011 0,011 0,011 0,100 0,100 0,100 0,101 0,101 0,101 0,110 0,110 0,110 0,111 0,111 0,111 1,000 0,000 1,111 1,001 1,111 1,110 +0 1 2 3 4 5 6 7 -0 -1 0.000 0.000 0.000 +0 0.001 0.001 0.001 0.125 0.010 0.010 0.010 0.250 0.011 0.011 0.011 0.375 0.100 0.100 0.100 0.500 0.101 0.101 0.101 0.625 0.110 0.110 0.110 0.750 0.111 0.111 0.111 0.875 1.000 0.000 1.111 1.001 1.111 1.110 -0 -0.125 -0.250 -0.375 -0.500 -0.625 1,010 1,110 1,101 -2 1.010 1.110 1.101 1,011 1,101 1,100 -3 1.011 1.101 1.100 1,100 1,100 1,011 -4 1.100 1.100 1.011 1,101 1,011 1,010 1,110 1,010 1,001 -5 -6 1.101 1.011 1.010 1.110 1.010 1.001 -0.75