版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海市教育委员会高等学校“十五”重点规划教材现代微型计算机与接口教程(习题解答)主 编:杨文显副主编:寿庆余编 著:杨晶鑫 黄春华 胡建人清 华 大 学 出 版 社习 题 解 答清 华 大 学 出 版 社1说 明2习 题 一3习 题 二7习 题 三13习 题 四20习 题 五26习 题 六37习 题 七40习 题 八44习 题 九49习 题 十54习 题 十 一59说 明为了方便购买本书的读者和使用本教材进行教学的教师使用本书,我们制作了本书的习题参考答案。为了维持正常的教学秩序,我们不向使用本教材的学生提供本习题答案。鉴于它的用途,若干答案的内容并未局限于对题目的解答,而是阐述了与该习题有关
2、的知识。因此,许多习题的答案可以看作是本书内容的延续。换个角度来说,它不是可供学生参考的“标准答案”。本书在2003年9月出版后,很快就收到了不少读者的来信,索要本书的习题答案,这使得原本想“松口气”的我们猝不及防,不得不在完成大量教学、科研的同时编写这本“习题答案”。在各位编者完成之后,主编对全文进行了整理。虽然我们尽了自己的努力,但是,错误和不足恐难避免。欢迎各位同行和读者来信指正和交流。编者 2003-12-03 E_Mail: 习 题 一1. 8086CPU由哪几个部件构成?它们的主要功能各是什么?8086 CPU由指令执行部件EU和总线接口部件BIU两个部份组成。指令执行部件主要功能
3、是执行指令。总线接口部件的主要功能是完成访问存储器或I/O端口的操作: 形成访问存储器的物理地址; 访问存储器取得指令并暂存到指令队列中等待执行; 访问存储器或I/O端口以读取操作数参与EU运算,或存放运算结果。2. 什么是逻辑地址?什么是物理地址?它们各自如何表示?如何转换?程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。段基址表示一个段的起始地址的高16位。偏移地址表示段内的一个单元距离段开始位置的距离。访问存储器的实际地址称为物理地址,用20位二进制表示。将两个16位二进制表示的逻辑地址错位相加,可以得到20位的物理地址:物理地址段基址
4、5;16 + 偏移地址在32位CPU的保护模式下,“逻辑地址”的表示产生了一些变化,请参考第8章的相关内容。3. 什么是“堆栈”?它有什么用处?在使用上有什么特点?堆栈是内存中的一块存储区,用来存放专用数据。例如,调用子程序时的入口参数、返回地址等,这些数据都按照“先进后出”的规则进行存取。SS存放堆栈段的段基址,SP存放当前堆栈栈顶的偏移地址。数据进出堆栈要使用专门的堆栈操作指令,SP的值在执行堆栈操作指令时根据规则自动地进行修改。X=36H=00110110BY=78H=01111000B (= 10111110BCF=1, SF=1, OF=0, PF=1, ZF=0, AF=14. 设
5、X=36H,Y=78H,进行X+Y和XY运算后FLAGS寄存器各状态标志位各是什么?X=36H=00110110BY=78H=01111000B (+= 10101110BCF=0, SF=1, OF=1, PF=0, ZF=0, AF=05. 按照传输方向和电气特性划分,CPU引脚信号有几种类型?各适用于什么场合?CPU引脚传输的信号按照传输方向划分,有以下几种类型:输出:信号从CPU向外部传送;输入:信号从外部送入CPU;双向:信号有时从外部送入CPU,有时从CPU向外部传送。双向信号主要用于数据信号的传输;输出信号用于传输地址信号和一些控制信号;输入信号主要用于传输外部的状态信号(例如R
6、EADY)和请求(中断、DMA)信号。按照信号的电器特性划分,有以下几种类型:一般信号:用来传输数据/地址信号时,高电平表示“1”,低电平表示“0”;用来表示正逻辑的控制/状态信号时,“1”表示有效,“0”表示信号无效;用来表示负逻辑的控制/状态信号时,“0”表示有效,“1”表示信号无效。三态信号:除了高电平、低电平两种状态之外,CPU内部还可以通过一个大的电阻阻断内外信号的传送,CPU内部的状态与外部相互隔离,也称为“悬浮态”。CPU放弃总线控制权,允许其他设备使用总线时,将相关信号置为“悬浮态”。6. 8086CPU以最小模式工作,现需要读取内存中首地址为20031H的一个字,如何执行总线
7、读周期?请具体分析。为了读取内存中首地址为20031H的一个字,需要执行二个总线读周期。第一个总线周期读取20031H字节内容,进行的操作如下。T1状态: = 1,指出CPU是从内存读取数据。随后CPU从地址/状态复用线(A19/S6A16/S3)和地址/数据复用线(AD15AD0)上发出读取存储器的20位地址20031H。为了锁存地址,CPU在T1状态从ALE引脚输出一个正脉冲作为地址锁存信号。由于需要读取高8位数据线上的数据(奇地址),= 0。为了控制总线收发器8286接受数据, = 0。T2状态: 地址信息撤消,地址/数据线AD15AD0进入高阻态,读信号开始变为低电平(有效),=0,用
8、来开放总线收发器8286。T3状态: CPU检测READY引脚信号。若READY为高电平(有效)时,表示存储器或I/O端口已经准备好数据,CPU在T3状态结束时读取该数据。若READY为低电平,则表示系统中挂接的存储器或外设不能如期送出数据,要求CPU在T3和T4状态之间插入1个或几个等待状态Tw。TW状态:进入TW状态后,CPU在每个TW状态的前沿(下降沿)采样READY信号,若为低电平,则继续插入等待状态TW 。若READY信号变为高电平,表示数据已出现在数据总线上,CPU从AD15AD0读取数据。T4状态:在T3(TW)和T4状态交界的下降沿处,CPU对数据总线上的数据进行采样,完成读取
9、数据的操作。第二个总线周期读取地址为20032H字节的内容。CPU发出的信号与第一个周期类似,区别在于T1状态CPU发出存储器地址为20032H,由于只需要读取低8位数据线上的数据(偶地址),=1。在CPU内部,从20031H读入的低位字节和从20032H读入的高位字节被拼装成一个字。7. 8086CPU有几种工作方式?各有什么特点?8086/8088 CPU有两种工作模式:最大工作模式和最小工作模式。所谓最小工作模式,是指系统中只有一个8086/8088处理器,所有的总线控制信号都由8086/8088 CPU直接产生,构成系统所需的总线控制逻辑部件最少,最小工作模式因此得名。最小模式也称单处
10、理器模式。最大模式下,系统内可以有一个以上的处理器,除了8086/8088作为“中央处理器”之外,还可以配置用于数值计算的8087“数值协处理器”、用于I/O管理的“I/O协处理器”8089。各个处理器发往总线的命令统一送往“总线控制器”,由它“仲裁”后发出。CPU两种工作模式由引脚决定,接高电平,CPU工作在最小模式;将接地,CPU工作在最大模式。8. 分析8086CPU两个中断输入引脚的区别,以及各自的使用场合。INTR用于输入可屏蔽中断请求信号,电平触发,高电平有效。中断允许标志IF= 1时才能响应INTR上的中断请求。NMI用于输入不可屏蔽中断请求信号,上升沿触发,不受中断允许标志的限
11、制。CPU一旦测试到NMI请求有效,当前指令执行完后自动转去执行类型2的中断服务程序。NMI引脚用于连接CPU外部的紧急中断请求,例如内存校验错,电源掉电报警等。INTR引脚用于连接一般外部设备的中断请求。9. 什么是时钟周期、总线周期、指令周期?它们的时间长短取决于哪些因素?时钟周期:CPU连接的系统主时钟CLK一个周期的时间。CLK信号频率越高,时钟周期越短。总线周期:CPU通过外部总线对存储器或I/O端口进行一次读/写操作的过程称为总线周期。8086CPU总线周期一般由四个时钟周期组成,存储器/IO设备(接口)速度不能满足CPU要求时,可以增加一个或多个时钟周期。指令周期: CPU执行一
12、条指令的时间(包括取指令和执行该指令所需的全部时间)称为指令周期。指令周期的时间主要取决于主时钟的频率和指令的复杂程度,它也受到存储器或IO设备接口工作速度的影响。10. 在一次最小模式总线读周期中,8086CPU先后发出了哪些信号?各有什么用处?T1状态: 指出CPU是从内存(1)还是从IO端口(0)读取数据。随后CPU从地址/状态复用线(A19/S6A16/S3)和地址/数据复用线(AD15AD0)上发出读取存储器的20位地址,对IO端口访问时从AD15AD0上发出16位地址。为了锁存地址,CPU在T1状态从ALE引脚输出一个正脉冲作为地址锁存信号。如果需要读取高8位数据线上的数据(奇地址
13、/读取一个字),= 0。为了控制总线收发器8286数据传输方向, = 0。T2状态: 读信号开始变为低电平(有效),=0,用来开放总线收发器8286。T3状态: CPU检测READY引脚信号。若READY为高电平(有效),表示存储器或I/O端口已经准备好数据,进入T4状态;若READY为低电平(无效),表示存储器或I/O端口尚未准备好数据,插入一个或多个TW状态,直到READY变为高电平。T4状态:在T3(TW)和T4状态交界的下降沿处,CPU对数据总线上的数据进行采样,完成读取数据的操作。11. 结合指令“OUT 21H, AL”,具体叙述最大模式“总线写周期”总线上的相关信号。T1状态:地
14、址/数据复用线(AD15AD0)上出现访问IO端口的16位地址21H。由于地址为奇数,需要通过高8位数据线访问端口,= 0。T2状态: = 0,表示本周期对IO端口进行写操作。地址/数据复用线(AD15AD0)上出现来自AL的8位数据。T3状态:若READY为高电平(有效),表示I/O端口已经准备好接收数据。反之,表示I/O端口尚未准备好接收数据,需要CPU插入TW 周期进行等待,直到READY出现高电平(有效)。T4状态:CPU结束本周期。习 题 二1. 内存储器主要分为哪两类? 它们的主要区别是什么?内存储器分为随机存取存储器RAM(Radom Access Memory)和只读存储器RO
15、M(Read Only Memory)两类。RAM中信息可以按地址读出,也可以按地址写入。RAM具有易失性,掉电后原来存储的信息全部丢失,不能恢复。ROM 中的信息可以按地址读出,但是在普通状态下不能写入,它的内容一般不能被改变。ROM具有“非易失性”,电源关闭后,其中的信息仍然保持。2. 说明SRAM、DRAM、MROM、PROM和EPROM的特点和用途。SRAM:静态RAM,读写速度快,但是集成度低,容量小,主要用作Cache或小系统的内存储器。DRAM:动态RAM,读写速度慢于静态RAM,但是它的集成度高,单片容量大,现代微型计算机的“主存”均由DRAM构成。MROM:掩膜ROM,由芯片
16、制作商在生产、制作时写入其中数据,成本低,适合于批量较大、程序和数据已经成熟、不需要修改的场合。PROM:可编程ROM,允许用户自行写入芯片内容。芯片出厂时,所有位均处于全“0”或全“1”状态,数据写入后不能恢复。因此,PROM只能写入一次。EPROM:可擦除可编程只读存储器,可根据用户的需求,多次写入和擦除,重复使用。用于系统开发,需要反复修改的场合。3. 已知一个SRAM芯片的容量为8K×8,该芯片有一个片选信号引脚和一个读/写控制引脚,问该芯片至少有多少个引脚?地址线多少条?数据线多少条?还有什么信号线?根据存储芯片地址线数量计算公式,klog2(1024*8)= log2(2
17、13)=13,即总计有13根地址线。另有8根数据线、2根电源线。所以该芯片至少有25(=13+8+1+1+2)根引脚。4. 巳知一个DRAM芯片外部引脚信号中有4根数据线,7根地址线,计算它的容量。根据存储容量计算公式S2k×I,可得该芯片的存储容量为:214*4=16K×4bit(位),也可表示为64Kb=8KB(字节)。5. 32M×8的DRAM芯片,其外部数据线和地址线为多少条?根据存储芯片地址线数量计算公式,klog2(1024*1024*32)= log2(225)=25,即需要25根地址线。但是,由于DRAM芯片的地址采用分时输入的方法,所以实际需要的
18、地址线只有理论值的一半,此处为13根。数据线8根是内部的还是外部的?6. DRAM为什么需要定时刷新?DRAM靠MOS管极间电容存储电荷的有无决定所存信息是0还是1,由于漏电流的存在,它存储的信息不能长时间保存,需要定时重新写入,称为“刷新”。7. 74LS138译码器的接线如图2.28所示,写出、所决定的内存地址范围。图2.28 译码电路电路从图看出,该存储系统的片内地址线有13根(A12-A0),是一个由8KB存储芯片组成的存储系统,A17地址线不确定。它的地址分布为:00?0, CBA?, ?, ?, ?其中,CBA作为译码输入,与输出选择有关;“?”表示可以为“0”,也可以为“1”。于
19、是:对应的内存地址范围是:00000H01FFFH;或20000H21FFFH。对应的内存地址范围是:04000H05FFFH;或24000H25FFFH。对应的内存地址范围是:08000H09FFFH;或28000H29FFFH。对应的内存地址范围是:0C000H0DFFFH;或2C000H2DFFFH。8. 叙述EPROM的编程过程,并说明EPROM和EEPROM的不同点。EPROM的编程过程标准编程方式:Vpp上加编程电压,地址线、数据线上给出要编程单元的地址及其数据,并使0、1。上述信号稳定后,在端加上宽度为50±5ms的负脉冲,就可将一个字节的数据写入相应的地址单元中。不断
20、重复这个过程,将数据逐一写入。快速编程方式:使用100µs的编程脉冲依次写完所有要编程的单元,然后从头开始校验每个写入的字节。若写得不正确,则重写这个单元。写完后再校验,不正确还可再写,直到全部正确。EPROM和EEPROM的不同点:EPROM芯片用紫外线光照射擦除芯片的内容,擦除时需要把芯片从电路板上拔下,擦除操作对整个芯片进行。EPROM芯片编程需要外加“高电压”,所以需要专用的“编程器”才能实现。EPROM的编程一般情况下对整个芯片进行。EEPROM芯片的擦除用电信号实现,无需把芯片从电路板上拔下,可以进行“在系统编程”。EEPROM以字节为单位重写,EEPROM没有单独的擦除
21、操作,写入就意味着擦除了原来的内容,所以使用比EPROM快速方便。相比较而言,EEPROM芯片的编程比较接近RAM的写入,它们之间的区别主要体现在速度上:RAM写入与读出的速度相近,不需要其他的联络信号;EEPROM的写入比起读出明显要慢,为了掌握写入时间,EEPROM通常设置了一根“状态”引脚,供联络使用。9. 下列容量的ROM芯片除电源和地线,还有多少个输入引脚和输出引脚?写出信号名称。(1)64×4 (2)512×8 (3)128K×8 (4)16K×8 (5)1M×16根据存储容量计算公式可得以上各芯片的地址、数据引脚分别为:64
22、15;4: 地址线k= log2(64)= log2(26)= 6根,数据线=4根;512×8: 地址线k= log2(512)= log2(29)= 9根,数据线=8根;128k×8:地址线k= log2(128*1024)= log2(217)= 17根,数据线=8根;16k×8: 地址线k= log2(16*1024)= log2(214)= 14根,数据线=8根;1M×16: 地址线k= log2(1024*1024)= log2(220)= 20根,数据线=16根。此外,所有ROM芯片都需要一根片选信号引脚;对于PROM,EPROM通常还需要“
23、输出允许”和“编程脉冲”输入引脚。EEPROM芯片除了有“片选”、“输出允许”和“写允许”外,通常还有表示“写入完成”的状态信号引脚。10. 已知RAM芯片的容量为(1)16K×8 (2)32K×8 (3)64K×8 (4)2K×8 如果RAM的起始地址为3400H、则各RAM对应的末地址为多少?存储器的末地址=首地址+芯片内字节数(容量)1上述各芯片对应RAM的末地址为:16K×8:末地址是3400H+4000H1= 73FFH32K×8:末地址是3400H+8000H1= B3FFH64K×8:末地址是3400H+100
24、00H1= 133FFH2K×8: 末地址是3400H+800H1= 3BFFH11. 如果存储器起始地址为1800H,末地址为1FFFH,求该存储器的容量。该存储器的容量为:(1FFFH1800H+1)×8 = 800H×8,该存储器有2048×8个位,也可以写作2KB。12. 有一个存储体,其地址线15条,数据线8条,则1)该存储体能够存储多少个汉字?2)如果该存储体由2K×4位的芯片组成,需要多少片?3)采用什么方法扩展?分析各位地址线的使用。该存储体容量为215×8=32KB,存储一个汉字需要二个字节,因此,它能够存储1638
25、4(16K)个汉字。需要2K×4位的芯片32片,(32K×8)/(2K×4)=32 。可采用字位全扩展方法,由2片4位的芯片组成1组8位的存储单元,16组扩展成32K的8位存储体。芯片直接使用的地址线(片内地址)11根(A0-A10),另外需要4根高位地址,连接到4-16译码器输入端,产生16个译码信号用作16个芯片组的片选信号。剩余的地址线用来确定该存储体的首地址。13. 试说明Flash Memory芯片的特点及28F040的编程过程。Flash Memory也称为“闪速存储器”,有时直接称之为“Flash”。Flash既有ROM非易失性的特点,又能够在线擦除
26、和重写,既可读又可写,同时有很高的存取速度,具有集成度高,价格低,耗电少等优点。目前存取速度已突破了30ns,掉电后信息可以保持10年。Flash的编程方法与E2PROM相同,28F040的编程写入过程采用字节编程方式。首先,向28F040状态寄存器写入命令10H,再在指定的地址单元写入相应数据。接着查询状态,判断这个字节是否写好,若写好则重复上面过程写入下一个字节,直到全部字节写入。28F040的编程速度很快,一个字节的写入时间仅为8.6µs。14. 利用全地址译码将6264芯片接到8088系统总线上,地址范围为30000H31FFFH,画出逻辑图。全地址译码连接图全地址译码可以保
27、证存储器芯片上的每一个单元在整个内存空间中具有唯一的、独占的一个地址。参考教材相关内容,6264芯片有13根地址线,剩余的高位7根地址线通过译码组合确定该芯片的起始地址(30000H)。由30000H地址得出对应的地址线状态为:0011 000 0 0000 0000 0000 可以看出A13A19地址线为0011 000,所以译码组合应逻辑为:= ···A16·A17·· =(····)·(A16·A17)= A13+A14+A15+A18+A19+ A16·A1
28、7具体逻辑如右图所示。15. 若用2164芯片构成容量为128KB的存储器,需多少片2164? 至少需多少根地址线?其中多少根用于片内寻址?多少根用于片选译码? 2164A是容量为64K×1位的动态随机存储器芯片,构成128KB的存储器需要2164A芯片16片 128K×8/(64K×1)=16 。由于地址空间为128K,需要的地址线总数为17根(217=128K)。其中,片内地址线16根(216 =64K),片选地址线1根(1716=1,)。每8个2164芯片构成一组,进行位扩展,得到64KB存储器。两个这样的“组”进行地址扩展,构成128KB的存储器。16.
29、某8088系统用2764 ROM芯片和6264 SRAM芯片构成16KB的内存。其中,RAM的地址范围为FC000H-FDFFFH,ROM的地址范围为FE000H-FFFFFH。试利用74LS138译码,画出存储器与CPU的连接图,并标出总线信号名称。2764和6264均为8KB的存储芯片,需要13根地址线(A0A12)用于片内寻址。8088系统的其他地址线(A13A19)用于产生片选信号。FC000H的地址线状态为:1111 110 0 0000 0000 0000 FE000H的地址线状态为:1111 111 0 0000 0000 0000将A13A15用作译码输入,其他地址(A16A1
30、9=1111)用作译码控制,可以得到如下译码控制电路,连接如下图所示。17. 存储周期指的是( A )。A存储器进行连续读或写操作所允许的最短时间间隔 B存储器的读出周期C存储器进行连续写操作所允许的最短时间间隔 D存储器的写入周期存储周期是指连续两次访问存储器之间所需的最小时间。存取时间是CPU访问一次存储器(写入和读出)所需的时间。存储周期等于存取时间加上存储器的恢复时间。所以应选择A。18. 某一EPROM芯片,其容量为32K×8,除电源和地线外,最小的输入引脚和输出引脚分别为( C )。A. 15和8; B32和8; C17和8; D18和10;容量为32K×8的E
31、PROM芯片,其数据线为8根,地址线为15根,片选线1根,读写控制线1根。其中地址线、片选线、读写控制线均为EPROM的输入信号,共17根。数据线在正常工作状态下用于EPROM输出,计8根。所以应选择C。19. 掩膜ROM在制造时通过光刻是否连接MOS管来确定0和1,如果对应的某存储单元位没有连接MOS管,则该位信息为( C )。A不确定; B. 0; C1; D可能为0,也可能为1;掩膜ROM芯片内每一个二进制位对应于一个MOS管,该位上存储的信息取决于这个MOS管的栅极是否被连接到字线上。栅极被连接,该单元被选中时,漏极与“地”相通,输出低电平,该位存储的信息就是0。栅极未连接时,尽管字线
32、被选中,输出端与“地”仍然不能导通,输出高电平,对应的信息为1。所以应选择C。20. SRAM和DRAM存储原理不同,它们分别靠( A )来存储0和1的。A双稳态触发器的两个稳态和极间是否有足够的电荷B内部熔丝是否断开和双稳态触发器C极间电荷和浮置栅是否积累足够的电荷D极间是否有足够的电荷和双稳态触发器的两个稳态静态随机存储器(SRAM)的每一个位存储单元有一个双稳态触发器,由4个晶体管组成,它们的状态确定了该存储单元存储的1位二进制信息。而动态随机存储器(DRAM)一般采用单管电路组成,它由一个MOS管T1和一个电容C构成。写入时其信息通过位线(数据线)存人电容C中(写入“1”对电容充电,写
33、入“0”则对电容放电);读出时存储在电容C上的电荷通过T1输出到位线上。所以应选择A。习 题 三1 接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?数据信号:对于输入设备,数据信号从外设通过接口送往总线,对于输出设备,数据信号从总线通过接口发往外部设备。状态信号:状态信号表明外部设备当前的工作状态,用来协调CPU与外部设备之间的操作。状态信号总是从外部设备通过接口发往总线。控制信号 :控制信号是CPU向外设发出的命令,它指定设备的工作方式,启动或停止设备。控制信号从CPU通过接口发往外部设备。2 接口电路有哪些功能?哪些功能是必需的?接口电路可以具备:设备选择功能、信息传输功能、数据格
34、式转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测等功能。其中设备选择功能和信息传输功能是每一个接口电路所必备的。其他的功能是否需要则由设备的特点和工作方式决定。3 I/O端口的编址有哪几种方法?各有什么利弊?80X86系列CPU采用哪种方法?I/O端口的编址有两种不同的方式。I/O端口与内存统一编址:把内存的一部分地址分配给I/O端口,一个8位端口占用一个内存单元地址。已经用于I/O端口的地址,存储器不能再使用。I/O端口与内存统一编址后,访问内存储器单元和I/O端口使用相同的指令,这有助于降低CPU电路的复杂性,并给使用者提供方便。但是,I/O端口占用内存地址,相对减少了内
35、存可用范围。而且,由于难以区分访问内存和I/O的指令,降低了程序的可读性和可维护性。I/O端口与内存独立编址:这种编址方法中,内存储器和I/O端口各自有自己独立的地址空间。访问I/O端口需要专门的I/O指令。80x86 CPU采用I/O端口独立编址方式。4 按照传输信号的种类,I/O端口有几种?它们信号的传输方向怎样?按照传输信号的种类,I/O端口有三种:数据端口:数据信息从端口输入CPU(输入设备接口),或者从CPU写入端口(输出设备接口);状态端口:外设状态信息从端口输入CPU;控制端口:命令信息从CPU写入端口。5 I/O端口译码电路的作用是什么?在最小模式和最大模式下分别有哪些输入信号
36、?I/O端口译码电路用于产生端口的读写选择信号。在最小模式下,译码电路接受来自总线的地址信号(16位),(= 0),或者信号。最大模式下,译码电路接受地址信号(16位),或者信号。6 外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。外部设备数据传送有以下四种控制方式。直接传送方式(也称为无条件传送方式、同步传送方式):这种情况下,外部端口完全被动地等待CPU的访问,没有确定的响应速度,响应时间取决于CPU忙碌的程度以及程序对外部设备控制采取的策略。查询方式:如果CPU在某一时刻只对一个外设采用查询方式进行数据传输,CPU的响应延迟约为310个指令周期。响应
37、速度快于中断方式,慢于DMA方式。中断方式:CPU的响应延迟平均为几十个指令周期,慢于查询方式,但是这种方式可以同时管理多个外部设备。DMA方式:外部端口的传输请求由DMA控制器响应,由于DMAC是一个专用于传输控制的电路,任务单一,不发生DMA传输竞争时,响应延迟仅为12个DMAC使用的时钟周期,远快于中断方式和查询方式。7 叙述一次查询式输出过程中,接口内各电路、信号的状态变化过程。一个数据的查询式输出过程由二个阶段组成:CPU从接口反复读取状态字:由地址译码电路产生状态端口选择信号,该信号不影响接口内部的状态。外部设备输出完成后,返回“确认”信号,该信号将状态寄存器相关位(READY)置
38、位。如状态字表明外设已处于“就绪”状态,则向数据端口传送数据。由地址译码电路产生的数据端口选通信号一方面将数据总线上的数据写入数据寄存器,同时清除状态寄存器中的相关位(READY),向输出设备发出输出启动信号。有的输出接口设有控制端口,输出启动信号通过写控制端口产生。8 比较程序中断方式和查询方式的区别,根据比较,指出中断工作方式的优缺点。中断方式:外部设备工作完成后,通过“中断请求”信号“主动”向CPU“报告”。查询方式:外部设备工作完成后,状态信号储存在接口电路内,被动地等待CPU来读取。根据上述比较,可以得到中断工作方式的如下特点:优点:1) CPU能够及时了解外部设备的状态,从而对外部
39、设备IO请求进行及时处理。2) 由于CPU“被动”地等待外部设备的“中断请求”,外部设备进行输入/输出操作时,CPU可以同时执行其他的程序,CPU和外部设备“并行”工作。3) 由于同样的原因,在中断方式下,CPU可以同时管理多台外部设备,CPU的效率得到提高。缺点:1) 用中断方式需要CPU增加相应的管理逻辑,增加了CPU电路的复杂性。2) 由于CPU“被动”地接收“中断请求”信号,CPU必须通过与外部的一个联络过程才能知道是那一个设备在申请中断,这增加了响应时间。为了从当前任务转移到中断服务,CPU必须保护原有的运行环境,进行“任务”的“切换”,这也会增加响应时间。3) 有较多的设备使用中断
40、方式时,会产生“中断申请”的“竞争”。这一方面降低了响应速度,另一方面增加了管理的复杂性。 9 比较DMA方式和程序中断方式的区别,根据比较,指出DMA工作方式的优缺点。中断方式:外部设备每进行一个数据的输入/输出,都要通过“中断申请”要求CPU进行处理。CPU通过执行一段“中断服务程序”完成数据的传输。DMA方式:CPU通过对DMAC的初始化,启动一个数据块的传输操作。之后的数据传输通过信号的联络,在外设接口和存储器之间进行,CPU只需简单地让出总线,而无需其他操作。根据上述比较,可以得到DMA工作方式的如下特点:优点:1) 对于CPU而言,它的任务仅仅是在一个数据块传输之前对DMAC进行初
41、始化,CPU用于传输控制的操作达到最小(不考虑与通道/IO处理器方式的比较),CPU的效率最高。CPU与外设“并行”工作。2) 外部设备一个数据输入/输出完成后,向DMAC申请进行数据传输,响应时间仅为DMAC的13个时钟周期。响应速度达到最快,可以满足高速传输的需要。缺点:1) 实现DMA控制需要增加DMA控制器和总线控制逻辑,增加了系统的复杂性。2) DMA传输需要占用总线,并且具有较高的“优先级”。这使得系统对其他设备的响应速度不能得到明确的保证。10 某输入设备接口数据端口、状态端口、控制端口地址分别为70H, 71H, 72H。状态端口D5=1表示输入完成,控制端口D7=1表示启动设
42、备输入(输入完成后由设备清除该位)。从该设备输入100个字节数据,存入以BUFFER为首地址的缓冲区。如果启动该设备1秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。分别用8086汇编语言和C语言编写完成上述功能的I/O程序。汇编语言程序:DATASEGMENTBUFFERDB100 DUP(?)ERRORDB13, 10, “OVER TIME !”, 13, 10, “$”DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART: MOVAX, DATAMOVDS, AXMOVCX, 100LEABX, BUFFERONE:XORDX, DX
43、;DX用作响应计时器,每输入一个数据之前,其初值都应为0MOVAL, 80HOUT72H, AL;启动输入W:INAL, 71H;从 71H 端口读入状态字INCDX;记录延迟时间TESTAL, 00100000B;0010 0000B,测试完成位JNZREAD;输入完成,转READ读取数据CMPDX, 50000;假设循环50000次时间为1秒JBW;未超时,继续测试JMPOVERTIME;超过1秒,报告出错READ:INAL, 70H;从 70H 端口读入数据MOVBX, AL;数据存入缓冲区INCBX;修改指针LOOPONE;100个数据尚未输入完成,转ONE继续JMPDONE;100个
44、数据输入完成,转DONE结束程序OVERTIME:LEADX, ERRORMOVAH, 9INT21H;响应超时,显示出错信息DONE:MOVAX, 4C00HINT21H;返回OSCODEENDSENDSTARTC语言程序:main( ) int i, status, time, buffer100 ; for( i=0; i<100; i+ )outportb( 0x72, 0x80 );/* 启动输入 */ for( time = 0; time < 20000; time+ ) status = inportb( 0x71 );/* 读状态 */ if ( status &
45、amp; 0x20) buffer i = inportb ( 0x70 ); exit; /* 读数据,保存 */ if ( time >= 20000 ) printf( “n Over Time ! n”); exit ; /* 超时报错 */ 11 某输出设备数据端口、状态端口地址分别为220H, 221H。状态端口D0=1表示输出完成。将数据段中以STRING为首地址的20个字符(用七位ASCII代码存储)添加水平和垂直校验发送到该外部设备。用8086汇编语言编写完成上述功能的I/O程序。汇编语言程序:DATASEGMENTSTRINGDB20 DUP ( ? )SUMDB0D
46、ATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART: MOVAX, DATAMOVDS, AXMOVCX, 20LEABX, STRINGMOVSUM, 0; 垂直校验码初值为0ONE:MOVDX, 221H; DX置为状态端口地址INAL, DXTESTAL, 00000001B;0000 0001B测试输出完成位JZONE;未完成,转ONE继续读取状态MOVAL, BX;从字符串取出一个字符的ASCII代码ANDAL, 07FH;清除最高位,准备置入校验位JPEOUTPUT;判代码奇偶属性,ORAL, 80H;奇数个“1”,最高位置1(偶校验)O
47、UTPUT:MOVDX, 220HOUTDX, AL;输出添加了校验位的代码XORSUM, AL;生成垂直校验位INCBX;修改指针LOOPONE;20个数据尚未输出完成,转ONE继续MOVDX, 221H;输出垂直校验代码LAST:INAL, DXTESTAL, 00000001B;0000 0001BJZLASTMOVAL, SUMMOVDX, 220HOUTDX, ALDONE:MOVAX, 4C00HINT21H;返回OSCODEENDSENDSTART12 试画出矩阵式键盘查询的程序流程图。上述流程中假设键盘为8×8结构,如果有键按下,返回它的8位扫描码。其中:最低3位为该
48、键所在列,次低3位为该键所在行,最高2位为0。如果没有键按下,返回8位“1”。13 试画出公用端口多位LED输出的程序流程图。习 题 四1 什么叫中断?有哪几种不同类型的中断?由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程称为中断。根据中断源的位置,有两种类型的中断。有的中断源在CPU的内部,称为内部中断。大多数的中断源在CPU的外部,称为外部中断。根据中断引脚的不同,或者CPU响应中断的不同条件,也可以把中断划分为可屏蔽中断和不可屏蔽中断两种。 2 什么是中断类型?它有什么用处?用若干位二进制表示的中断源
49、的编号,称为中断类型。中断类型用来区分不同的中断,使CPU能够在中断响应时调出对应的中断服务程序进行中断处理。3 有哪几种确定中断优先级的方法?说明每一种方法各自的优劣之处。确定中断优先权有四种可选的方法。(1) 软件查询法:采用程序查询的方法确定中断服务的顺序。这种方法中断逻辑最简单(基本上不需要外部中断逻辑),优先级可以灵活设置,但中断响应所需时间最长。(2) 分类申请法:CPU分设二个中断申请信号的输入引脚。这种方法需要CPU提供条件。(3) 链式优先权排队:菊花链法。这种方法需要的外部中断逻辑比较简单,容易实现,但是设备较多时信号延迟大,对设备故障敏感。(4) 可编程中断控制器: “向
50、量”优先权排队专用电路。这种方法功能最全面,控制灵活,可以通过程序设定中断优先权为固定的或循环的,但需要增加专用的中断控制器。4 什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?CPU在处理级别较低的中断过程中,出现了级别较高的中断请求。CPU停止执行低级别中断的处理程序而去优先处理高级别中断,等高级别中断处理完毕后,再接着执行低级别的未处理完的中断处理程序,这种中断处理方式称为多重(级)中断或中断嵌套。使用中断嵌套可以使高优先级别的中断得到及时的响应和处理。对于可屏蔽中断,由于CPU在响应中断时已将IF清零,所以一定要在中断处理程序中加入开中断指令,才有可能
51、进行中断嵌套。5 什么叫中断屏蔽?如何设置I/O接口的中断屏蔽?用程序的方法使某些中断源的中断请求不能够发送到CPU,或者虽然能够发送但是不能得到响应,这种方法称为中断屏蔽。在外设的接口内增设一个中断屏蔽触发器(可以用D触发器实现),该触发器的端与中断请求信号相“与”后连接到INTR。当 = 0时,中断请求不能发往INTR。通过设定中断屏蔽触发器的状态,可以控制中断请求信号是否能够送到INTR端。置IF= 0, 可以使80x86CPU不响应来自INTR的可屏蔽中断请求。6 什么是中断向量?中断类型为1FH的中断向量为2345H:1234H,画图说明它在中断向量表中的安置位置。中断服务程序的入口
52、地址称为中断向量。中断类型为1FH,它的中断向量放置在1FH×4=0000: 7CH开始的位置上。如右图。7 叙述一次可屏蔽中断的全过程。(1) 中断源请求中断外部中断源通过INTR引脚向CPU请求中断。(2) 中断响应 中断源提出中断请求后,如果CPU处于允许中断状态(IF=1); 没有不可屏蔽中断请求和总线请求; 当前指令执行结束。则转入中断响应周期。在中断响应周期: CPU取得中断源的中断类型; 将标志寄存器FLAGS和CS、IP(断点)先后压入堆栈保存; 清除自陷标志位TF和中断允许标志位IF; 读中断向量表,获得相应的中断服务程序入口地址,转入中断服务程序。(3)中断服务
53、中断服务程序的主要内容包括: 保护现场 开中断 中断处理 关中断 恢复现场 (4)中断返回 8 简要叙述8259A内部IRR, IMR, ISR三个寄存器各自的作用。三个寄存器长度均为8位。IRR用来记录引脚IR7IR0上由外部设备送来的中断请求信号。当外部中断请求线IRi变为有效时,IRR中与之对应的第i位被置1。IMR用于设置对中断请求的屏蔽信号。此寄存器的第i位被置1时,与之对应的外部中断请求线IRi被屏蔽,不能向CPU发出INT信号。可通过软件设置IMR内容,确定每一个中断请求的屏蔽状态。ISR用于记录当前正在被服务的所有中断级,包括尚未服务完而中途被更高优先级打断的中断级。若CPU响
54、应了IRi中断请求,则ISR中与之对应的第i位置1。ISR用于中断优先级管理。9 8259A是怎样进行中断优先权管理的?8259A通过以下两种途径实现对中断优先权的管理:(1) 通过设置中断屏蔽寄存器IMR,可以屏蔽某些中断请求,从而动态地改变各请求端的优先级别。(2) 8259A响应某个中断请求之后,将ISR寄存器对应位置1。如果后续的中断请求级别低于正在响应的中断请求,则该中断不能立即被响应。反之,如果新的中断请求级别高于正在响应的中断请求,则允许进行中断嵌套。中断服务结束时,应将ISR寄存器对应位清零。10 特殊全嵌套方式有什么特点?它的使用场合是什么?特殊全嵌套方式一般用于级联方式下的8259A主片。如果8259A主片在一次中断处理尚未结束时,收到了来自同一个引脚的第二次中断请求,并且该8259A采用普通全嵌套方式,则它不会响应来自同一个引脚的第二次中断请求。如果该8259A采用特殊全嵌套方式,就会响应该请求(中断嵌套),从而可以及时响应连接在同一从片8259A上,并且相对有较高优先级别的中断请求。11 向8259A发送“中断结束”命令有什么作用?8259A有哪几种中断结束方式?分析各自的利弊。中断服务完成时,必须给8259A一个命令,使这个中断级别在ISR中的相应位清“0”,表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《污水处理工艺》课件
- 乡村振兴意义规划
- 《连续油管技术》课件
- 《名仕商务中心》课件
- 几百几十数乘以一位数综合作业题带答案
- 医疗安全与不良事件
- 乙肝感染手术的处理
- 影响因素及异常发育Influencingfactors
- 音乐照护健康评估-老年康体指导 初 级 -1729700396438
- 《透析血液通路》课件
- 微景观制作课件
- 2023学年西藏省重点中学英语九上期末考试试题含解析
- 三位数除两位数的除法练习题
- 小学心理健康教育人教六年级下册目录生命只有一次教学设计
- 小学劳动课教案三年级上册5篇
- 2021版特种设备目录
- 五年级上册美术课件-第4课 未来的交通工具丨赣美版
- 最新爆破安全规程
- 主题班会课防盗
- 支委会委员选举计票单
- 近三年无重大违法违规情况的说明
评论
0/150
提交评论