收藏 分享(赏)

现代微型计算机与接口教程(杨文显)课后答案.doc

上传人:weiwoduzun 文档编号:3183614 上传时间:2018-10-06 格式:DOC 页数:33 大小:479.79KB
下载 相关 举报
现代微型计算机与接口教程(杨文显)课后答案.doc_第1页
第1页 / 共33页
现代微型计算机与接口教程(杨文显)课后答案.doc_第2页
第2页 / 共33页
现代微型计算机与接口教程(杨文显)课后答案.doc_第3页
第3页 / 共33页
现代微型计算机与接口教程(杨文显)课后答案.doc_第4页
第4页 / 共33页
现代微型计算机与接口教程(杨文显)课后答案.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、习 题 一1. 8086CPU 由哪几个部件构成?它们的主要功能各是什么?8086 CPU 由指令执行部件 EU 和总线接口部件 BIU 两个部份组成。指令执行部件主要功能是执行指令。总线接口部件的主要功能是完成访问存储器或 I/O 端口的操作: 形成访问存储器的物理地址; 访问存储器取得指令并暂存到指令队列中等待执行; 访问存储器或 I/O 端口以读取操作数参与 EU 运算,或存放运算结果。2. 什么是逻辑地址?什么是物理地址?它们各自如何表示?如何转换?程序中使用的存储器地址称为逻辑地址,由 16 位“段基址”和 16 位“偏移地址” (段内地址)组成。段基址表示一个段的起始地址的高 16

2、 位。偏移地址表示段内的一个单元距离段开始位置的距离。访问存储器的实际地址称为物理地址,用 20 位二进制表示。将两个16 位二进制表示的逻辑地址错位相加,可以得到 20 位的物理地址:物理地址段基址16 + 偏移地址在 32 位 CPU 的保护模式下, “逻辑地址”的表示产生了一些变化,请参考第 8 章的相关内容。3. 什么是“堆栈”?它有什么用处?在使用上有什么特点?堆栈是内存中的一块存储区,用来存放专用数据。例如,调用子程序时的入口参数、返回地址等,这些数据都按照“先进后出”的规则进行存取。SS 存放堆栈段的段基址,SP存放当前堆栈栈顶的偏移地址。数据进出堆栈要使用专门的堆栈操作指令,S

3、P 的值在执行堆栈操作指令时根据规则自动地进行修改。4. 设 X=36H,Y=78H,进行 X+Y 和 XY 运算后 FLAGS 寄存器各状态标志位各是什么?5. 按照传输方向和电气特性划分,CPU 引脚信号有几种类型?各适用于什么场合?CPU 引脚传输的信号按照传输方向划分,有以下几种类型:输出:信号从 CPU 向外部传送;输入:信号从外部送入 CPU;双向:信号有时从外部送入 CPU,有时从 CPU 向外部传送。双向信号主要用于数据信号的传输;输出信号用于传输地址信号和一些控制信号;输入信号主要用于传输外部的状态信号(例如 READY)和请求(中断、DMA)信号。按照信号的电器特性划分,有

4、以下几种类型:一般信号:用来传输数据/地址信号时,高电平表示“1” ,低电平表示“0” ;用X=36H=00110110BY=78H=01111000B (+= 10101110BCF=0, SF=1, OF=1, PF=0, ZF=0, AF=0X=36H=00110110BY=78H=01111000B (= 10111110BCF=1, SF=1, OF=0, PF=1, ZF=0, AF=1来表示正逻辑的控制/状态信号时, “1”表示有效, “0”表示信号无效;用来表示负逻辑的控制/状态信号时, “0”表示有效, “1”表示信号无效。三态信号:除了高电平、低电平两种状态之外,CPU 内

5、部还可以通过一个大的电阻阻断内外信号的传送,CPU 内部的状态与外部相互隔离,也称为“悬浮态” 。CPU 放弃总线控制权,允许其他设备使用总线时,将相关信号置为“悬浮态” 。6. 8086CPU 以最小模式工作,现需要读取内存中首地址为 20031H 的一个字,如何执行总线读周期?请具体分析。为了读取内存中首地址为 20031H 的一个字,需要执行二个总线读周期。第一个总线周期读取 20031H 字节内容,进行的操作如下。T1 状态: = 1,指出 CPU 是从内存读取数据。随后 CPU 从地址/状态复用线IO/M(A 19/S6A 16/S3)和地址/数据复用线(AD 15AD 0)上发出读

6、取存储器的 20 位地址20031H。为了锁存地址,CPU 在 T1 状态从 ALE 引脚输出一个正脉冲作为地址锁存信号。由于需要读取高 8 位数据线上的数据(奇地址) , = 0。BHE为了控制总线收发器 8286 接受数据, = 0。R/DTT2 状态: 地址信息撤消,地址/数据线 AD15AD 0 进入高阻态,读信号 开始变为RD低电平(有效) , =0,用来开放总线收发器 8286。DENT3 状态: CPU 检测 READY 引脚信号。若 READY 为高电平(有效)时,表示存储器或 I/O 端口已经准备好数据, CPU 在 T3 状态结束时读取该数据。若 READY 为低电平,则表

7、示系统中挂接的存储器或外设不能如期送出数据,要求 CPU 在 T3 和 T4 状态之间插入 1个或几个等待状态 Tw。TW 状态:进入 TW 状态后,CPU 在每个 TW 状态的前沿(下降沿)采样 READY 信号,若为低电平,则继续插入等待状态 TW 。若 READY 信号变为高电平,表示数据已出现在数据总线上,CPU 从 AD15AD0 读取数据。T4 状态:在 T3(T W)和 T4 状态交界的下降沿处,CPU 对数据总线上的数据进行采样,完成读取数据的操作。第二个总线周期读取地址为 20032H 字节的内容。CPU 发出的信号与第一个周期类似,区别在于 T1 状态 CPU 发出存储器地

8、址为 20032H,由于只需要读取低 8 位数据线上的数据(偶地址) , =1。BHE在 CPU 内部,从 20031H 读入的低位字节和从 20032H 读入的高位字节被拼装成一个字。7. 8086CPU 有几种工作方式?各有什么特点?8086/8088 CPU 有两种工作模式:最大工作模式和最小工作模式。所谓最小工作模式,是指系统中只有一个 8086/8088 处理器,所有的总线控制信号都由 8086/8088 CPU 直接产生,构成系统所需的总线控制逻辑部件最少,最小工作模式因此得名。最小模式也称单处理器模式。最大模式下,系统内可以有一个以上的处理器,除了 8086/8088 作为“中央

9、处理器”之外,还可以配置用于数值计算的 8087“数值协处理器” 、用于 I/O 管理的“I/O 协处理器”8089。各个处理器发往总线的命令统一送往“总线控制器” ,由它“仲裁”后发出。CPU 两种工作模式由 引脚决定, 接高电平,CPU 工作在最小模式;MX/NMX/N将 接地, CPU 工作在最大模式。MX/N8. 分析 8086CPU 两个中断输入引脚的区别,以及各自的使用场合。INTR 用于输入可屏蔽中断请求信号,电平触发,高电平有效。中断允许标志 IF= 1 时才能响应 INTR 上的中断请求。NMI 用于输入不可屏蔽中断请求信号,上升沿触发,不受中断允许标志的限制。 CPU一旦测

10、试到 NMI 请求有效,当前指令执行完后自动转去执行类型 2 的中断服务程序。NMI 引脚用于连接 CPU 外部的紧急中断请求,例如内存校验错,电源掉电报警等。INTR 引脚用于连接一般外部设备的中断请求。9. 什么是时钟周期、总线周期、指令周期?它们的时间长短取决于哪些因素?时钟周期:CPU 连接的系统主时钟 CLK 一个周期的时间。CLK 信号频率越高,时钟周期越短。总线周期:CPU 通过外部总线对存储器或 I/O 端口进行一次读/写操作的过程称为总线周期。8086CPU 总线周期一般由四个时钟周期组成,存储器/IO 设备(接口)速度不能满足 CPU 要求时,可以增加一个或多个时钟周期。指

11、令周期: CPU 执行一条指令的时间(包括取指令和执行该指令所需的全部时间)称为指令周期。指令周期的时间主要取决于主时钟的频率和指令的复杂程度,它也受到存储器或 IO 设备接口工作速度的影响。10. 在一次最小模式总线读周期中,8086CPU 先后发出了哪些信号?各有什么用处?T1 状态: 指出 CPU 是从内存(1)还是从 IO 端口(0)读取数据。随后 CPUIO/M从地址/状态复用线(A 19/S6A 16/S3)和地址/数据复用线(AD 15AD 0)上发出读取存储器的 20 位地址,对 IO 端口访问时从 AD15AD 0 上发出 16 位地址。为了锁存地址,CPU 在 T1 状态从

12、 ALE 引脚输出一个正脉冲作为地址锁存信号。如果需要读取高 8 位数据线上的数据(奇地址/读取一个字) , = 0。BHE为了控制总线收发器 8286 数据传输方向, = 0。R/DTT2 状态: 读信号 开始变为低电平(有效) , =0,用来开放总线收发器RDN8286。T3 状态: CPU 检测 READY 引脚信号。若 READY 为高电平(有效) ,表示存储器或I/O 端口已经准备好数据,进入 T4 状态;若 READY 为低电平(无效) ,表示存储器或 I/O端口尚未准备好数据,插入一个或多个 TW 状态,直到 READY 变为高电平。T4 状态:在 T3(T W)和 T4 状态交

13、界的下降沿处,CPU 对数据总线上的数据进行采样,完成读取数据的操作。11. 结合指令“OUT 21H, AL”,具体叙述最大模式“总线写周期”总线上的相关信号。T1 状态:地址/数据复用线(AD 15AD 0)上出现访问 IO 端口的 16 位地址 21H。由于地址为奇数,需要通过高 8 位数据线访问端口, = 0。BHET2 状态: = 0,表示本周期对 IO 端口进行写操作。地址 /数据复用线IOW(AD 15AD 0)上出现来自 AL 的 8 位数据。T3 状态:若 READY 为高电平(有效) ,表示 I/O 端口已经准备好接收数据。反之,表示 I/O 端口尚未准备好接收数据,需要

14、CPU 插入 TW 周期进行等待,直到 READY 出现高电平(有效) 。T4 状态:CPU 结束本周期。习 题 二1. 内存储器主要分为哪两类? 它们的主要区别是什么?内存储器分为随机存取存储器 RAM(Radom Access Memory)和只读存储器ROM(Read Only Memory)两类。RAM 中信息可以按地址读出,也可以按地址写入。RAM 具有易失性,掉电后原来存储的信息全部丢失,不能恢复。ROM 中的信息可以按地址读出,但是在普通状态下不能写入,它的内容一般不能被改变。ROM 具有 “非易失性” ,电源关闭后,其中的信息仍然保持。2. 说明 SRAM、DRAM、MROM、

15、PROM 和 EPROM 的特点和用途。SRAM:静态 RAM,读写速度快,但是集成度低,容量小,主要用作 Cache 或小系统的内存储器。DRAM:动态 RAM,读写速度慢于静态 RAM,但是它的集成度高,单片容量大,现代微型计算机的“主存”均由 DRAM 构成。MROM:掩膜 ROM,由芯片制作商在生产、制作时写入其中数据,成本低,适合于批量较大、程序和数据已经成熟、不需要修改的场合。PROM:可编程 ROM,允许用户自行写入芯片内容。芯片出厂时,所有位均处于全“0”或全“1”状态,数据写入后不能恢复。因此,PROM 只能写入一次。EPROM:可擦除可编程只读存储器,可根据用户的需求,多次

16、写入和擦除,重复使用。用于系统开发,需要反复修改的场合。回忆:半导体存储器芯片容量取决于存储单元的个数和每个单元包含的位数。存储容量可以用下面的式子表示:存储器容量(S)存储单元数(p)数据位数(i)存储单元个数(p)与存储器芯片的地址线条数(k)有密切关系:p=2 k,或klog 2(p) 。数据位数 i 一般等于芯片数据线的根数。存储芯片的容量(S)与地址线条数(k) 、数据线的位数(i)之间的关系因此可表示为:S2 ki3. 已知一个 SRAM 芯片的容量为 8K8,该芯片有一个片选信号引脚和一个读/写控制引脚,问该芯片至少有多少个引脚?地址线多少条?数据线多少条?还有什么信号线?根据存

17、储芯片地址线数量计算公式,klog2 (1024*8)= log2(2 13)=13,即总计有13 根地址线。另有 8 根数据线、2 根电源线。所以该芯片至少有 25(=13+8+1+1+2)根引脚。4. 巳知一个 DRAM 芯片外部引脚信号中有 4 根数据线,7 根地址线,计算它的容量。因为:DRAM 芯片把片内地址划分为“ 行地址”和“列地址”两组,分时从它的地址引脚输入。所以,DRAM 芯片地址引脚只有它内部地址线的一半。根据存储容量计算公式 S2 kI,可得该芯片的存储容量为:2 14*4=16K4bit(位) ,也可表示为 64Kb=8KB(字节) 。5. 32M8 的 DRAM 芯

18、片,其外部数据线和地址线为多少条?根据存储芯片地址线数量计算公式,klog2 (1024*1024*32)= log2(2 25)=25,即需要 25 根地址线。但是,由于 DRAM 芯片的地址采用分时输入的方法,所以实际需要的地址线只有理论值的一半,此处为 13 根。数据线 8 根。6. DRAM 为什么需要定时刷新?DRAM 靠 MOS 管极间电容存储电荷的有无决定所存信息是 0 还是 1,由于漏电流的存在,它存储的信息不能长时间保存,需要定时重新写入,称为“刷新” 。7. 74LS138 译码器的接线如图 2.28 所示,写出 、 、 、 所决定的内存地址范0Y246Y围。从图看出,该存

19、储系统的片内地址线有 13 根(A12-A0) ,是一个由 8KB 存储芯片组成的存储系统,A17 地址线不确定。它的地址分布为:00?0, CBA?, ?, ?, ?其中,CBA 作为译码输入,与输出选择有关:当为 000,选中 y0,为 001,选中 y1,为 010,选中 y2,为 011,选中 y3,.“?”表示可以为“0” ,也可以为“1” 。于是:对应的内存地址范围是:0Y00000H01FFFH;或 20000H21FFFH。对应的内存地址范围是:204000H05FFFH;或 24000H25FFFH。对应的内存地址范围是:4Y08000H09FFFH;或 28000H29FF

20、FH。对应的内存地址范围是:60C000H0DFFFH;或 2C000H2DFFFH。8. 叙述 EPROM 的编程过程,并说明 EPROM 和 EEPROM 的不同点。EPROM 的编程过程标准编程方式:图 2.28 译码电路电路Vpp 上加编程电压,地址线、数据线上给出要编程单元的地址及其数据,并使0、 1。上述信号稳定后,在 端加上宽度为 505ms 的负脉冲,就可将一CEOPRG个字节的数据写入相应的地址单元中。不断重复这个过程,将数据逐一写入。快速编程方式:使用 100s 的编程脉冲依次写完所有要编程的单元,然后从头开始校验每个写入的字节。若写得不正确,则重写这个单元。写完后再校验,

21、不正确还可再写,直到全部正确。EPROM 和 EEPROM 的不同点:EPROM 芯片用紫外线光照射擦除芯片的内容,擦除时需要把芯片从电路板上拔下,擦除操作对整个芯片进行。EPROM 芯片编程需要外加“高电压” ,所以需要专用的“编程器”才能实现。EPROM 的编程一般情况下对整个芯片进行。EEPROM 芯片的擦除用电信号实现,无需把芯片从电路板上拔下,可以进行“在系统编程” 。EEPROM 以字节为单位重写,EEPROM 没有单独的擦除操作,写入就意味着擦除了原来的内容,所以使用比 EPROM 快速方便。相比较而言,EEPROM 芯片的编程比较接近 RAM 的写入,它们之间的区别主要体现在速

22、度上:RAM 写入与读出的速度相近,不需要其他的联络信号;EEPROM 的写入比起读出明显要慢,为了掌握写入时间,EEPROM通常设置了一根“状态”引脚,供联络使用。9. 下列容量的 ROM 芯片除电源和地线,还有多少个输入引脚和输出引脚?写出信号名称。(1)644 (2)5128 (3)128K 8 (4)16K 8 (5)1M 16根据存储容量计算公式可得以上各芯片的地址、数据引脚分别为:644: 地址线 k= log2(64 )= log2 (2 6)= 6 根,数据线=4 根;5128: 地址线 k= log2(512 )= log2 (2 9)= 9 根,数据线=8 根;128k8:

23、地址线 k= log2(128*1024 )= log2 (2 17)= 17 根,数据线=8 根;16k8: 地址线 k= log2(16*1024 )= log2 (2 14)= 14 根,数据线=8 根;1M16: 地址线 k= log2(1024*1024)= log2(2 20)= 20 根,数据线=16 根。此外,所有 ROM 芯片都需要一根片选信号引脚;对于 PROM,EPROM 通常还需要“输出允许”和“编程脉冲”输入引脚。EEPROM 芯片除了有“片选” 、 “输出允许”和“写允许”外,通常还有表示“写入完成”的状态信号引脚。10. 已知 RAM 芯片的容量为(1)16K8

24、(2)32K8 (3)64K8 (4)2K8如果 RAM 的起始地址为 3400H、则各 RAM 对应的末地址为多少?存储器的末地址=首地址+ 芯片内字节数(容量)1上述各芯片对应 RAM 的末地址为:16K8:末地址是 3400H+4000H1= 73FFH32K8:末地址是 3400H+8000H1= B3FFH64K8:末地址是 3400H+10000H1= 133FFH2K8: 末地址是 3400H+800H1= 3BFFH11. 如果存储器起始地址为 1800H,末地址为 1FFFH,求该存储器的容量。该存储器的容量为:(1FFFH 1800H+1)8 = 800H8,该存储器有 2

25、0488 个位,也可以写作 2KB。12. 有一个存储体,其地址线 15 条,数据线 8 条,则1)该存储体能够存储多少个汉字?2)如果该存储体由 2K4 位的芯片组成,需要多少片?3)采用什么方法扩展?分析各位地址线的使用。该存储体容量为 2158=32KB,存储一个汉字需要二个字节,因此,它能够存储16384(16K)个汉字。需要 2K4 位的芯片 32 片, (32K8)/(2K4)=32 。可采用字位全扩展方法,由 2 片 4 位的芯片组成 1 组 8 位的存储单元,16 组扩展成32K 的 8 位存储体。芯片直接使用的地址线(片内地址)11 根(A0-A10) ,另外需要 4 根高位

26、地址,连接到 4-16 译码器输入端,产生 16 个译码信号用作 16 个芯片组的片选信号。剩余的地址线用来确定该存储体的首地址。13. 试说明 Flash Memory 芯片的特点及 28F040 的编程过程。Flash Memory 也称为“闪速存储器 ”,有时直接称之为“Flash” 。Flash 既有 ROM 非易失性的特点,又能够在线擦除和重写,既可读又可写,同时有很高的存取速度,具有集成度高,价格低,耗电少等优点。目前存取速度已突破了 30ns,掉电后信息可以保持 10年。Flash 的编程方法与 E2PROM 相同,28F040 的编程写入过程采用字节编程方式。首先,向 28F0

27、40 状态寄存器写入命令 10H,再在指定的地址单元写入相应数据。接着查询状态,判断这个字节是否写好,若写好则重复上面过程写入下一个字节,直到全部字节写入。28F040 的编程速度很快,一个字节的写入时间仅为 8.6s。14. 利用全地址译码将 6264 芯片接到 8088 系统总线上,地址范围为30000H31FFFH,画出逻辑图。回忆:一个存储芯片内各个存储单元的高位地址是相同的,它决定了这个芯片在整个内存中占据的地址范围。所以,芯片的选片信号应该由高位地址译码产生。芯片内部存储单元的选择由低位地址决定,通过芯片的地址引脚输入。它们可以理解为“片内相对地址” 。存储器的地址译码有两种方式:

28、全地址译码和部份地址译码。所谓全地址译码,就是连接存储器时要使用全部 20 位地址信号,所有的高位地址都要参加译码。译码电路构成方法很多,可以利用基本逻辑门电路构成,也可以利用集成的译码器芯片或可编程芯片组成。全地址译码可以保证存储器芯片上的每一个单元在整个内存空间中具有唯一的、独占的一个地址。参考教材相关内容 P28,6264 芯片有 13根地址线,剩余的高位 7 根地址线通过译码组合确定该芯片的起始地址(30000H) 。由 30000H 地址得出对应的地址线状态为:0011 000 0 0000 0000 0000 可以看出 A13A19 地址线为 0011 000,所以译码组合应逻辑为

29、:全地址译码连接图= A16A17 1CS3A415189=( )(A16A17 )189= A13+A14+A15+A18+A19+ A16A17具体逻辑如右图所示。15. 若用 2164 芯片构成容量为 128KB 的存储器,需多少片 2164? 至少需多少根地址线?其中多少根用于片内寻址?多少根用于片选译码? 2164A 是容量为 64K1 位的动态随机存储器芯片,构成 128KB 的存储器需要 2164A芯片 16 片 128K8/(64K 1)=16 。由于地址空间为 128K,需要的地址线总数为 17 根(2 17=128K) 。其中,片内地址线16 根(2 16 =64K) ,片

30、选地址线 1 根(1716=1, ) 。每 8 个 2164 芯片构成一组,进行位扩展,得到 64KB 存储器。两个这样的“组”进行地址扩展,构成 128KB 的存储器。16. 某 8088 系统用 2764 ROM 芯片和 6264 SRAM 芯片构成 16KB 的内存。其中,RAM的地址范围为 FC000H-FDFFFH,ROM 的地址范围为 FE000H-FFFFFH。试利用74LS138 译码,画出存储器与 CPU 的连接图,并标出总线信号名称。2764 和 6264 均为 8KB 的存储芯片,需要 13 根地址线(A 0A12)用于片内寻址。8088 系统的其他地址线(A 13A19

31、)用于产生片选信号。FC000H 的地址线状态为:1111 110 0 0000 0000 0000FE000H 的地址线状态为:1111 111 0 0000 0000 0000将 A13A15 用作译码输入,其他地址( A16A19=1111)用作译码控制,可以得到如下译码控制电路,连接如下图所示。17. 存储周期指的是( A ) 。A存储器进行连续读或写操作所允许的最短时间间隔 B存储器的读出周期C存储器进行连续写操作所允许的最短时间间隔 D存储器的写入周期存储周期是指连续两次访问存储器之间所需的最小时间。存取时间是 CPU 访问一次存储器(写入和读出)所需的时间。存储周期等于存取时间加

32、上存储器的恢复时间。所以应选择 A。18. 某一 EPROM 芯片,其容量为 32K8,除电源和地线外,最小的输入引脚和输出引脚分别为( C ) 。A. 15 和 8; B32 和 8; C17 和 8; D18 和 10;容量为 32K8 的 EPROM 芯片,其数据线为 8 根,地址线为 15 根,片选线 1 根,读写控制线 1 根。其中地址线、片选线、读写控制线均为 EPROM 的输入信号,共 17 根。数据线在正常工作状态下用于 EPROM 输出,计 8 根。所以应选择 C。19. 掩膜 ROM 在制造时通过光刻是否连接 MOS 管来确定 0 和 1,如果对应的某存储单元位没有连接 M

33、OS 管,则该位信息为( C ) 。A不确定; B. 0; C1; D可能为 0,也可能为 1;掩膜 ROM 芯片内每一个二进制位对应于一个 MOS 管,该位上存储的信息取决于这个MOS 管的栅极是否被连接到字线上。栅极被连接,该单元被选中时,漏极与“地”相通,输出低电平,该位存储的信息就是 0。栅极未连接时,尽管字线被选中,输出端与“地”仍然不能导通,输出高电平,对应的信息为 1。所以应选择 C。20. SRAM 和 DRAM 存储原理不同,它们分别靠( A )来存储 0 和 1 的。A双稳态触发器的两个稳态和极间是否有足够的电荷B内部熔丝是否断开和双稳态触发器C极间电荷和浮置栅是否积累足够

34、的电荷D极间是否有足够的电荷和双稳态触发器的两个稳态静态随机存储器(SRAM)的每一个位存储单元有一个双稳态触发器,由 4 个晶体管组成,它们的状态确定了该存储单元存储的 1 位二进制信息。而动态随机存储器(DRAM )一般采用单管电路组成,它由一个 MOS 管 T1 和一个电容 C 构成。写入时其信息通过位线(数据线)存人电容 C 中(写入“1”对电容充电,写入“0”则对电容放电) ;读出时存储在电容 C 上的电荷通过 T1 输出到位线上。所以应选择 A。习 题 三1 接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?数据信号:对于输入设备,数据信号从外设通过接口送往总线,对于输出设备

35、,数据信号从总线通过接口发往外部设备。状态信号:状态信号表明外部设备当前的工作状态,用来协调 CPU 与外部设备之间的操作。状态信号总是从外部设备通过接口发往总线。控制信号 :控制信号是 CPU 向外设发出的命令,它指定设备的工作方式,启动或停止设备。控制信号从 CPU 通过接口发往外部设备。2 接口电路有哪些功能?哪些功能是必需的?接口电路可以具备:设备选择功能、信息传输功能、数据格式转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测等功能。其中设备选择功能和信息传输功能是每一个接口电路所必备的。其他的功能是否需要则由设备的特点和工作方式决定。3 I/O 端口的编址有哪几种方法

36、?各有什么利弊? 80X86 系列 CPU 采用哪种方法?I/O 端口的编址有两种不同的方式:(1) I/O 端口与内存统一编址:把内存的一部分地址分配给 I/O 端口,一个 8 位端口占用一个内存单元地址。已经用于 I/O 端口的地址,存储器不能再使用。I/O 端口与内存统一编址后,访问内存储器单元和 I/O 端口使用相同的指令,这有助于降低 CPU 电路的复杂性,并给使用者提供方便。但是,I/O 端口占用内存地址,相对减少了内存可用范围。而且,由于难以区分访问内存和 I/O 的指令,降低了程序的可读性和可维护性。(2) I/O 端口与内存独立编址:这种编址方法中,内存储器和 I/O 端口各

37、自有自己独立的地址空间。访问 I/O 端口需要专门的 I/O 指令。80x86 CPU 采用 I/O 端口独立编址方式。4 按照传输信号的种类,I/O 端口有几种?它们信号的传输方向怎样?按照传输信号的种类,I/O 端口有三种:数据端口:数据信息从端口输入 CPU(输入设备接口) ,或者从 CPU 写入端口(输出设备接口);状态端口:外设状态信息从端口输入 CPU;控制端口:命令信息从 CPU 写入端口。5 I/O 端口译码电路的作用是什么?在最小模式和最大模式下分别有哪些输入信号?I/O 端口译码电路用于产生端口的读写选择信号。在最小模式下,译码电路接受来自总线的地址信号(16 位) , (

38、= 0) , 或者 信号。最大模式下,译码电路接受IO/MRDW地址信号(16 位) , 或者 信号。IRW6 外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。外部设备数据传送有以下四种控制方式。直接传送方式(也称为无条件传送方式、同步传送方式):这种情况下,外部端口完全被动地等待 CPU 的访问,没有确定的响应速度,响应时间取决于 CPU 忙碌的程度以及程序对外部设备控制采取的策略。查询方式:如果 CPU 在某一时刻只对一个外设采用查询方式进行数据传输,CPU 的响应延迟约为 310 个指令周期。响应速度快于中断方式,慢于 DMA 方式。中断方式:CPU

39、 的响应延迟平均为几十个指令周期,慢于查询方式,但是这种方式可以同时管理多个外部设备。DMA 方式:外部端口的传输请求由 DMA 控制器响应,由于 DMAC 是一个专用于传输控制的电路,任务单一,不发生 DMA 传输竞争时,响应延迟仅为 12 个 DMAC 使用的时钟周期,远快于中断方式和查询方式。7 叙述一次查询式输出过程中,接口内各电路、信号的状态变化过程。一个数据的查询式输出过程由二个阶段组成:CPU 从接口反复读取状态字:由地址译码电路产生状态端口选择信号,该信号不影响接口内部的状态。外部设备输出完成后,返回“确认”信号,该信号将状态寄存器相关位(READY)置位。如状态字表明外设已处

40、于“就绪”状态,则向数据端口传送数据。由地址译码电路产生的数据端口选通信号一方面将数据总线上的数据写入数据寄存器,同时清除状态寄存器中的相关位(READY) ,向输出设备发出输出启动信号。有的输出接口设有控制端口,输出启动信号通过写控制端口产生。8 比较程序中断方式和查询方式的区别,根据比较,指出中断工作方式的优缺点。中断方式:外部设备工作完成后,通过“中断请求”信号“主动”向 CPU“报告” 。查询方式:外部设备工作完成后,状态信号储存在接口电路内,被动地等待 CPU 来读取。根据上述比较,可以得到中断工作方式的如下特点:优点:1) CPU 能够及时了解外部设备的状态,从而对外部设备 IO

41、请求进行及时处理。2) 由于 CPU“被动”地等待外部设备的“中断请求” ,外部设备进行输入/输出操作时,CPU 可以同时执行其他的程序,CPU 和外部设备“并行”工作。3) 由于同样的原因,在中断方式下,CPU 可以同时管理多台外部设备,CPU 的效率得到提高。缺点:1) 用中断方式需要 CPU 增加相应的管理逻辑,增加了 CPU 电路的复杂性。2) 由于 CPU“被动”地接收“中断请求”信号,CPU 必须通过与外部的一个联络过程才能知道是那一个设备在申请中断,这增加了响应时间。为了从当前任务转移到中断服务,CPU 必须保护原有的运行环境,进行 “任务”的“切换” ,这也会增加响应时间。3)

42、 有较多的设备使用中断方式时,会产生“中断申请”的“竞争” 。这一方面降低了响应速度,另一方面增加了管理的复杂性。 9 比较 DMA 方式和程序中断方式的区别,根据比较,指出 DMA 工作方式的优缺点。中断方式:外部设备每进行一个数据的输入/输出,都要通过“中断申请”要求 CPU进行处理。CPU 通过执行一段 “中断服务程序”完成数据的传输。DMA 方式:CPU 通过对 DMAC 的初始化,启动一个数据块的传输操作。之后的数据传输通过信号的联络,在外设接口和存储器之间进行,CPU 只需简单地让出总线,而无需其他操作。根据上述比较,可以得到 DMA 工作方式的如下特点:优点:1) 对于 CPU

43、而言,它的任务仅仅是在一个数据块传输之前对 DMAC 进行初始化,CPU 用于传输控制的操作达到最小(不考虑与通道/IO 处理器方式的比较) ,CPU 的效率最高。CPU 与外设“并行”工作。2) 外部设备一个数据输入/ 输出完成后,向 DMAC 申请进行数据传输,响应时间仅为 DMAC 的 13 个时钟周期。响应速度达到最快,可以满足高速传输的需要。缺点:1) 实现 DMA 控制需要增加 DMA 控制器和总线控制逻辑,增加了系统的复杂性。2) DMA 传输需要占用总线,并且具有较高的“优先级” 。这使得系统对其他设备的响应速度不能得到明确的保证。10 某输入设备接口数据端口、状态端口、控制端

44、口地址分别为 70H, 71H, 72H。状态端口 D5=1 表示输入完成,控制端口 D7=1 表示启动设备输入(输入完成后由设备清除该位) 。从该设备输入 100 个字节数据,存入以 BUFFER 为首地址的缓冲区。如果启动该设备 1 秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。用 8086 汇编语言编写完成上述功能的 I/O 程序。DATA SEGMENTBUFFER DB 100 DUP(?)ERROR DB 13, 10, “OVER TIME !”, 13, 10, “$”DATA ENDS;CODE SEGMENTASSUME CS: CODE, DS: DATASTA

45、RT:MOV AX, DATA ;对 DS 初始化,置段基址MOV DS, AXMOV CX, 100 ;设置 CX 为计数器LEA BX, BUFFER ;设置缓冲区指针ONE: XOR DX, DX ;DX 用作响应计时器,初值 0MOV AL, 80H ; 设控制字,控制端口 D7=1 启动设备输入OUT 72H, AL ;启动输入W: IN AL, 71H ;读状态端口INC DX ;纪录延迟时间TEST AL, 00100000B ;测输入完成否,状态端口 D5=1 输入完成JNZ READ ;输入完成,转 READ 读取数据CMP DX, 50000 ;假设循环 50000 次时间

46、为 1 秒JB W ;未超时(即 DX50000) ,继续测试;JB 为条件转移指令,即 DX-500000 时转移JMP OVERTIME ;超过 1 秒,报告出错,JMP 无条件转移指令READ: IN AL, 70H ;读入数据MOV BX, AL ;数据存入缓冲区INC BX ;修改指针LOOP ONE ;100 个数据尚未输入完成,转 ONE 继续JMP DONE ;100 个数据输入完成,转 DONE 结束程序OVERTIME: LEA DX, ERRORMOV AH, 09H ; 设置显示功能号INT 21H ;响应超时,显示出错信息DONE: MOV AX, 4CHINT 21

47、H ;返回 DOSCODE ENDSEND START11 某输出设备数据端口、状态端口地址分别为 220H, 221H。状态端口 D0=1 表示输出完成。将数据段中以 STRING 为首地址的 20 个字符(用七位 ASCII 代码存储)添加水平和垂直校验发送到该外部设备。用 8086 汇编语言编写完成上述功能的 I/O 程序。汇编语言程序:DATA SEGMENTSTRING DB 20 DUP ( ? )SUM DB 0DATA ENDS;CODE SEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATA ;对 DS 初始化,置段基址MOV D

48、S, AXMOV CX, 20 ;设置 CX 为计数器LEA BX, STRING ;设置缓冲区指针MOV SUM, 0 ; 垂直校验码初值为 0ONE: MOV DX, 221H ; DX 置为状态端口地址IN AL, DX ;读入状态TEST AL, 00000001B ;测输出完成位,状态端口 D0=1 输出完成JZ ONE ;未完成,转 ONE 继续读取状态MOV AL, BX ;从字符串取出一个字符的 ASCII 代码;水平校验(偶校验)ANDAL, 07FH ;清除最高位,准备置入校验位JPE OUTPUT ;判 1 的个数奇偶性,PF=1(有偶数个 1)则转移OR AL, 80H

49、 ;奇数个“1” ,最高位置 1(偶校验)OUTPUT: MOV DX, 220HOUT DX, AL ;输出添加了校验位的代码XOR SUM, AL ;生成垂直校验位INC BX ;修改指针LOOP ONE ;20 个数据尚未输出完成,转 ONE 继续;输入完成, 输出垂直校验码MOV AL, SUMMOV DX, 220HOUT DX, ALDONE: MOV AX, 4C00HINT 21H ;返回 DOSCODE ENDSEND START12 试画出矩阵式键盘查询的程序流程图。行 扫 描 法 键 盘 扫 描 流 程键 盘 扫 描 码 =0, 计 数 器 =8行 扫 描 代 码 110B向 行 线 端 口 输 出 行 扫 描 代 码( 7行 为 1, 行 为 0)全 “1”从 列 线 端 口 读 入 将 行 扫 描 代 码 左 移 一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报