1、 第三章 1. 分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。 (1) ,2408H (2) ,0 (3) ,[] (4) 5[], (5) [100H], (6) [],’$’ (7) ,:[] (8) [], (9) ,05H (10) , 答:(1)立即数,寄存器 (2)立即数,寄存器 (3)寄存器间接,寄存器 (4)寄存器,寄存器相对 (5)寄存器,寄存器相对 (6)立即数,基址变址 (7)基址变址,寄存器 (8)寄存器,相对基址变址 (9)直接端口寻址,寄存器 (10)寄存器,寄存器 2. 已知:1000H,0200H,02H,内存10200H~10
2、205H 单元的内容分别为10H, 2,3,46H,59H,6。下列每条指令执行完后 寄存器的内容各是什么? (1) ,0200H (2) ,[200H] (3) , (4) ,3[] (5) ,[] (6) ,2[] 答:(1)0200H (2)2A10H (3)0200H (4)5946H (5)463 (6)6B59H 3. 设1000H,2000H,3500H,00A0H,0024H,0100H,0200H, 数据段中变量名为 的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什 么?物理地址值是多少? (1) ,[100H] (2) , (3) ,[]
3、4) ,:[] (5) ,[] (6) ,[10H] (7) ,[] (8) ,[][] (9) ,[][] (10) ,[][] 答:(1)直接,10100H (2)直接,10030H (3)寄存器间接,10100H (4)寄存器间接,20100H (5)寄存器间接,100A0H (6)寄存器相对,10110H (7)寄存器间接,35200H (8)相对基址变址,352D0H (9)相对基址变址,10154H (10)基址变址,35224H 4. 写出下列指令的机器码 (1) , (2) , (3) [100H],3150H 答:(1)10001B (2)10001B
4、 (3)11000111 10000111 00000 01010B 5. 已知程序的数据段为: A ‘$’,10H B ‘’ C 1234H, 0 D 5 (?) E 1200459 求下列程序段执行后的结果是什么。 , A , C , A , B , 3[] , D , E , E 答: , A 24H , C 1234H , A 24H, 34H , B 2 , 3[] 5550H , D 000 , E 1200H, 459 , E 1200H, 459 6. 指出下列指令中哪些是错
5、误的,错在什么地方。 (1) , (2) 8650H, (3) ,0200H (4) [],[1200H] (5) ,0 (6) [3], (7) ,[][] (8) ,:[] (9) ,[][] (10) , 0A20H (11) , (12) ,50H (13) ,05H (14) ,0 答:(1)长度不匹配 (2)立即数不能做目的操作数 (3)段寄存器不能用立即数赋值 (4)两个内存单元不能直接传送数据 (5) 不能用指令直接修改 (6)指令中不能出现 (7) 应和 搭配 (8)正确 (9) 应和 搭配 (10) 后应跟内存单元 (11)偏移地址为16 位,
6、 长度不够 (12)立即数不能用于 (13) 必须用 (14)操作数顺序反向;地址应为 8 位 7. 已知当前数据段中有一个十进制数字0~9 的7 段代码表,其数值依次为40H,79H,24H, 30H,19H,12H,02H,78H,00H,18H。要求用 指令将十进制数57 转换成相应的 7 段代码值,存到 寄存器中,试写出相应的程序段。 答: 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H …… ,5 , , ,7 , , 8. 已知当前1050H,0100H,4860H,1287H,试
7、用示意图表示执行下列指 令过程中,堆栈中的内容和堆栈指针 是怎样变化的。 (1)指 9. 下列指令完成什么功能? (1) , (2) , (3) ,2710H (4) (5) (6) (7) (8) 答:(1)→ (2)→ (3)2710H→ (4)1→ (5)0→ (6)1→ (7)*→, (8) 商→,余数→ 10. 已知2508H,0F36H,0004H,1864H,求下列每条指令执行后的结果 是什么?标志位 等于什么? (1) , (2) ,30H (3) (4) ,00H (5) ,0 (6) ,00H (7) , (8
8、 ,1 (9) , (10) ,1 (11) ,1 (12) , 答:(1)0408H,0 (2)0F36H,0 (3)07H, 不变 (4)04H,0 (5)01864H,0 (6)0004H,0 (7)0186H,0 (8)2504H,0 (9)0F036H,0 (10)4A10H,0 (11)16C1E6,0 (12)4186H,0 11. 假设数据段定义如下: ‘ & ’ 试用字符串操作等指令编程完成以下功能: (1)把该字符串传送到附加段中偏移量为 开始的内存单元中。 (2)比较该字符串是否和’ ’相同,若相同则将 寄存器的内容置1,否则
9、置 0。并要求将比较次数送到 寄存器中。 (3)检查该字符串是否有’&’,若有则用空格字符将其替换。 (4)把字符串大写字母传送到附加段中以 开始的单元中,其余字符传到以 开始的单元中。然后将数据段中存储上述字符串的单元清0。 答:(1) ,26 (2)补充在附加段定义 1 ‘ ’ ,1 1 ,12 ,0 : ,12 (3) , , ,'&' ,26 : : [1], ' ' : (4) ,26 : , []
10、 ,’A’ ,’Z’ :[] : :[] : [],0 12. 编程将 寄存器中的内容以相反的顺序传送到 寄存器中,并要求 中的内容不 被破坏,然后统计 寄存器中‘1’的个数是多少。 答:: ,0 ,0 ,16 : ,1 : ,1 : 13. 设1200H,0100H,5000H,0400H,2000H,3000H,0300H, (20300H)=4800H,(20302H)=00,0500H, 标号的地址为1200: 0278H, 标号的地址为3400H:0。说明下列每条指
11、令执行完后,程序将分别 转移到何处执行? (1) (2) (3) [] (4) (5) [] 如将上述指令中的操作码 改成,则每条指令执行完后,程序转向何处执行?并 请画图说明堆栈中的内容和堆栈指针如何变化。 答:(1)1200H:0278H (2)1200H:0300H (3)1200H:4800H (4)3400H:0 (5)00:4800H 将操作码 改成 后: (1)1200H:0278H 指令长度为3,则01003=0103H,入栈 (5)00:4800H 指令长度为2,则01002=0102H,入栈 14. 在下列程序段括号
12、中分别填入以下指令 (1) (2) (3) 试说明在这三种情况下,程序段执行完后,,,, 的内容分别是什么。 : ,01H ,02H ,03H ,04H : ,1 ( ) 答:(1) 05H 10H 0 0 (2) 02H 04H 03H 01H (3) 03H 07H 02H 0 15. 某班有7 个同学英语成绩低于80 分,分数存在 数组中,试编程完成以下工作: (1)给每人加 5 分,结果存到 数组中 (2)把总分存到 单元中 答: ?,?,?,?,?,?,? 7 (?) 0 , ,
13、1) ,7 : ,[] AL, 5 [], AL (2) , 5000H:0000H 5000H:03 5000H:03 5000H:0400H , 7 1: ,[] , 0 , LOOP 1 16. 中断向量表的作用是什么?它放在内存的什么区域内?中断向量表中的什么地址用于 类型3 的中断? 答:中断向量表用来存放中断服务程序的入口地址。8086 的256 类中断的入口地址要占用 1K 字节,位于内存00000H~003 的区域内。中断向量表中0000~0000 用于类型
14、3 的中断。 17. 设类型2 的中断服务程序的起始地址为0485:0016H,它在中断向量表中如何存放? 答:物理地址 内容 00008H 16H 00009H 00H 0000 85H 0000 04H 18. 若中断向量表中地址为0040H 中存放240,0042H 单元里存放的是D169H,试问: (1)这些单元对应的中断类型是什么? (2)该中断服务程序的起始地址是什么? 答:(1)10H (2)D169H:240 19. 简要说明8086 响应类型0~4 中断的条件是什么? 答:类型0:除法错中断 执行除法指令时,若除数为0 或所得商超过寄存器能容纳的范
15、围,则自动产生类型0 中断。 类型1:单步中断 若 的单步标志1,则每执行完一条指令后,自动产生类型1 中断。 类型2:不可屏蔽中断 当8086 的 引脚上接收到由低变高的电平变化时,将自动产生类型2 中断。 类型3:断点中断 若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3 中断。 类型4:溢出中断 若溢出标志1,则可由溢出中断指令 产生类型4 中断。 第四章 1. 下列变量各占多少字节? A1 23H,5876H A2 3 (?),0,0, ‘$’ A3 5 (1234H, 567890H) A4 4 (3 (1, 2,’’)) 答:A1
16、 占4 个字节 A2 占6 个字节 A3 占40 个字节 A4 占60 个字节 2. 下列指令完成什么功能? ,00 11223344H ,15 1111B ,00 255+6/5 AL, 50 4 , 0F00 1234 00 答:(1)将0066H 传送给 (2)将0 传送给 (3)将0 传送给 (4) ,02H (5) ,00 3. 有符号定义语句如下: 3,4,5,’123’ 0 L 求L 的值为多少? 答:6 4. 假设程序中的数据定义如下: ? 16 (?) ? $ 求 的值为多少
17、表示什么意义? 答: 的偏移地址为0, 当前偏移地址$=2+16+4=22, $22,故 的值为22。 若在 所在行有变量定义,则$表示该变量的偏移地址,即$表示 所在 行的当前偏移地址。故 表示从当前行到 之间定义的变量所占的字节个数。 5. 对于下面的数据定义,各条 指令执行后,有关寄存器的内容是什么? 1 ? 2 10 (?) 3 ‘’ , 1 , 2 , 3 答:1201 6. 下段程序完成后, 等于什么? , 5 , 80H L1 , 0 L1: , 0 : 答:讨论从端口5 输入的数据最高位的情况。若最高
18、位为1,则0;若最高位为0, 则0。 7. 编程序完成下列功能: (1)利用中断调用产生5 秒延时。 (2)利用中断调用,在屏幕上显示1~9 之间随机数。 答:(1)可以利用中断类型1 来处理,因为在系统时钟的中断处理程序中,时钟中断一 次要调用一次 1,即每隔55,产生一次1 中断,要产生5 秒延时,只要中断 55591 次即可。又因1 中断处理程序中只有一条 指令,故可将用户的程序代 替原有的 1 程序。 91 ;计数器 ‘5 s !’,0,0,’$’ : ,0 ,1 ;得到原中断向量 ,35H
19、 21H ;存储原中断向量 ; 的偏移地址和段地址 ,1 ;设置中断向量 ,25H 21H ,21H ;设置中断屏蔽位 ,0 21 ,2000H ;主程序延迟,在执行此段程序期间 A1: ,3000H ;产生中断 A2: A2 A1 ;取原中断向量 ,1 ,25H 21H ;5 秒计数 ;显示信息 ,09H 21H ,91 ;5 秒的值 :
20、 (2)可以利用 1,读取当前时间的1/100 秒为随机数。 : ,0 1 ;读取当前时间:时:分 ;:秒:1/100 秒 ,0 ,9 ,30H ,2 21H ,4 21H 8. 编两个通过过程完成将 中存放的二进制数转换成压缩型 码以及将 码转换 成二进制数。 答:(1)将 中的二进制数先后除以1000,100 和10,每次除法所得的商,即是 数 的千位、百位和十位数,余数是个位数。 子程序名:B2 输入参数:十六位二进制数 输出参数:0,则4 位压缩型 码。1,则要转换的数大于99
21、99, 不 变。 使用寄存器::存放除数,:存放中间结果。 B2 ,9999 ;>9999,则 置1 : ; 清0 ,1000 ;计算千位数 ;商在 中,余数在 中 ,4 ; 左移4 位 ,100 ;计算百位数 ;百位数加到 中, 左移4 位 ,4 ;余数保留在 中 ,10 ;计算十位数 ;十位数加到 中, 左移4 位 ,4 ;加个位数 ;结果送到 中 : B2 (2)将 中4 位 码顺序乘以1000,100,10 和1,然
22、后求和即得。 子程序名:2 输入参数:4 位压缩 码 输出参数:十六位二进制数 使用寄存器::暂存数据,:存放乘数,:存放中间结果 2 ,4 ,000 ,1000 ;乘以1000 ,8 ,000 ,100 ;乘以100 ,4 ,000 ,10 ;乘以10 ,000 2 9. 编写两个通用过程,一个完成 码转换成二进制数功能,另一个完成 字符显 示输出功能。 答:(1)将 中两位 码先转化成数字,然后*10。
23、 子程序名:2 输入参数:2 位 码 输出参数:转换后二进制数 使用寄存器:,, 2 ,30H ,10 ;乘以10 ,30H ,0 2 (2)使用2 号 功能调用显示字符。 子程序名: 输入参数:2 位 码 输出参数:无 使用寄存器:, ,2 21H ,2 21H 10. 编制两个通用过程,完成十六进制数转换成 码并将 码字符显示。 答:(1)子程序名: 输入参数::4 位十六进制数 输出
24、参数::4 位 码 高2 位, 低2 位 使用寄存器: ,4 ;转换 高4 位 ,0F00H ,30H ,3 A1 ,7 A1: ;转换 低4 位 ,0F00H ,30H ,3 A2 ,7 A2: ;转换 高4 位 ,4 ,30H ,3 A3 ,7 A3: ,0 ;转换 低4 位 ,30H ,3 A4 ,7 A4: (2)子程序名: 输入参数:,:4 位 码 输出参数:无 使用寄存器:
25、 ,02H 21H 21H 21H 21H ,’H’ 21H 11. 某程序可从键盘接收命令(0~5),分别转向6 个子程序,子程序入口地址分别为P0~ P5,编制程序,用跳转表实现分支结构。 答: 6 (?) : , [] P0 [2] P1 [4] P2 [6] P3 [8] P4 [10] P5 ,1 21H ,30H ,1 ,0 [] P0: P1: P2: P3:
26、 P4: P5: ,4 21H 12. 在首地址为 的数组中按递增次序存放着100 个16 位补码数,编写一个程序,把 出现次数最多的数及其出现次数分别存放于 和 中。 答: 100 (?) ;数组中的数据是按增序排列的 ? 0 : , : : ;设置返回 , , , ;给 赋值 : , 100 ;循环计数器 , 0 : , 0 , [] : [], ;计算一个数的出现次数 , 2 : , ;此数出现的次数最多吗? , ;目
27、前此数出现的次数最多,记下次数 , ;记下此数 : ;准备取下一个数 , ;出现最多的次数存入() , ;出现最多的数存入() ;以上定义代码段 13. 将键盘上输入的十六进制数转换成十进制数,在屏幕上显示。 答: ' 4 :',0,0,'$' 10 (?) : ;显示提示信息 ,9 21H ,4 ,0 : ,4 ;输入4 位十六进制数 D1: ,1 21H ,'0' D1 ,'F' D1 ,'A' A1 ,7
28、 A1: ,30H ,0 ,0 ;将 转换成十进制数,再转换成 码—> ,0 ,10 D2: ,30H [] ,0 ,0 D2 : ,0 ;显示十进制数 ,2 21H ,0 21H D3: [] ,2 21H D3 ,4 21H 14. 将 中的无符号二进制数转换成 字符串表示的十进制数。 答:将13 题输入过程和输出过程去掉即得。 10 (?) ;转换后 码按倒序存放于 : , ×××× ;无符号二进制
29、数 ,0 ;将 转换成十进制数,再转换成 码—> ,0 ,10 D2: ,30H [] ,0 ,0 D2 : ,4 21H 15. 从键盘输入20 个有符号数,将它们排序并在屏幕上显示。 答: 20 (?) ;存放20 个有符号数 10 (?) ;输出时暂时保存每一个数的 码 : ,20 ,10 ,0 ,0 : ,0 ;输入20 个有符号数(十进制),并 A1: ,1 ;转化为二进制数存放于 数组 21H ,' ' ;判断是否空格 A2
30、0 ;是否回车符 A2 ,'-' ;是否‘-’ A3 A4 A3: ,1 A1 A4: ,30H ,0 A1 A2: ,1 A5 ;若为负数,则取负 A5: [] ,0 ,2 ,0 ;回车换行 ,2 21H ,0 21H ,0 ;对20 个有符号数按由小到大顺序排序 ,19 ;采用冒泡法,排序后依然存放于 数组 L1: L2: [] [2] 1 [2] [] 1: ,2 L2 ,0 L1 ,20 ;将20 个有
31、符号数(二进制)转换为十进制数 ,0 ;再转换为 码并输出屏幕 D1: [] ,2 ,1000H D4 ,'-' ,2 21H D4: ,0 ,0 ,10 D2: ,30H [] ,0 D3 ,0 D2 D3: [1] ,2 21H D3 ,' ' ,2 21H D1 ,4 ;返回 21H 16. 编写多字节有符号数的加法程序,从键盘接收两个加数,在屏幕上显示结果。 答: 1 ' ():',0,0,'$' 2 ' ():'
32、0,0,'$' 3 ' ():',0,0,'$' 1 0,0 ;存放加数1 2 0,0 ;存放加数2 0,0,0,0 ;存放结果 : 1 ;输入第一个加数(4 位十六进制数) ,9 21H ,2 ,8 : ,4 B1 ,2 B1: ,4 1[] C1: ,1 21H ,'0' C1 ,'F' C1 ,'A' A1 ,7 A1: ,30H ,0 1[] ,0 ;回车换行 ,2 21H ,0 21H 2 ;输入第二个加
33、数(4 位十六进制数) ,9 21H ,2 ,8 1: ,4 B2 ,2 B2: ,4 2[] C2: ,1 21H ,'0' C2 ,'F' C2 ,'A' A2 ,7 A2: ,30H ,0 2[] 1 ,0 ;回车换行 ,2 21H ,0 21H 1 ;两数相加 2 ,4 : ,[] ,[] [] 3 ;显示结果(4 位十六进制数) ,9 21H ,4 ,3 : [] ,4
34、 ,30H ,3 D1 ,7 D1: ,2 21H [] ,0 ,30H ,3 D2 ,7 D2: ,2 21H ,4 ;返回 21H 17. 编写2 位非压缩型 码相乘的程序。 答:转化成加法进行累加运算。 1 09H,09H 2 09H,08H 4 (0) : 2+1 ;计算加法次数 ,10 2 ,0 : ,0 ;通过循环做累加 1 1 ,0 1+1 1
35、 2 ,0 2 3 ,0 3 ,4 ;返回 21H 18. 编写完整的程序求N!,求N 大于6 时的运算结果,并在屏幕上显示结果。 答: N 8 ;求8 的阶乘 : ,0 ;调用过程求N!,,! B2 ;调用过程将结果转换为十进制,然后屏幕显示 ,4 21H ,0 ,1 : ;递归调用N!*(1)! B2 ,10000 ,1000 ,100 ,10
36、 ,1 B2 ,0 ,30H ,2 21H 19. 在附加段有一个数组,首地址为,数组中第一个字节存放了数组的长度。编一个 程序在数组中查找0,找到后把它从数组中删去,后续项向前压缩,其余部分补0。 答: 10, 1,0,2,3,4,0,5,6,7,0 ;10 个数 M 0 , , : , ; 初始化, , , , M ; 关键字M 存入 , , [] ; 数组长度存入 , 0 ;指向数组起始地址 ;清方向标志 L1: ;
37、重复搜索关键字 ; 未找到,转 结束 ; 最后一个数是M,转 ;关键字下一单元地址和循 ;环次数入栈保护 : , [] ; 前移,末尾补0 [1], [1], 0 ; 恢复, ; 由于 已自动加1 L1 : , 4 21H 20. 编程完成将第二个字符串插入到第一个字符串的指定位置上。 答: 1 ' !','$' 100 (0) ;缓冲区 1 ? ;字符串1 的长度 2 ' !','$' 2 ? ;字符串2 的长度 8 ;插入位置 :
38、 1 ;求字符串1 的长度存入1 ,'$' 1,0 D1: D2 1 D1 D2: 2 ;求字符串2 的长度存入2 ,'$' 2,0 D3: D4 2 D3 D4: 1 ;将字符串1 自插入位置开始的字符向后移动, 1 ;空出位置以便插入字符串2 2 1 2 ;将字符串2 插入到字符串1 指定位置 1 2 1 ,9 21H ,4 21H 21. 将学生的班级、姓名、学号、课程名、成绩定义为一个结构,用结构预置语句,产
39、生5 个学生的成绩登记表,编程序将成绩小于60 分的学生姓名、成绩显示出来。 答: ? ;班级 '$' ;姓名 ? ;学号 '' ;课程 ? ;成绩 1 <1,'$',001,'',70> 2 <1,'$',002,'',80> 3 <1,'$',003,'',50> 4 <1,'$',004,'',90> 5 <1,'$',005,'',55> : ,5 ;通过循环结构进行筛选 ,0 : 1[] ;取成绩 ,60 D1 1[] ;小于60 则显示姓名和成绩 ,9
40、21H ,' ' ,2 21H 1[] ;成绩转换为 码显示 ,0 ,10 ,30H ,2 21H ,30H ,2 21H ,0 ,2 21H ,0 21H D1: ,13 ,4 21H 22. 编程序统计学生的数学成绩,分别归类90 分~99 分,80 分~89 分,70 分~79 分,60 分~69 分及60 分以下,并将各段的人数送入内存单元中。 答:设学生人数为字节,成绩为压缩 码,且都是合法的。 ,……. $ 5 (0) ;存放
41、各类成绩统计结果 1 (0) ;存放60 分以下成绩 2 (0) ;存放60 分~69 分成绩 3 (0) ;存放70 分~79 分成绩 4 (0) ;存放80 分~89 分成绩 5 (0) ;存放90 分以上成绩 : : : , ;取学生人数 ,0 ,0 D1: ,[] ,60H 1 ,[] 1[] [] 5 1: ,69H 2 ,[1] 2[] [1] 5 2: ,79H 3 ,[2] 2[] [2] 5
42、3: ,89H 4 ,[3] 3[] [3] 5 4: ,[4] 4[] [4] 5: D1 ,4 21H 23. 编制宏定义,将存储器区中一个用’$’结尾的字符串传送到另一个存储器区中,要求源地 址、目的地址、串结尾符号可变。 答: , , , ; 用于解决宏定义内的标号问题 ; 源串地址, 目的串地址 ; 串结尾符号 , 0 : , [] [], , : 24. 定义宏指令名:它完成比较两个数X 和Y,若X>Y,则执行2*Y 结果送到
43、 ,若X≤Y,则执行2* 结果送到。 答: X, Y, X Y , Y , 1 , X , , X , 1 , Y , 25. 功能调用需要在 寄存器中存放不同的功能码,试将这些功能调用定义成宏指令 ,再定义宏指令,完成显示字符的功能,并展开宏调用 ‘*’。 答: , 21H , 02H 宏调用: ‘*’ 宏展开: , ‘*’ , 02H 21H 26. 编一段程序产生乐曲。 答:演奏儿歌《一闪一闪亮晶晶》 1 1|5 5|6 6|5-|4 4|3 3|2 2|1-
44、 5 5|4 4|3 3|2-|5 5|4 4|3 3|2-| 1 1|5 5|6 6|5-|4 4|3 3|2 2|1- 65535,262,294,330,349,392,440,494 ;各音阶频率,65535 对应0, 523,578,659,698,784,880,988 ;表示不发声 1046,1175,1318,1397,1568,1760,1976 0,8,8,12,12,13,13,12,0, 11,11,10,10,9,9,8,0 ;乐谱各音符频率在 12,12,11,11,10,10,9,0, 12,12,11,11,10,10,9,0
45、 ; 中的相对 8,8,12,12,13,13,12,0, 11,11,10,10,9,9,8,0 ;位置 : ,49 : ,[] ,1 ,[] : ,4 21H ,10110110B 43 ,12H ,34 42 42 ,61H ,03H 61 ,0 : ,1700H : ,61H ,0 61 ,0 1: ,100H 1: 1 1 第五章 1.
46、静态 和动态 有何区别? 答:(1)静态 内存储的信息只要电源存在就能一直保持,而动态 的信息需要定 时刷新才能保持 (2)静态 的集成度比较低,运行速度快,而动态 的集成度高,运行相对较 慢 (3)静态 造价成本高,动态 价格便宜 2. 、、、 在功能上各有何特点? 答: 是只读存储器,根据写入方式的不同可以分为四类:掩膜型、、 和。 掩膜型 中信息是厂家根据用户给定的程序或数据,对芯片图形掩膜进行两次光刻 而写入的,用户对这类芯片无法进行任何修改。 出厂时,里面没有信息,用户采用 一些设备可以将内容写入,一旦写入,就不能再改变了,即只允许编程一次。 可编程固化程序,
47、且在程序固化后可通过紫外光照擦除,以便重新固化新数据。 可编程固化程序,并可利用电压来擦除芯片内容,以重新编程固化新数据。 3. 的和输入的用途是什么? 答:为列地址选通信号,用于指示地址总线上的有效数据为列地址; 行地址选 通信号,用于指示地址总线上的有效数据为列地址。 4. 什么是?作用是什么?它处在微处理机中的什么位置? 答: 也称为高速缓存,是介于主存和 之间的高速小容量存储器。 为了减少 和内存之间的速度差异,提高系统性能,在慢速的 和快速 之间插入一速度较快、容量较小的,起到缓冲作用,使 既可以以较快速度存取 中的数据,又不使系统成本上升过高,这就是 的作用。
48、 在微处理机中的位置如下图: 5. 直接映像 和成组相联 的组成结构有什么不同? 答:直接映象 是将主存储器中每一页大小分成和 存储器大小一致, 中 每一块分配一个索引字段以确定字段,这样可以通过一次地址比较即可确定是否命中,但如 果频繁访问不同页号主存储器时需要做频繁的转换,降低系统性能; 成组相联 内部有多组直接映象的 ,组间采用全关联结构,并行地起着高 速缓存的作用。访问时需要进行两次比较才能确定是否命中。 6. 为什么要保持 内容和主存储器内容的一致性?为了保持 和主存储器内容的 一致性应采取什么方法? 答:由于 的内容只是主存部分内容的拷贝,故应当和主存内容
49、保持一致。数据不一致 问题通常是由于更新了 的数据而没有更新和其关联的存储器的数据,或更新了存储器 数据却没有更新 的内容所引起的。 为了保持 和主存储器内容的一致性,有两种写入策略: (1)通写法 在此方法中,当 写入数据到 中后, 就立即将其写入主存中,使主存 始终保持 中的最新内容。此方法简单,更新内容不会丢失,但每次对 的修改同 时要写入主存储器,总线操作频繁,影响系统性能。 (2)回写法 此方法中, 的作用好像缓冲区一样,当 写入数据到 中后, 并不 立即将其回写到主存中,而是等到系统总线空闲时,才将 中的内容回写到主存中,此 方法使得 可以持续运行而不必等待主
50、存的更新,性能比通写法要提高很多,但其 控制器复杂,价格高。 7. 用1024×1 位的 芯片组成16K×8 位的存储器,需要多少芯片?在地址线中有多少 位参和片内寻址?多少位组合成片选择信号?(设地址总线为16 位) 答:由于所用的芯片为1024×1 位,构成1024×8 位(即1K×8 位)的存储器需要8 片, 因此组成16K×8 位的存储器需要16×8=128 片。 片内有1024 个单元,需要10 根地址线。 16 组(每组8 片)存储器需要16 根片选信号,至少需要4 根地址线经译码器输出。 8. 现有一存储体芯片容量为512×4 位,若要用它组成4 的存储器,需要多少这样的芯 片?每块芯片需要多






