1、第 1 页 共 37 页微型计算机技术及应用第四版部分习题答案第一章 微型计算机概述1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?答: 微处理器是微型计算机的核心,是微型计算机的一部分。它是集成在一块芯片上的 CPU,由运算器和控制器组成。 微型计算机包 括 微 处 理 器 、 存储器、 I/O 接 口 和 系 统 总 线 , 是 微 型 计 算 机 系 统 的 主 体 。 微型计算机系统包括微型计算机、外设及系统软件三部分。1.2 CPU 在内部结构上由哪几部分组成?CPU 应具备哪些主要功能?答:1.CPU 在内部结构上由以下几部分组成: 算术逻辑部件(ALU); 累加器
2、和通用寄存器组; 程序计数器(指令指针)、指令寄存器和译码器; 时序和控制部件。2.CPU 应具备以下主要功能: 可以进行算术和逻辑运算; 可保存少量数据; 能对指令进行译码并执行规定的动作; 能和存储器、外设交换数据; 提供整个系统所需要的定时和控制; 可以响应其他部件发来的中断请求。1.3 累加器和其他通用寄存器相比,有何不同?答:许多指令的执行过程以累加器为中心;输入/输出指令一般也以累加器来完成。1.4 微处理器的控制信号有哪两类?答:一类是通过对指令的译码,由 CPU 内部产生的。这些信号由 CPU 送到存储器、I/O接口电路和其他部件。另一类是微型机系统的其他部件送到 CPU 的。
3、通常用来向CPU 发出请求。如中断请求、总线请求等。1.5 微型计算机采用总线结构有什么优点?答:首先是系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。其次是一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩充。第 2 页 共 37 页1.6 16 位微型机和 32 位微型机的内存容量最大时分别为多少?答:16 位微型机内存容量为 1MB,32 位微型机的内存容量为 4GB第二章 8086 微处理器2.3 段寄存器 CS=1200H,指令指针寄存器 IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的 CS 值和 IP 值是唯一的吗?答:
4、1.该指令的物理地址=CS10H+IP=21F00H。2.指向这一物理地址的 CS 值和 IP 值不是唯一的。2.4 8086 的执行部件有什么功能?由哪几部分组成?答:1.8086 的执行部件的功能是负责指令的执行。2.4 个通用寄存器 AX、BX、CX、DX;4 个专用寄存器 BP、SP 、SI、DI;标志寄存器 FLAGS 和算术逻辑单元 ALU。2.5 状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?8086 的状态标志和控制标志分别有哪些?答:1.不同之处在于:状态标志由前面指令执行操作的结果对状态标志产生影响,即前面指令执行操作的结果决定状态标志的值。控制标志是人为设置的
5、。2.利用状态标志可进行计算和判断等操作。利用控制标志可对某一种特定功能(如单步操作、可屏蔽中断、串操作指令运行的方向)起控制作用。3.8086 的状态标志有:SF、ZF、PF 、CF、AF 和 OF 计 6 个。8086 的控制标志有:DF、IF、TF 计 3 个。2.6 总线周期的含义是什么?8086/8088 的基本总线周期由几个时钟组成?如一个 CPU 的时钟频率为 24MHz,那么,它的一个时钟周期为多少?一个基本总线周期为多少?如主频为 15MHz 呢?答:1.总线周期的含义是总线接口部件完成一个取指令或传送数据的完整操作所需的最少时钟周期数。2.8086/8088 的基本总线周期
6、由 4 个时钟周期组成。3.当主频为 24MHz 时,T =1/24MHz41.7ns,T 总 =4T 167ns。4.当主频为 15MHz 时,T =1/15MHz66.7ns,T 总 =4T 267ns。2.7 在总线周期的 T1、T 2、T 3、T 4 状态,CPU 分别执行什么动作?什么情况下需要插入等待状态 TW?T W 在哪儿插入?怎样插入?答:1.在总线周期的 T1、T 2、T 3、T 4 状态,CPU 分别执行下列动作: T1 状态:CPU 往多路复用总线上发出地址信息,以指出要寻找的存储单元或外第 3 页 共 37 页设端口的地址。 T2 状态:CPU 从总线上撤销地址,而使
7、总线的低 16 位浮置成高阻状态,为传输数据做准备。总线的高 4 位(A 19A16)用来输出本总线周期的状态信息。 T3 状态:多路总线的高 4 位继续提供状态信息。低 16 位(8088 为低 8 位)上出现由 CPU 写出的数据或者 CPU 从存储器或端口读入的数据。 T4 状态:总线周期结束。2.当被写入数据或者被读取数据的外设或存储器不能及时地配合 CPU 传送数据。这时,外设或存储器会通过“READY”信号线在 T3 状态启动之前向 CPU 发一个“数据未准备好的信号” ,于是 CPU 会在 T3 之后插入一个或多个附加的时钟周期TW。3.TW 插在 T3 状态之后,紧挨着 T3
8、状态。4.插入的 TW 状态时的总线上的信息情况和 T3 状态的信息情况一样。当 CPU 收到存储器或外设完成数据传送时发出的“准备好”信号时,会自动脱离 TW 状态而进入T4 状态。2.8 CPU 启动时,有哪些特征?如何寻找 8086/8088 系统的启动程序?答:1.CPU 启动时,有以下特征: 内部寄存器等置为初值; 禁止中断(可屏蔽中断); 从 FFFF0H 开始执行程序; 三态总线处于高阻状态。2.8086/8088 系统的启动程序从 FFFF0H 单元开始的无条件转移指令转入执行。2.9 8086 和 8088 是怎样解决地址线和数据线的复用问题的?ALE 信号何时处于有效电平?
9、答:1.在总线周期的 T1 状态,复用总线用来输出要访问的存储器或 I/O 端口的地址给地址锁存器 8282(3 片) 锁存;在其他状态为传送数据或作传送准备。地址锁存器 8282 在收到 CPU 发出的地址锁存允许信号 ALE 后,锁存地址。2.ALE 信号在每个总线周期的 T1 状态为有效高电平。2.10 BHE信号和 A0 信号是通过怎样的组合解决存储器和外设端口的读/写的?这种组合决定了8086 系统中存储器偶地址体及奇地址体之间应该用什么信号来区分?怎样区分?答:1.组合情况如下: EA0 操 作 所用的数据引腿0 0 从偶地址开始读/写一个字 AD15AD01 0 从偶地址单元或端
10、口读/写一个字节 AD7AD0第 4 页 共 37 页1 1 从奇地址单元或端口读/写一个字节 AD15AD80 10 1从奇地址开始读/写一个字(在第一个总线周期,将低 8 位数送 AD15AD8, 在第二个总线周期,将高 8 位数送 AD7AD0)AD15AD8AD7AD02.用 A0 信号来区分偶地址体和奇地址体。3.当 A0=0 时选中偶地址体,A 0=1 时选中奇地址体。2.11RESET 信号来到后,CPU 的状态有哪些特点?答:复位信号来到后,CPU 便结束当前操作,并对处理器标志寄存器FR、IP 、DS、SS、ES 、其他寄存器及指令队列清 0,而将 CS 设置为 FFFFH。
11、当复位信号变为低电平后,CPU 从 FFFF0H 单元开始执行程序。2.12 在中断响应过程中,8086 往 8259A 发的两个 INTA信号分别起什么作用?答:第一个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,往数据总线上放中断类型码,从而 CPU 得到了有关此中断请求的详尽信息。2.13 总线保持过程是怎样产生和结束的?画出时序图。答:1.当系统中 CPU 之外的另一个主模块要求占用总线时,通过 HOLD 引腿向 CPU 发一个高电平的请求信号。如果 CPU 此时允许让出总线,就在当前总线周期完成时,于 T4 状态从 HLDA 引腿发出一个应答信号
12、,对刚才的 HOLD 请求做出响应。同时,CPU 使地址/数据总线和控制状态线处于浮空状态。总线请求部件收到 HLDA 信号后,就获得了总线控制权,在此后一段时间,HOLD 和 HLDA 都保持高电平。在总线占有部件用完总线之后,会把 HOLD 信号变为低电平,表示现在放弃对总线的占有。8086/8088 收到低电平的 HOLD 信号后,也将 HLDA 变为低电平,这样,CPU 又获得了地址/ 数据总线和控制状态线的占有权。2.时序图为:采样高阻T4/TI 采样三态引腿HLDAHOLDCLK第 5 页 共 37 页2.15 T1 状态下,数据/地址复用总线上是什么信息?用哪个信号将此信息锁存起
13、来?数据信息是在什么时候给出的?用时序图表示出来。答:1.T 1 状态下,数据/地址复用总线上是地址信息。2.用 ALE 信号的下降沿将此地址信息锁存在三片 8282 中。3.数据信息的给出时间分两种: 总线读周期时,数据信息在 T3、T W、T 4 中间给出; 总线写周期时,数据信息在 T2、T 3、T W、T 4 中间给出。4.时序图如下:T1 T2 T3 TW T4地址 状 态 输 出地址 数 据 输 出地址 数 据 输 入BHE 输出2.16 画出 8086 最小模式时的读周期时序。答:见书 27 页图 2.11 所示。2.17 8086 最多可有多少个中断?按照产生中断的方法分为哪两
14、大类?答:1.8086 最多可有 256 个中断。2.按照产生中断的方法分为硬件中断和软件中断两大类。2.18 非屏蔽中断有什么特点?可屏蔽中断有什么特点?分别用在什么场合?答:1.非屏蔽中断的特点有:中断请求从 NMI 引腿进入,不受中断允许标志 IF 的影响。非屏蔽中断只有一个,其中断类型码为 2。2.可屏蔽中断的特点有:中断请求从 INTR 引腿进入,只有在 IF=1 时 CPU 才响应该中断。可屏蔽中断有若干个,其中断类型码可以是 5255。3.非屏蔽中断用来处理系统的重大故障,如掉电等。可屏蔽中断用在一般外部设备申请的中断中。2.19 什么叫中断向量?它放在那里?对应于 1CH 的中
15、断向量存放在哪里?如果 1CH 的中断处理子程序从 5110H:2030H 开始,则中断向量应怎样存放?答:1.中断处理子程序的入口地址就是中断向量。BHE/S7A19/S6A16/S3CLKAD15AD0AD15AD0ALE第 6 页 共 37 页2.中断向量放在 0 段的 03FFH 区域的中断向量表中。3.对应于类型号为 1CH 的中断向量应放在 0007000073H 的 4 个单元中。4.若 1CH 的中断向量为 5110H:2030H,则中断向量的存放方法为:00070H 存放30H,00071H 存放 20H (IP);00072H 存放 10H,00073H 存放 51H (C
16、S)。2.20 从 8086/8088 的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?答:应该选择在中断类型码为 32(20H)255(FFH)范围。2.21 非屏蔽中断处理程序的入口地址怎样寻找?答:CPU 在响应 NMI 引腿的中断请求时, CPU 并不需要从中断类型码计算中断向量的地址,而是直接从中断向量表中读取 000080000BH 这 4 个单元对应于中断类型 2 的中断向量就行了。CPU 将 00008H、00009H 两个单元的内容装入 IP,而将0000AH、0000BH 两个单元的内容装入 CS,于是就转入了对非屏蔽中断处理程序的执行。2.22 叙
17、述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中为什么内容?答:首先在 CPU 的 INTR 引腿上有可屏蔽中断请求输入,且 IF=1。在当前指令执行完后,CPU 发两个 INTA中断响应负脉冲,外设接到第二个负脉冲后,立即往数据线上给CPU 送来中断类型码。然后 CPU 取中断类型码,将标志 FR 推入堆栈,清除 IF 和TF,再将 CS 和 IP 推入堆栈来保护断点,进入中断处理子程序并执行,最后弹出 IP和 CS 及标志而中断返回。中断响应后,堆栈顶部四个单元的内容分别是:IPL、IP H、CS L、CS H。2.23 一个可屏蔽中断请求来到时,通常只要中断
18、允许标志为 1,便可在执行完当前指令后响应,在哪些情况下有例外?答:1.正好遇到 CPU 执行封锁指令时,必须等下一条指令执行完后才响应中断。2.正好执行往段寄存器传送数据的指令,必须等下一条指令执行完后才响应中断。3.执行 WAIT 或串操作指令时,可在指令执行中响应中断。2.24 在对堆栈指针进行修改时,要特别注意什么问题?为什么?答:1.必须先修改堆栈段寄存器 SS 的值,接着修改堆栈指针 SP 的值。2.因为,CPU 在修改段寄存器值时不响应中断,待下一条指令执行后才响应中断。这样对 SS、SP 的修改是一个完整的过程。否则先修改 SP 后修改 SS 则可能中断响应而分开修改,导致堆栈
19、指针的错误,因此 CS、IP、FR 进入错误的堆栈区域而破坏第 7 页 共 37 页该单元的数据或程序。2.25 在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?有些寄存器即使在中断处理子程序中并没有用到也需要保护,这又是为什么(联系串操作指令执行时遇到中断这种情况来回答)?答:1.因为中断处理子程序运行时需要使用 CPU 内部的寄存器,这些寄存器的值发生了改变。因此若不加保护在返回原程序时就修改了断点处的现场,而使程序不能正常运行。2.因为串操作指令允许在执行过程中进入中断,若与串操作有关的寄存器未保护好,中断返回时串操作指令就不能正常继续运行。而且还有隐含寻址问题。2.26 一个
20、可屏蔽中断响应时,CPU 要执行哪些读/写周期?对一个软件中断又如何?答:1.对可屏蔽中断响应,CPU 要执行的读/写周期如下: 执行两个中断响应总线周期。并取得中断类型码。 执行一个总线写周期。标志寄存器 FR 值入栈。 执行一个总线写周期。CS 值入栈。 执行一个总线写周期。IP 值入栈。 执行一个总线读周期。读取中断处理子程序入口地址的偏移量IP。 执行一个总线读周期。读取中断处理子程序入口地址的段地址CS。2.若是一个软件中断,则跳过上述第步,而执行步。2.27 中断处理子程序在结构上一般是怎样一种模式?答: 保护中断时的现场,即保护 CPU 各寄存器的值。 一般应置 IF=1 来开放
21、中断,以允许级别较高的中断请求进入。 中断处理的具体内容。 恢复中断时的现场。 中断返回指令。2.28 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么不同之处?答:1.软件中断有如下特点: 用一条中断指令进入中断处理子程序,并且,中断类型码由指令提供。 进入中断时,不需要执行中断响应总线周期。 不受中断允许标志 IF 的影响。 软件中断的优先级最高。第 8 页 共 37 页 软件中断没有随机性。2.软件中断允许在主程序和中断处理子程序之间传递数据。而硬件中断由于是随机的,所以不能传递数据。2.29 8086 存储空间最大为多少?怎样用 16 位寄存器实现对 20
22、 位地址的寻址?答:1.8086 存储空间最大为 220=1MB。2.采用分段的方法实现 16 位寄存器实现对 20 位地址的寻址。物理地址=段基址10H+ 偏移地址2.30与前几代 CPU 相比,Pentium 主要采用了哪些先进的技术?答:与前几代产品相比,Pentium 采用了多项先进的技术,其中最重要的是先进的体系结构、CISC 和 RISC 相结合的技术、超标量流水线技术、分支预测技术。2.35 什么叫超标量流水线技术?Pentium 有哪两条流水线?两条流水线有什么区别?答:1.所谓超标量流水线技术,就是在一个处理器中有多条指令流水线的技术。2.在 Pentium 中,采用 U 和
23、 V 两条流水线。3.在 U 流水线中可以执行任何指令,但在 V 流水线中只能执行和 U 流水线当前执行的指令符合配对规则的指令2.37 分支预测技术是基于怎样的规律而实施的?叙述分支预测技术的实现原理答:1.分支转移指令的转移目标地址是可以预测的,预测的依据就是前一次的转移目标地址即所谓的历史状态 2.见书 40 页2.40 Pentium 有哪三种工作方式?为什么要这么多工作方式?答:1.实地址方式、保护虚拟地址方式(保护方式/本性方式) 、虚拟 8086 方式2.略2.43 Pentium 通常工作于什么方式?能够一开机就进入这种方式吗?答:1.保护方式2.不能,通常开机或复位后,先进入
24、实地址方式完成初始化,便立刻转到保护方式。2.52 Pentium 的逻辑地址、线性地址、物理地址分别指什么?它们的寻址能力分别为多少?答:1.逻辑地址就是程序员所看到的地址,也叫虚拟地址。线性地址是单一的 32 位地址。物理地址和芯片引脚上的地址信号相对应,它为每个存储单元在存储体中指定唯一的地址。2.都是 32 位2.55 Pentium 采用哪几种描述符表?这些表的设置带来什么优点?答:1.全局描述符表(GDT) 、局部描述符表(LDT)、中断描述符表(IDT)2. 1.可大大扩展存储空间2.可实现虚拟储存3.可实现多任务隔离2.67Pentium 的中断机制和 16 位 CPU 有什么
25、差别?答:Pentium 的中断机制和 16 位 CPU 类似,但 Pentium 对中断的含义进行了扩展,它把指令执行过程中产生的错误以及错误处理过程也归为中断处理范畴,并将此与通常的内部中断和软件中断一起称为“异常” 。第三章 8086 的寻址方式和指令系统3.1 Pentium 的寻址方式有哪几类?用哪一种寻址方式的指令之行的速度最快?答:1.立即数寻址、寄存器寻址、输入输出寻址、存储器寻址。2.立即数寻址。第 9 页 共 37 页3.2 用立即数寻址的指令要注意什么?答:立即数只能作为源操作数,不能作为目的操作数立即数寻址一般用于对寄存器赋值因为操作数可从指令中直接取得,不需要总线周期
26、,所以,立即数寻址方式的显著特点就是速度快3.3 输入输出指令有哪两类?使用这两类指令要注意什么?答:1.I/O 直接寻址、I/O 间接寻址2.I/O 直接寻址时,寻址范围为 0255,即最大端口号为 FFH。I/O 间接寻址时,只能用 DX 寄存器,寻址范围为 065535,即最大端口号为FFFFH。3.12 用加法指令设计一个简单程序,实现两个 16 位十进制数的相加,结果放在被加数单元。答:mov ax , 被加数mov bx , 加数add ax ,bx第四章 存储器和高速缓存技术4.1 存储器分为哪两大类?分别有什么特点?答:1.计算机的存储器根据用途和特点可分为两大类,一类叫内部存
27、储器,简称内存或主存;另一类叫外部存储器,简称外存。2.因为内存可以由 CPU 直接存取,再加上一般都用快速存储器件来构成内存,这就使内存的存取速度很快。但是,内存空间大小受到地址总线位数的限制。外存的特点是容量大,大部分外存所存信息即可保存又可修改,但所有外存的速度都比内存慢。 4.2 在选择存储器件时,最重要的考虑因素是什么?此外还应考虑哪些因素?答:1.最重要的考虑因素是:易失性、只读性、位容量和速度。2.此外还应考虑:功耗、可靠性和价格等因素。(4.5)什么叫静态 RAM?静态 RAM 有什么特点?答:1.在电源不断电的情况下,信息一旦写入后不会丢失的 RAM 就叫静态 RAM。2.静
28、态 RAM 的特点有:不需刷新,因此简化了外部电路;但位容量较类似方法设计的动态 RAM 少,且功耗较大。4.5 RAM 有哪几种类型?各有什么性能特点?答:1.RAM 按其机构和工作原理分为静态 RAM 即 SRAM 和动态 RAM 即 DRAM。2.SRAM 速度快,不需要刷新,但片容量低,功耗大。DRAM 片容量高,但需要刷新,否则其中的信息就会丢失。4.10 微型机系统中的存储器的层次化总体结构是如何实现的?系统在运行时存储器各层次之间如何协调?答:1.用 Cache、内存和辅存来构成层次化的存储器,按使用频度将数据分为不同的档次分放在不同的存储器中,不同层次的存储之间可互相传输。2.
29、Cache、内存和辅存的内容通过高速缓存技术和虚拟存储技术来自动进行转换和调度。4.15 什么叫存储器的逻辑地址?什么叫存储器的线性地址?答:1.逻辑地址就是程序员所看到的地址,也叫虚拟地址。2.线性地址是单一的 32 位地址。4.20Pentium 系统中,有几种描述符表?局部描述符表和全局描述符表之间有什么关系?在系统运行中,两者是用什么参数来选择的?第 10 页 共 37 页答:1.全局描述符表(GDT) 、局部描述符表(LDT)、中断描述符表(IDT)2.GDT 包含各个局部描述符表 LDT 对应的描述符,而 LDT 只含有与某一个给定任务相关的各个段的描述符。3.段寄存器中的段选择子
30、4.33Cache 的组织方式有哪几种?各有什么特征?答 1.全相联方式、直接映像方式、组相联方式。2.全相联方式:按这种方式,主存的一个区块可能映像到 Cache 的任何一个地方。直接映像方式:在这种方式下,主存的一个区块只能映像到 Cache 的一个对应的地方。组相联方式:在这种方式下,将 Cache 分成均等容量的几路,每一路又含许多组,各路中,组的数量和编号相同,每一组又含一个或多个区块。通过约定的机制使主存的一个区块只能映像到 Cache 的指定组号和指定块号的区块,但可以映像到不同路中的相应区块。4.38Cache 的数据一致性指什么?Cache 通写式和回写式的含义是什么?答:1
31、.主存和 Cache 的数据保持一致称为 Cache 的数据一致性。 2.通写式:如用这种方法,那么,每当 CPU 把数据写回到 Cache 中时,Cache 控制器也立即把数据写入主存对应位置。回写式:用这种方式时,Cache 每一个区块的标记中都要设置一个更新位,CPU 对 Cache中的一个区块写入后,如未更新相应的主存区块,则更新位置 1.在每次对 Cache 写入时,Cache控制器需先检查更新位,如为 0,则可直接写入,反之,则 Cache 控制器先把 Cache 现有内容写入主存相应位置,再对 Cache 进行写入。4.39Cache 系统中的 Cache 控制器主要完成那些功能
32、?答:Cache 和主存的映像关系处理、未命中 Cache 时的处理、Cache 的数据更新。第五章 微型计算机和外设的数据传输5.1 外部设备为什么要通过接口电路和主机系统相连?存储器需要接口电路和总线相连吗?为什么?答:1.因为外设的功能多种多样,对于模拟量信息的外设必须要进行 A/D 和 D/A 转换,而对于串行信息的外设则必须转换为并行的信息,对于并行信息的外设还要选通。而且外设的速度比 CPU 慢的多,必须增加缓冲功能。只有这样计算机才能使用这些外设。而所有这些信息转换和缓冲功能均由接口电路才能完成。2.存储器不需要接口电路和总线相连。3.因为存储器功能单一,且速度与 CPU 相当。
33、因此可直接挂在 CPU 总线上。5.2 是不是只有串行数据形式的外设需要接口电路和主机系统连接?为什么?答:1.不是。并行数据形式的外设也需要接口电路和主机系统连接。2.因为,CPU 每次只能访问一个外设,因此并行信息的外设需增加选通功能,才能满足 CPU 的访问要求,必须用接口电路。5.3 接口电路的作用是什么?按功能可分为几类?答:1.接口电路的作用就是在外设和 CPU 之间起信息变换和缓冲功能。2.按功能可分为两类: 一种是使微处理器正常工作所需要的辅助电路。 另一种是输入/输出接口电路。第 11 页 共 37 页5.4 数据信息有哪几类?举例说明它们各自的含义。答:1.数据信息有四类:
34、数字量、模拟量、开关量、脉冲量。2.如键盘、磁带机等就是数字量信息;温度、湿度、压力等转换的电信号就是模拟量;电机的起停、发光设备的亮灭等都是开关量;计数脉冲、定时脉冲等都是脉冲量。5.5CPU 和输入 /输出设备之间传送的信息有哪几类?答:有数据信息、控制信息、状态信息三类。5.6 什么叫端口?通常有哪几类端口?计算机对 I/O 端口编址时通常采用哪两种方法?在8086/8088 系统中,用哪种方法对 I/O 端口进行编址?答:1.CPU 和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为 I/O 端口。2.有数据端口、控制端口、状态端口三类。3.在微型计算机中通常用
35、两种 I/O 端口编址方式:存储器映象寻址和 I/O 端口单独寻址。4.在 8086/8088 系统中,用 I/O 端口单独寻址方式编址。5.7 为什么有时候可以使两个端口对应一个地址?答:因为这两个端口一个是只读端口,一个是只写端口。而 CPU 对一个 I/O 端口地址可进行读/写两种访问。如果将这两个只读和只写端口编为一个地址,则 CPU 对该端口地址读操作对应的是只读端口;CPU 对该端口地址写操作则对应的是只写端口,互不影响。因此可以使两个单向的只读和只写端口对应一个端口地址。5.8CPU 和外设之间的数据传送方式有哪几种?实际选择某种传输方式时,主要依据是什么?答:1.CPU 和外设
36、之间的数据传送方式有三种:程序方式、中断方式、DMA 方式。2.主要依据是外设的情况(外设的速度和外设提供信息的方式) 。5.9 无条件传送方式用在哪些场合?画出无条件传送方式的工作原理图并说明。答:1.无条件传送方式只用在对一些简单外设进行操作的场合。如开关、LED 显示等。2.无条件传送方式的工作原理图:(见书 203 页图 5.2 所示) 在无条件输入时:CPU 执行一条输入指令,使 RD和 M/ IO信号为有效低电平,并对应送出该端口地址,因此选中输入缓冲器,打开其三态门,使输入缓冲器的数据经数据总线送到 CPU 的累加器中。 在无条件输出时:CPU 执行一条输出指令,使 W和 M/
37、I信号为有效低电平,并对应送出该端口地址,因此选中输出锁存器,将由累加器送到数据总线上的数据打入输出锁存器中供外设使用。第 12 页 共 37 页5.10 条件传送方式的工作原理是怎样的?主要用在什么场合?画出条件传送(查询) 方式输出过程的流程图。答:1.条件传送方式的工作原理是:外设给 CPU 提供一个状态信息,当 CPU 要访问外设时,必须先检测该状态信息是否合乎要求,不停检测直至合乎要求时才进行 CPU对外设的访问。2.查询方式主要用在外设较少,数据交换不频繁的非实时系统的场合。3.查询式输出过程的流程图如右:5.11 设一个接口的输入端口地址为 0100H,而它的状态端口地址为010
38、4H,状态口中第 5 位为 1 表示输入缓冲区中有一个字节准备好,可输入。设计具体程序实现查询式输入。答:DATA SEGMENTBUFFER DB 20 DUP(?) ;接 收 数 据 缓冲 区DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTAT: MOV AX,DATA ;对 DS初始化MOV DS,AXMOV DI,OFFSET BUFFERMOV DX,0104HSTATIN: IN AL,DXTEST AL,20H ;测试第 5 位JZ STATIN ;第 5 位为 0 继续测试MOV DX,0100HIN AL,DX ;输入数据MOV DI
39、,ALCODE ENDSEND STAT5.12 查询式传送方式有什么缺点?中断方式为什么能弥补查询方式的缺点?答:1.查询式传送方式缺点是:花费 CPU 的时间作等待循环,大大降低了 CPU 的运行效率。2.中断方式是在外设准备就绪时向 CPU 申请中断,再进行传送,因而 CPU 无需花费开始初始化外 设 空 吗 ?CPU 从内存取数由累加器输出给外设外 设 空 吗 ?YNNY后续处理第 13 页 共 37 页时间作等待循环,弥补了查询方式的缺点。5.13 画一个用中断方式进行输出传输的接口电路。答:中断方式输出的接口电路如下:5.14 叙述可屏蔽中断的响应和执行过程。答: 接口发中断请求信
40、号。 CPU 的 IF=1 时,当前指令执行完后, CPU 进行中断回答,发两个 INTA负脉冲。 接口将中断类型号 n 送 CPU。 当前的 PSW、CS 和 IP 推入堆栈,并清除 IF 和 TF。 (4n) 作为 IP,(4n+2)作为 CS,即取中断向量。 执行中断子程序,并开中断。 中断返回 IRET 指令使 IP、CS 和 PSW 弹出堆栈。 返回被中断的程序。5.15 通常解决中断优先级的方法有哪几种?各有什么优缺点?答:1.有软件查询方式、简单硬件方式菊花链法、专用硬件方式三种。2.软件查询方式的优点是节省硬件,缺点是中断响应时间长;简单硬件方式的优点是中断响应时间短,硬件较简
41、单,缺点是优先级固定,变动起来很麻烦;专用硬件方式优点是对优先级可编程修改,中断管理非常方便,缺点是硬件复杂的多,好在有专用的中断控制器。5.17 和 DMA 比较,中断传输方式有什么不足之处?答:CPU 执行一次传送要花费许多与传送操作无关的指令执行等时间,另外中断传送方式不能进行数据块传送,而是按字节或字传送。DB数据锁存器RQ DACK+5V中断屏蔽触发器Q中断请求Q DBUSY+5VINTR (中断请求)选通信号M/IOWRINTA端口译码AB第 14 页 共 37 页5.20 叙述用 DMA 方式传送单个数据的全过程。答: 接口准备就绪,发 DMA 请求信号给 DMA 控制器。 DM
42、A 控制器向 CPU 转发总线请求信号 HOLD。 CPU 向 DMA 控制器发总线请求允许信号 HLDA,DMA 控制器得到总线控制权。 DMA 控制器把地址送地址总线。 DMA 控制器向接口发 DMA 请求确认信号。 内存和接口通过数据总线传送数据。 DMA 控制器撤销总线请求信号 HOLD。 8086 CPU 收回总线控制权。5.21 DMA 控制器的地址线为什么是双向的?什么时候往 DMA 控制器传输地址?什么时候DMA 控制器往地址总线传输地址?答:1.因为 DMA 控制器要接受 CPU 的控制,接收 CPU 发来的初始化等信息,这要求地址线来寻址各端口,地址线为输入线。又因为 DM
43、A 控制器可控制总线,这要求地址线为输出。所以地址线必须为双向才行。2.CPU 要对 DMA 控制器发初始化信息时,必须往 DMA 控制器传输地址。3.DMA 控制器得到总线控制权后,向地址总线传输地址。5.22 在设计 DMA 传输程序时,要有哪些必要的模块?设计一个启动数据块输出的程序段。答:1.要有 DMA 的初始化模块:对字节计数器、地址寄存器和控制寄存器置初值。还要有对接口部件设置控制字的模块:指出数据传输方向,并启动 I/O 操作。2.启动数据块输出的程序段如下:IDLO: IN AL,INTSTAT ;接口状态寄存器的状态位(2)是否忙TEST AL,04JNZ IDLO ;忙,
44、则等待MOV AX,COUNT ;不忙,则设置计数初值OUT BYTE_REG,AX ;对字节计数器 BYTE_REG 初始化LEA AX,BUFFER ;设置地址初值OUT ADD_REG,AX ;对 DMA 地址寄存器 ADD_REG 初始化MOV AL,DMAC ;取原 DMA 控制字OR AL,08H ;设置方向为输出OUT DMACON,AL ;置 DMA 控制字MOV AL,INTC ;取原接口控制字OR AL,04H ;设置传输方向为输出及允许第 15 页 共 37 页OUT INTCON,AL ;置接口控制字后续处理第六章 串并行通信和接口技术6.1 接口部件的输入/输出操作具
45、体对应哪些功能,举例说明。答:1.具体对应的功能为:寻址功能、输入/输出功能、数据转换功能、联络功能和错误检测功能等。2.例如串行输入操作:首先要将串行输入的数据转换为并行输入的数据放入输入缓冲器,然后发一个准备好信号通知 CPU 来读取该输入寄存器的内容。从而完成一个串行数据的输入过程。其中在数据转换时自动检测传输的错误。6.2 从广义上说接口部件有哪些功能?答:寻址功能、输入/输出功能、数据转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测功能。6.3 怎样进行奇/偶校验?如果用偶校验,现在所传输的数据中 1 的个数为奇数,那么,校验位应为多少?答:1.用奇/偶校验位对传输错
46、误进行检测。传输时,如果用奇校验,那么使信息中 1 的数目( 包括校验位) 为奇数。即所传输的数据中 1 的个数为奇数,则使校验位为 0;若所传输的数据中 1 的个数为偶数,则使校验位为 1。这样奇校验时,在传输一个数据时,1 的总数目总是为奇数。同样若用偶校验,信息中 1 的数目(包括校验位)为偶数。2.偶校验时,所传输的数据中 1 的个数为奇数,则校验位应为 1。6.4 什么叫覆盖错误?接口部件如何反映覆盖错误?答:1.接口的数据缓冲寄存器中的数据还未被取走,由于某种原因又被装上了新的数据,就会产生一个覆盖错误。2.在产生覆盖错误时,接口会在状态寄存器中设置相应的状态位来反映。6.5 接口
47、部件和总线之间一般有哪些部件?它们分别完成什么功能?答:1.外部逻辑电路和地址译码器。2.外部逻辑电路把 CPU 送来的一些控制信号翻译成联络信号。地址译码器将总线提供的 I/O 地址翻译成对接口的片选信号。6.6 为什么串行接口部件中的 4 个寄存器可以只用 1 位地址线来进行区分?第 16 页 共 37 页答:一位地址线可编址二个地址,再加上读和写信号可对 2 个只读寄存器和 2 个只写寄存器进行端口寻址。而串行接口部件的控制寄存器和数据输出寄存器是只写的,状态寄存器和数据输入寄存器是只读的,所以可用一位地址线来区分。6.7 在数据通信系统中,什么情况下可以采用全双工方式,什么情况下可用半
48、双工方式?答:对于近距离较大信息量的传输应采用全双工方式。而对于远距离或较少信息量的传输或单向的输入或输出设备时应采用半双工方式。6.8 什么叫同步通信方式?什么叫异步通信方式?它们各有什么优缺点?答:1.在同一时钟控制下需用同步字符同步的信息按组传送的方式叫同步通信方式。2.在两个相近频率的时钟分别控制下只需一个起始位的信息按字符传送的方式叫异步通信方式。3.在传输率相同时同步方式的信息有效率要比异步方式下的高。但同步方式必须传送时钟信号,异步方式只要两端的时钟频率相近即可。6.9 什么叫波特率因子?什么叫波特率?设波特率因子为 64,波特率为 1200,时钟频率为多少?答:1.波特率因子:
49、时钟频率和位传输率的比值。此比值必须为 16、32 或 64。2.波特率:位传输率即为波特率。3.时钟频率=波特率因子波特率=641200=76800Hz。6.10 标准波特率系列指什么?答:国际上规定的波特率标准值为:110、300、600、1200、1800、2400、4800、9600 和19200、 、38400、57600、115200。6.11 设异步传输时,每个字符对应 1 个起始位、7 个信息位、1 个奇/偶校验位和 1 个停止位,如果波特率为 9600,则每秒钟能传输的最大字符数为多少?答:每个字符所占的总位数为:1+7+1+1=10 位。所以每秒钟能传输的最大字符数为9600/10=960 个字符。6.12 从 8251A 的编程结构中,可以看到 8251A 有几个寄存器与外部电路有关?一共要几个端口地址?为什么?答:1.有 7 个寄存器与外部电路有关。2.要 2 个端口地址。3.因为,一个数据输入缓冲寄存器为只写,一个数据输出缓冲寄存器为只读,可共用一个端口地址,在读/写信号配合下进行读/ 写操作。一个模式寄存器、2 个同