微型计算机技术及应用习题解答++戴梅萼

更新时间:2024-05-12 01:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《微机原理与接口技术》

教案之习题答案

与戴梅萼编著的

《微型计算机技术及应用》

一书配套使用

喻 其 山 2005年10月18日

第 1 章 第 2 章 第 3 章 第 4 章 第 5 章 第 6 章 第 7 章 第 8 章 第 9 章 第 10 章第 11 章 第 12 章第 13 章第 14 章第 15 章微型计算机概述 ................................................................................................. 1 8086微处理器 .................................................................................................... 1 8086的寻址方式和指令系统 ............................................................................ 7 存储器和高速缓存技术 ..................................................................................... 8 微型计算机和外设的数据传输 ......................................................................... 9 串并行通信和接口技术 ................................................................................... 12 中断控制器、DMA控制器和计数器/定时器 ............................................... 19 模/数和数/模转换 ............................................................................................ 29 键盘和LED显示器 ......................................................................................... 31 CRT技术 .......................................................................................................... 34 打印机接口技术 ............................................................................................... 35 软盘、硬盘和光盘子系统 ............................................................................... 38 总线 ................................................................................................................... 38 主机系统的结构和工作原理 ........................................................................... 39 微型机操作系统 ............................................................................................... 44

7864629.docxx - 1 - 作者:喻其山

第 1 章

1.1

微型计算机概述

微处理器、微型计算机和微型计算机系统三者之间有什么不同?

答:① 微处理器是微型计算机的核心,是微型计算机的一部分。它是集成在一块芯片上的CPU,

由运算器和控制器组成。 ② 微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主体。 ③ 微型计算机系统包括微型计算机、外设及系统软件三部分。 CPU在内部结构上由哪几部分组成?CPU应具备哪些主要功能? 答:1.CPU在内部结构上由以下几部分组成:

① 算术逻辑部件(ALU); ② 累加器和通用寄存器组;

③ 程序计数器(指令指针)、指令寄存器和译码器; ④ 时序和控制部件。

2.CPU应具备以下主要功能: ① 可以进行算术和逻辑运算; ② 可保存少量数据;

③ 能对指令进行译码并执行规定的动作; ④ 能和存储器、外设交换数据;

⑤ 提供整个系统所需要的定时和控制; ⑥ 可以响应其他部件发来的中断请求。

累加器和其他通用寄存器相比,有何不同?

答:许多指令的执行过程以累加器为中心;输入/输出指令一般也以累加器来完成。

微处理器的控制信号有哪两类?

答:一类是通过对指令的译码,由CPU内部产生的。这些信号由CPU送到存储器、I/O接口电路

和其他部件。另一类是微型机系统的其他部件送到CPU的。通常用来向CPU发出请求。如中断请求、总线请求等。 微型计算机采用总线结构有什么优点?

答:首先是系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。其次是一个部件

只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩充。 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么,要靠什么来区分地址或数据?

答:1.数据总线是双向三态;地址总线是单向输出三态。

2.数据和地址复用时,必须有一个地址选通信号来区分该总线上输出的是地址还是数据。 控制总线传输的信号大致有哪几种?

答:包括CPU送往存储器和I/O接口的控制信号,如读信号、写信号、中断响应信号、存储器和I/O

接口区分信号等。还包括其他部件送到CPU的信号,如时钟信号、中断请求信号、准备就绪信号等。

1.2

1.3 1.4

1.5

1.6

1.7

第 2 章

2.1

8086微处理器

总线接口部件有哪些功能?请逐一进行说明。

答:1.总线接口部件的功能是负责与存储器、I/O端口传送数据。

2.具体讲:① 总线接口部件要从内存取指令送到指令队列;

② CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端

7864629.docxx - 2 - 作者:喻其山

口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或外设端口中。

2.2

8086的总线接口部件由哪几部分组成?

答:4个段地址寄存器CS、DS、ES、SS;16位的指令指针寄存器IP;20位的地址加法器;6字节

的指令队列。 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?

答:1.该指令的物理地址=CS×10H+IP=21F00H。

2.指向这一物理地址的CS值和IP值不是唯一的。 8086的执行部件有什么功能?由哪几部分组成? 答:1.8086的执行部件的功能是负责指令的执行。

2.4个通用寄存器AX、BX、CX、DX;4个专用寄存器BP、SP、SI、DI;标志寄存器FLAGS和算术逻辑单元ALU。 状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?8086的状态标志和控制标志分别有哪些?

答:1.不同之处在于:状态标志由前面指令执行操作的结果对状态标志产生影响,即前面指令执行

操作的结果决定状态标志的值。控制标志是人为设置的。

2.利用状态标志可进行计算和判断等操作。利用控制标志可对某一种特定功能(如单步操作、可屏蔽中断、串操作指令运行的方向)起控制作用。

3.8086的状态标志有:SF、ZF、PF、CF、AF和OF计6个。 8086的控制标志有:DF、IF、TF计3个。 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?

答:1.传统的计算机在执行指令时,指令的提取和执行是串行进行的。8086/8088 CPU的总线接口

部件和执行部件在提取和执行指令时是并行同时工作的。

2.8086/8088 CPU的设计思想有力地提高了CPU的工作效率,这也正是8086/8088成功的原因之一。 总线周期的含义是什么?8086/8088的基本总线周期由几个时钟组成?如一个CPU的时钟频率为24MHz,那么,它的一个时钟周期为多少?一个基本总线周期为多少?如主频为15MHz呢? 答:1.总线周期的含义是总线接口部件完成一个取指令或传送数据的完整操作所需的最少时钟周期数。

2.8086/8088的基本总线周期由4个时钟周期组成。

3.当主频为24MHz时,Tφ=1/24MHz≈41.7ns,T总=4Tφ≈167ns。 4.当主频为15MHz时,Tφ=1/15MHz≈66.7ns,T总=4Tφ≈267ns。 在总线周期的T1、T2、T3、T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态TW?TW在哪儿插入?怎样插入?

答:1.在总线周期的T1、T2、T3、T4状态,CPU分别执行下列动作:

① T1状态:CPU往多路复用总线上发出地址信息,以指出要寻找的存储单元或外设端口的地址。

② T2状态:CPU从总线上撤销地址,而使总线的低16位浮置成高阻状态,为传输数据做准备。总线的高4位(A19~A16)用来输出本总线周期的状态信息。

③ T3状态:多路总线的高4位继续提供状态信息。低16位(8088为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。 ④ T4状态:总线周期结束。

2.当被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好的信号”,于是CPU会在T3之后插入一个或多个附加的时钟周期TW。 3.TW插在T3状态之后,紧挨着T3状态。

4.插入的TW状态时的总线上的信息情况和T3状态的信息情况一样。当CPU收到存储器或外设完成数据传送时发出的“准备好”信号时,会自动脱离TW状态而进入T4状态。

2.3

2.4

2.5

2.6

2.7

2.8

7864629.docxx - 3 - 作者:喻其山

2.9

从引腿信号上看,8086和8088有什么区别?

答:① 8086有16根数据/地址复用总线,8088只有8根,称AD7~AD0。

② 8086的第28腿为M/IO,8088的第28腿为M/IO (为兼容8080等)。 ③ 8086的第34腿为BHE/S7,8088的第34腿为SS0。

2.10 在对存储器和I/O设备读写时,要用到IOR、IOW、MR、MW信号,这些信号在最大模式和最小

模式时分别可用怎样的电路得到?请画出示意图。 答:1.最小模式(以8086为例):

M/IO M/IO IOR IOW RD WR M/IO RD 2.最大模式:用8288总线控制器来实现。

MR M/IO WR MW 2.11 CPU启动时,有哪些特征?如何寻找8086/8088系统的启动程序?

答:1.CPU启动时,有以下特征:

① 内部寄存器等置为初值; ② 禁止中断(可屏蔽中断); ③ 从FFFF0H开始执行程序; ④ 三态总线处于高阻状态。

2.8086/8088系统的启动程序从FFFF0H单元开始的无条件转移指令转入执行。

2.12 CPU在8086的微机系统中,为什么常用AD0作为低8位数据的选通信号?

答:因为每当CPU和偶地址单元或偶地址端口交换数据时,在T1状态,AD0引腿传送的地址信号

必定为低电平。而CPU的传输特性决定了只要是和偶地址单元或偶地址端口交换数据,则CPU必定通过总线低8位即AD7~AD0传输数据。可见AD0可以用来作为接于数据总线低8位上的8位外设接口芯片的选通信号。 2.13 8086和8088在最大模式或最小模式时,引腿信号分别有什么不同? 答:在此两种模式中,只有第24~31腿的信号不同。 24 25 26 27 28 29 引腿号 最小模式信号 INTA ALE DEN DT/R M/IO WR QS1 QS0 最大模式信号 LOCK S0 S2 S 130 HLDA RQ/GT1 31 HOLD RQ/GT0 另外8088的第34腿在最大模式时为高电平,最小模式时为SS0状态信号。8088的第28腿在最小模式时为M/IO信号。

2.14 8086和8088是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平?

答:1.在总线周期的T1状态,复用总线用来输出要访问的存储器或I/O端口的地址给地址锁存器

8282(3片)锁存;在其他状态为传送数据或作传送准备。地址锁存器8282在收到CPU发出的地址锁存允许信号ALE后,锁存地址。

2.ALE信号在每个总线周期的T1状态为有效高电平。 2.15

BHE信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的?这种组合决定了8086系

统中存储器偶地址体及奇地址体之间应该用什么信号来区分?怎样区分? 答:1.组合情况如下: 操 作 所用的数据引腿 BHE A0 0 0 从偶地址开始读/写一个字 AD15~AD0 1 0 从偶地址单元或端口读/写一个字节 AD7~AD0 0 1 从奇地址单元或端口读/写一个字节 AD15~AD8 0 1 从奇地址开始读/写一个字(在第一个总线周期,AD15~AD8

7864629.docxx - 4 - 作者:喻其山 将低8位数送AD15~AD8, 在第二个总线周期,AD7~AD0 将高8位数送AD7~AD0) 2.用A0信号来区分偶地址体和奇地址体。 3.当A0=0时选中偶地址体,A0=1时选中奇地址体。

2.16 RESET信号来到后,CPU的状态有哪些特点?

答:复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器FR、IP、DS、SS、ES、其他

寄存器及指令队列清0,而将CS设置为FFFFH。当复位信号变为低电平后,CPU从FFFF0H单元开始执行程序。 2.17 在中断响应过程中,8086往8259A发的两个INTA信号分别起什么作用?

答:第一个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负

脉冲后,往数据总线上放中断类型码,从而CPU得到了有关此中断请求的详尽信息。 2.18 总线保持过程是怎样产生和结束的?画出时序图。

答:1.当系统中CPU之外的另一个主模块要求占用总线时,通过HOLD引腿向CPU发一个高电平

的请求信号。如果CPU此时允许让出总线,就在当前总线周期完成时,于T4状态从HLDA引腿发出一个应答信号,对刚才的HOLD请求做出响应。同时,CPU使地址/数据总线和控制状态线处于浮空状态。总线请求部件收到HLDA信号后,就获得了总线控制权,在此后一段时间,HOLD和HLDA都保持高电平。在总线占有部件用完总线之后,会把HOLD信号变为低电平,表示现在放弃对总线的占有。8086/8088收到低电平的HOLD信号后,也将HLDA变为低电平,这样,CPU又获得了地址/数据总线和控制状态线的占有权。 2.时序图为:

T4/TI 1 0 采样 CLK HOLD HLDA 三态引腿

高阻 采样 2.19 8086系统在最小模式时应该怎样配置?请画出这种配置并标出主要信号的连接关系。

答:1.8086系统在最小模式时的配置是:8086CPU一片,8284A时钟发生器一片,8282地址锁存

器三片,8286总线收发器二片。 2.连接关系为: RESET 8284A READY 8282 (3片) BHE CLK RESET

READY

STB ALE

BHE

地址总线 A19~A16

AD15~AD0 8286(2片)

OE 数据总线 DEN

T DT/R

8086

CPU 控制总线 7864629.docxx - 5 - 作者:喻其山

2.20 时钟发生器的功能是什么?画出它的线路图。

答:1.时钟发生器的功能是:提供频率恒定占空比符合标准的时钟信号,对准备好(READY)和复位

(RESET)信号进行同步。

2.线路图见书21页图2.7所示。 2.21 8086在最大模式下应当怎样配置?最大模式时为什么一定要用总线控制器?总线控制器的输入信

号是什么?输出信号是什么?

答:1.8086在最大模式下的配置是:8086CPU一片,8284A时钟发生器一片,8282地址锁存器三

片,8286总线收发器二片,8288总线控制器一片,8259A中断优先级管理部件一片。

2.因为在最大模式下,需要用外加电路来对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及总线收发器8286的控制信号。8288总线控制器就是完成上述这些功能的专用芯片。所以必须用总线控制器。

3.总线控制器的输入信号是:来自CPU的S2、S1、S0状态信息,时钟CLK信号,及决定本

身工作方式的信号IOB、AEN、CEN。

4.总线控制器的输出信号是:用来作为CPU进行中断响应的信号INTA,两组读/写控制信号MRDC、MWTC、IORC、IOWC,两个提前的写控制信号AMWC、AIOWC,送给地址锁存器的信号ALE,送给数据收发器的信号DEN和DT/R。

2.22 在编写程序时,为什么通常总要用开放中断指令来设置中断允许标志?

答:因为在复位时,标志寄存器FR被清0,则IF=0,禁止从INTR进入的可屏蔽中断,所以必须

在编写程序时,用指令来设置中断允许标志。 2.23 T1状态下,数据/地址复用总线上是什么信息?用哪个信号将此信息锁存起来?数据信息是在什么时

候给出的?用时序图表示出来。

答:1.T1状态下,数据/地址复用总线上是地址信息。

2.用ALE信号的下降沿将此地址信息锁存在三片8282中。 3.数据信息的给出时间分两种:

① 总线读周期时,数据信息在T3、TW、T4中间给出; ② 总线写周期时,数据信息在T2、T3、TW、T4中间给出。 4.时序图如下:

T1 T2 T3 TW T4

CLK

A19/S6~ 地址 状态 输出 A16/S3

AD15~AD0 地址 数据 输出

AD15~AD0 地址 数 据输 入

ALE

BHE/S7

BHE 输出 2.24 画出8086最小模式时的读周期时序。

答:见书27页图2.11所示。

2.25 8086最多可有多少个中断?按照产生中断的方法分为哪两大类?

答:1.8086最多可有256个中断。

2.按照产生中断的方法分为硬件中断和软件中断两大类。

7864629.docxx - 6 - 作者:喻其山

2.26 非屏蔽中断有什么特点?可屏蔽中断有什么特点?分别用在什么场合?

答:1.非屏蔽中断的特点有:中断请求从NMI引腿进入,不受中断允许标志IF的影响。非屏蔽中

断只有一个,其中断类型码为2。

2.可屏蔽中断的特点有:中断请求从INTR引腿进入,只有在IF=1时CPU才响应该中断。可屏蔽中断有若干个,其中断类型码可以是5~255。

3.非屏蔽中断用来处理系统的重大故障,如掉电等。可屏蔽中断用在一般外部设备申请的中断中。 2.27 什么叫中断向量?它放在那里?对应于1CH的中断向量存放在哪里?如果1CH的中断处理子程序

从5110H:2030H开始,则中断向量应怎样存放? 答:1.中断处理子程序的入口地址就是中断向量。

2.中断向量放在0段的0~3FFH区域的中断向量表中。

3.对应于类型号为1CH的中断向量应放在00070~00073H的4个单元中。

4.若1CH的中断向量为5110H:2030H,则中断向量的存放方法为:00070H存放30H,00071H存放20H (IP);00072H存放10H,00073H存放51H (CS)。 2.28 从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?

答:应该选择在中断类型码为32(20H)~255(FFH)范围。 2.29 非屏蔽中断处理程序的入口地址怎样寻找?

答:CPU在响应NMI引腿的中断请求时,CPU并不需要从中断类型码计算中断向量的地址,而是

直接从中断向量表中读取00008~0000BH这4个单元对应于中断类型2的中断向量就行了。CPU将00008H、00009H两个单元的内容装入IP,而将0000AH、0000BH两个单元的内容装入CS,于是就转入了对非屏蔽中断处理程序的执行。 2.30 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中为什么

内容?

答:首先在CPU的INTR引腿上有可屏蔽中断请求输入,且IF=1。在当前指令执行完后,CPU发

两个INTA中断响应负脉冲,外设接到第二个负脉冲后,立即往数据线上给CPU送来中断类型码。然后CPU取中断类型码,将标志FR推入堆栈,清除IF和TF,再将CS和IP推入堆栈来保护断点,进入中断处理子程序并执行,最后弹出IP和CS及标志而中断返回。中断响应后,堆栈顶部四个单元的内容分别是:IPL、IPH、CSL、CSH。 2.31 一个可屏蔽中断请求来到时,通常只要中断允许标志为1,便可在执行完当前指令后响应,在哪些

情况下有例外?

答:1.正好遇到CPU执行封锁指令时,必须等下一条指令执行完后才响应中断。

2.正好执行往段寄存器传送数据的指令,必须等下一条指令执行完后才响应中断。 3.执行WAIT或串操作指令时,可在指令执行中响应中断。 2.32 在对堆栈指针进行修改时,要特别注意什么问题?为什么?

答:1.必须先修改堆栈段寄存器SS的值,接着修改堆栈指针SP的值。

2.因为,CPU在修改段寄存器值时不响应中断,待下一条指令执行后才响应中断。这样对SS、SP的修改是一个完整的过程。否则先修改SP后修改SS则可能中断响应而分开修改,导致堆栈指针的错误,因此CS、IP、FR进入错误的堆栈区域而破坏该单元的数据或程序。 2.33 在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?有些寄存器即使在中断处理子程

序中并没有用到也需要保护,这又是为什么(联系串操作指令执行时遇到中断这种情况来回答)? 答:1.因为中断处理子程序运行时需要使用CPU内部的寄存器,这些寄存器的值发生了改变。因此

若不加保护在返回原程序时就修改了断点处的现场,而使程序不能正常运行。

2.因为串操作指令允许在执行过程中进入中断,若与串操作有关的寄存器未保护好,中断返回时串操作指令就不能正常继续运行。而且还有隐含寻址问题。 2.34 一个可屏蔽中断响应时,CPU要执行哪些读/写周期?对一个软件中断又如何?

答:1.对可屏蔽中断响应,CPU要执行的读/写周期如下:

① 执行两个中断响应总线周期。并取得中断类型码。

7864629.docxx - 7 - 作者:喻其山

② 执行一个总线写周期。标志寄存器FR值入栈。 ③ 执行一个总线写周期。CS值入栈。 ④ 执行一个总线写周期。IP值入栈。

⑤ 执行一个总线读周期。读取中断处理子程序入口地址的偏移量→IP。 ⑥ 执行一个总线读周期。读取中断处理子程序入口地址的段地址→CS。 2.若是一个软件中断,则跳过上述第①步,而执行②~⑥步。

2.35 中断处理子程序在结构上一般是怎样一种模式?

答:① 保护中断时的现场,即保护CPU各寄存器的值。

② 一般应置IF=1来开放中断,以允许级别较高的中断请求进入。 ③ 中断处理的具体内容。 ④ 恢复中断时的现场。 ⑤ 中断返回指令。

2.36 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有什么不同之

处?

答:1.软件中断有如下特点:

① 用一条中断指令进入中断处理子程序,并且,中断类型码由指令提供。 ② 进入中断时,不需要执行中断响应总线周期。 ③ 不受中断允许标志IF的影响。 ④ 软件中断的优先级最高。 ⑤ 软件中断没有随机性。

2.软件中断允许在主程序和中断处理子程序之间传递数据。而硬件中断由于是随机的,所以不能传递数据。 2.37 系统中有多个总线模块时,在最大模式和最小模式下分别用什么方式来传递总线控制权?

答:1.8086/8088在最小模式下用总线控制联络信号(HOLD和HLDA)来传递总线控制权。

2.8086/8088在最大模式下用总线请求/总线允许信号及释放信号RQ/GT0和RQ/GT1来传递总线控制权。 2.38 8086存储空间最大为多少?怎样用16位寄存器实现对20位地址的寻址?

答:1.8086存储空间最大为220=1MB。

2.采用分段的方法实现16位寄存器实现对20位地址的寻址。

物理地址=段基址×10H+偏移地址

2.39 IBM PC/XT系统中,哪个区域为显示缓冲区?哪个区域用来存放中断向量?在FFFF0H到FFFFFH

单元中存放什么内容?

答:1.B0000H~B0F9FH约4KB为单色显示器的显示缓冲区;B8000~BBF3FH约16KB为彩色显示

器的显示缓冲区。

2.00000H~003FFH共1KB区域用来存放中断向量。

3.在FFFF0H到FFFFFH单元中存放一条无条件转移指令,转到系统的初始化程序。

第 3 章

8086的寻址方式和指令系统

7864629.docxx - 8 - 作者:喻其山

第 4 章 存储器和高速缓存技术

4.1

计算机的内存有什么特点?内存由哪两部分组成?外存一般指哪些设备?外存有什么特点?

答:1.内存可被CPU直接访问,内存的存取速度快,内存的空间大小受到地址总线位数的限制。

2.内存由ROM和RAM两部分组成。

3.外存一般指软盘、硬盘、磁带机上的磁带及光盘。

4.外存的特点是大容量,所存信息即可修改,又可长期保存。但外存速度慢,要配置专用设备。 用存储器件组成内存时,为什么总是采用矩阵形式?请用一个具体例子进行说明。 答:1.为了简化选择内存内部单元的地址译码电路及减少译码线数量。

2.例如,要组成1K字节的内存,若不用矩阵组织这些单元,而是将它们一字排开,就要1024条译码线才能实现对这些单元的寻址。译码电路也因此而很复杂。若用32×32来实现排列,就只要32条行选择线和32条列选择线就可以了。因此其译码电路也将变得较为简单。 为了节省存储器的地址译码电路,一般采用哪些方法? 答:① 存储器件按矩阵排列;

② 内存按模块结构设计; ③ 模块内再进行分组处理。

在选择存储器件时,最重要的考虑因素是什么?此外还应考虑哪些因素? 答:1.最重要的考虑因素是:易失性、只读性、位容量和速度。

2.此外还应考虑:功耗、可靠性和价格等因素。

什么叫静态RAM?静态RAM有什么特点?

答:1.在电源不断电的情况下,信息一旦写入后不会丢失的RAM就叫静态RAM。

2.静态RAM的特点有:不需刷新,因此简化了外部电路;但位容量较类似方法设计的动态RAM少,且功耗较大。 静态RAM芯片上为什么往往只有写信号而没有读信号?什么情况下可以从芯片读得数据?

答:1.因为在存储器中,当允许信号有效之后,一定是进行读/写操作,非写即读。因此,只用写信

号WE就可以即控制写操作,又控制读操作。在写操作时,写脉冲发生器送来一个负脉冲作为写入信号;在读操作时,写脉冲发生器不产生负脉冲,而是使WE端处于高电平,此高电平就用来作为读出信号。

2.当芯片允许信号CE=0及写信号WE=1时,可以从芯片上读得数据。 在对静态存储器进行读/写时,地址信号要分为几个部分?分别产生什么信号? 答:1.地址信号分为三个部分。如:A19~A14,A13~A12,A11~A0。

2.例中A19~A14用来作为模块选择信号,地址译码器判断A19~A14给出的模块选择信号和本模块的约定信号是否匹配,如匹配,则再根据MRDC或MWTC产生内部的模块选择信号;A13~A12产生4个矩阵的芯片允许信号;A11~A0则作为矩阵内部的行地址和列地址。 动态RAM工作时有什么特点?和静态RAM比较,动态RAM有什么长处?有什么不足之处?动态RAM一般用在什么场合? 答:1.动态RAM工作时需要对其存储的信息定时(约2ms)刷新一次。因此需要刷新控制电路来支持。

2.动态RAM的优点(长处)为:动态RAM的位密度高;动态RAM的功耗较低;动态RAM的价格低廉,适合于大容量使用。

3.动态RAM的缺点(不足之处)为:要配置刷新逻辑电路;在刷新周期中,内存模块不能启动读周期或写周期。

4.动态RAM一般用在大容量、低功耗场合。 动态RAM为什么要进行刷新?刷新过程和读操作比较有什么差别?

答:1.因为动态RAM是利用电容的存储作用来保存信息的,但电容由于放电或泄漏,电荷保存时

4.2

4.3

4.4

4.5

4.6

4.7

4.8

4.9

7864629.docxx - 19 - 作者:喻其山

第 7 章 中断控制器、DMA

7.1

控制器和计数器/定时器

8259A的初始化命令字和操作命令字有什么差别?它们分别对应于编程结构中哪些内部寄存器? 答:1.8259A的初始化命令字是计算机系统启动时,由初始化程序设置的。初始化命令字一旦设定,

一般在系统工作过程中就不再改变。操作命令字则是由应用程序设定的,它们用来对中断处理过程作动态控制,在一个系统运行过程中,操作命令字可以多次设置。

2.初始化命令字对应于编程结构的ICW1、ICW2、ICW3、ICW4共4个寄存器。操作命令字对应于编程结构的OCW1、OCW2、OCW3共3个寄存器。 8259A的中断屏蔽寄存器IMR和8086/8088CPU的中断允许标志IF有什么差别?在中断响应过程中,它们怎样配合起来工作?

答:1.若IMR的某位为0则该位对应的引腿上的中断请求未加屏蔽,让它通过而进入中断优先级裁

决器作裁决。若IMR的某位为1则屏蔽该位对应的引腿上的中断请求,不让它进入中断优先级裁决器。而8086/8088CPU的中断允许标志IF为1则允许INTR引腿进入的中断,IF为0则屏蔽INTR引腿进入的中断。与8259A的IMR位为0为1正好相反。

2.在中断响应过程中,IMR用于对外设向8259A发中断申请的允许/屏蔽,而CPU的IF用于对8259A由INT向CPU的INTR引腿发中断申请的允许/屏蔽。 8259A的全嵌套方式和特殊全嵌套方式有什么差别?各自用在什么场合?

答:1.全嵌套工作方式,只有更高级的中断请求来到时,才会进行嵌套。而特殊全嵌套方式则能被

同级和高级的中断请求所嵌套。

2.全嵌套方式用于单片8259A的场合。特殊全嵌套方式用于多片8259A系统。 8259A的优先级循环方式和优先级特殊循环方式有什么差别? 答:在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。

而优先级自动循环方式初始优先级队列为IR0~IR7。 8259A的特殊屏蔽方式和普通屏蔽方式相比,有什么不同之处?特殊屏蔽方式一般用在什么场合? 答:1.在特殊屏蔽方式中用OCW1对屏蔽寄存器中某一位进行置位时,就会同时使ISR中的对应位

自动清0。而普通屏蔽方式对OCW1的操作不影响ISR中各位的状态。

2.特殊屏蔽方式用于中断处理程序中,以开放比本身的优先级较低的中断请求。 8259A有几种结束中断处理的方式?各自应用在什么场合?除了中断自动结束方式以外,其他情况下如果没有在中断处理程序中发中断结束命令,会出现什么问题? 答:1.8259A有三种结束中断处理的方式。

2.中断自动结束方式用于只有一片8259A,并且多个中断不会嵌套的情况。一般的中断结束方式用在全嵌套情况下及多片8259A的级联系统中。特殊中断结束方式用于循环优先级的8259A中。

3.不发中断结束命令会使8259A认为该中断未结束,从而挡住了低优先级的中断被响应,即中断控制功能不正常。 8259A引入中断请求的方式有哪几种?如果对8259A用查询方式引入中断请求,那会有什么特点?中断查询方式用在什么场合?

答:1.引入中断请求的方式有:边沿触发方式、电平触发方式、中断查询方式三种。

2.中断查询方式的特点:

① 设备仍然通过往8259A发中断请求信号要求CPU服务,但8259A不使用INT信号向CPU

发中断请求信号。

② CPU内部的中断允许触发器复位,所以禁止了外部对CPU的中断请求。 ③ CPU要使用软件查询来确认中断源,从而实现对设备的中断服务。 3.中断查询方式一般用在多于64个中断的场合,也可以用在一个中断服务程序中的几个模块分别为几个中断设备服务的情况。 8259A的初始化命令字有哪些?它们各自有什么含义?哪几个应写入奇地址?哪几个应写入偶地址?

7.2

7.3

7.4

7.5

7.6

7.7

7.8

7864629.docxx - 20 - 作者:喻其山

答:1.8259A的初始化命令字有ICW1、ICW2、ICW3、ICW4共四个。

2.ICW1——芯片控制初始化命令字。ICW2——设置中断类型码的初始化命令字。ICW3——标志主片/从片的初始化命令字。ICW4——方式控制初始化命令字。 3.ICW2、ICW3、ICW4必须写入奇地址端口中。 4.ICW1必须写入偶地址端口中。 7.9

8259A的ICW2设置了中断类型码的哪几位?说明对8259A分别设置ICW2为30H、38H、36H有什么差别?

答:1.8259A的ICW2设置了中断类型码的高5位。低3位中断类型码对应引入中断的引腿号。

2.当设置ICW2为30H和36H时,完全相同。对应的8个中断类型码为30H~37H。而设置ICW2为38H时,对应的8个中断类型码为38H~3FH。

7.10 8259A通过ICW4可以给出哪些重要信息?什么情况下不需要ICW4?什么情况下要设置ICW3?

答:1.当SFNM=1则为特殊的全嵌套方式;BUF=1则为缓冲方式;若为缓冲方式(BUF=1)则M/S=1

表示本片为主片,M/S=0为从片;AEOI=1则设置为中断自动结束方式。当μPM=1表示8259A当前所在系统为8086/8088系统,反之μPM=0则为8080/8085系统。 2.当ICW1的D0为IC4=0时,不需要用ICW4。 3.当ICW1的D1为SNGL=0时,需要设置ICW3。

7.11 试按照如下要求对8259A设置初始化命令字:系统中有1片8259A,中断请求信号用电平触发方式,

下面要用ICW4,中断类型码为60H、61H??67H,用特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A的端口地址为90H、92H。 答: MOV AL,1BH ;ICW1的命令字为00011011B=1BH

OUT 90H,AL ;ICW1送偶地址端口 MOV AL,60H ;ICW2的命令字为60H OUT 92H,AL ;ICW2送奇地址端口 MOV AL,13H ;ICW4的命令字为00010011B=13H OUT 92H,AL ;ICW4送奇地址端口 7.12 怎样用8259A的屏蔽命令字来禁止IR3

的端口地址为90H、92H。 答:1. CLI

IN AL,92H OR AL,28H OUT 92H,AL STI

2. CLI

IN AL,92H AND AL,0D7H OUT 92H,AL STI

和IR5引腿上的请求?又怎样撤销这一禁止命令?设8259A

;(AL)←(IMR)

;禁止IR3和IR5引腿上的中断请求 ;OCW1送奇地址端口

;(AL)←(IMR)

;允许IR3和IR5引腿上的中断请求 ;OCW1送奇地址端口

7.13 试用OCW2对8259A设置中断结束命令,并使8259A按优先级自动循环方式工作。

答: MOV AL,0A0H ;OCW2的命令字为10100000B=A0H,满足上述要求

OUT PORT0,AL ;OCW2送偶地址端口 7.14 用流程图来表示特殊全嵌套方式的工作过程。设主程序运行时先在IR2端有请求,接着IR2端又有

请求,而此时前一个IR2还未结束,后来IR3端有请求,再后来IR1端有请求。 答:流程图如下页所示: 7.15 说明特殊屏蔽方式的使用方法。为什么要用“或”的方法来设置屏蔽字?

答:1.某一中断服务程序先用OCW3命令字(ESMM=1,SMM=1)使8259A工作在特殊屏蔽方式,再

用OCW1对IMR中本中断的对应位进行置位,就可以使系统除了对本级中断外,响应其他任何未被屏蔽的中断请求。中断处理结束时,用OCW1撤销前面设置的屏蔽位,并用OCW3撤销了特殊屏蔽方式。8259A又按照原优先级方式工作。

7864629.docxx - 21 - 作者:喻其山

2.用“或”的方法来设置屏蔽字可以不影响其他位的屏蔽状态。 主程序 IR2中断处理程序 初始化 IR2请求中断 开中断 IR2又有中断 IR2'中断处理程序 开中断 IR1中断处理程序 开中断 IR3中断处理程序 关中断 IR3中断请求 IR1中断请求 开中断 关中断 中断结束命令 开中断 中断返回 关中断 中断结束命令 开中断 中断返回 中断结束命令 开中断 中断返回 关中断 中断结束命令 开中断 中断返回 ┆ ┆ 7.16 80386系统中,8259A采用了级连方式,试说明在主从式中断系统中8259A的主片和从片的连接关系。

答:从片的INT输出接主片的IR0~IR7的某一输入端;主片的CAS2~CAS0接从片的CAS2~CAS0;

主片的INTA和从片的INTA连在一起接CPU的INTA输出端;主片和从片的WR、RD、D7~D0也都连在一起和CPU的WR、RD、DB7~DB0连接;主片和从片的A0连在一起接系统总线的AB1上;主片的SP/EN接数据驱动器的OE端,从片的SP/EN接地;主片和从片的CS各自接在地址译码器的一个输出端上。 7.17 试说明在DMA方式时内存往外设传输数据的过程。

答:当一个接口要由内存往其输出数据时,就往DMA控制器发一个DMA请求;DMA控制器接到

请求以后,便往控制总线上发一个总线请求;若CPU允许让出总线便发出一个总线允许信号;DMA控制器接到此信号后,就将地址寄存器的内容送到地址总线上,同时往接口发一个DMA回答信号并发一个I/O写信号和一个内存读信号;内存接到读信号后将数据送到数据总线,I/O写信号将数据送到接口,并撤除DMA请求信号,于是DMA控制器的地址寄存器的内容加1或减1,计数器的值减1,而且撤除总线请求信号,就完成了对一个数据的DMA输出传输。 7.18 对一个DMA控制器的初始化工作包括哪些内容?

答:① 将数据传输缓冲区的起始地址或者结束地址送到地址寄存器中;

② 将传输的字节数或字数送到计数器中。 ③ 通过模式寄存器设置工作方式等。

7.19 DMA控制器8237A什么时候作为主模块工作?什么时候作为从模块工作?在这两种情况下,各控

制信号处于什么状态,试作说明。

答:1.在外设向8237A发DMA请求,8237A向CPU发总线请求得到CPU总线允许时,获得了总

线控制权就作为总线主模块工作。

2.当CPU把数据送到8237A的寄存器或者从8237A的寄存器取出时,8237A就象I/O接口一样作为总线的从模块工作。

3.主模块工作时的控制信号:DREQx有效,HRQ高,HLDA高,DACKx有效,AEN高,IOR、MEMW或IOW、MEMR有效,16位地址送地址总线。从模块工作时的控制信号: CS和HRQ为低,A3~A0为某一确定值,IOR或IOW有效。

7864629.docxx - 22 - 作者:喻其山

7.20 8237A有哪几种工作模式?各自用在什么场合?

答:1.8237A有4种工作模式:单字节传输模式、块传输模式、请求传输模式、级联传输模式。

2.单字节传输模式用于单个字节的DMA输入/输出;块传输模式用于连续进行多个字节的传输;请求传输模式用于受接口控制的连续字节传输;级联传输模式用于多片主从式DMA系统中的主片的工作模式。 7.21 什么叫DMA控制器的自动预置功能?这种功能是用得很普遍的,举一个例子说明它的使用场合。

答:1.自动预置功能就是DMA控制器某通道在当前字节计数器的计数值到达0时,当前地址寄存

器和当前字节计数器会从基本地址寄存器和基本字节计数器中自动重新取得新值,从而又可以进入下一个数据传输过程。

2.如IBM PC/XT中,8237A的通道0用于对动态RAM进行刷新,就设置为自动预置功能。从头到尾进行一遍刷新后,就又可以自动重新再来若干遍刷新,保持数据不从动态RAM中丢失。用于同一内存地址的数据块重复传输中。 7.22 用DMA控制器进行内存到内存的传输时,有什么特点?

答:固定用通道0的地址寄存器存放源地址,而用通道1的地址寄存器和字节计数器存放目的地址

和计数值。传输时,目的地址和计数值象通常一样进行加1减1操作,源地址的值可通过控制寄存器的D1位设置,若为1则不变。另外用暂存器作为数据传输时DMA的数据暂存用。另外,DMA控制器进行内存到内存的传输是通过设置控制寄存器的D0=1来设置的。 7.23 DMA控制器8237A是怎样进行优先级管理的?

答:8237A有两种优先级管理方式:固定优先级管理方式,优先级高低固定为:通道0、1、2、3。

循环优先级管理方式,通道的优先级依次循环,当某通道进行一次传输后,其优先级变为最低,而其相邻的高一号通道的优先级变为最高。 7.24 设计8237A的初始化程序。8237A的端口地址为0000~000FH,设通道0工作在块传输模式,地址

加1变化,自动预置功能;通道1工作于单字节读传输,地址减1变化,无自动预置功能;通道2、通道3和通道1工作于相同方式。然后对8237A设控制命令,使DACK为高电平有效,DREQ为低电平有效,用固定优先级方式,并启动8237工作。 答: MOV AL,04H

MOV DX,DMA+8 ;DMA为端口首地址0000H,DMA+8为控制寄

;存器端口号

OUT DX,AL ;输出控制命令,关闭8237A MOV AL,00 MOV DX,DMA+0DH ;DMA+0DH为总清命令端口号 OUT DX,AL ;发总清命令(即复位命令) MOV DX,DMA+0BH ;DMA+0BH为模式寄存器的端口号 MOV AL,98H OUT DX,AL ;对通道0选择模式,模式字为98H:块读传输模

;式,地址加1变化,自动预置功能

MOV AL,69H OUT DX,AL ;对通道1选择模式,模式字为69H:单字节读传

;输,地址减1变化,无自动预置功能

MOV AL,6AH OUT DX,AL ;对通道2选择模式,模式字为6AH:功能同通道1 MOV AL,6BH OUT DX,AL ;对通道3选择模式,模式字为6BH:功能同通道1 MOV DX,DMA+8 MOV AL,0C0H ;控制字格式为C0H: DACK高电平有效,DREQ

;低电平有效,固定优先级,启动工作

OUT DX,AL MOV DX,DMA+0FH ;DMA+0FH为综合屏蔽命令端口号 MOV AL,0 OUT DX,AL ;去除四个通道的屏蔽

7864629.docxx - 23 - 作者:喻其山

7.25 概述怎样用软件方法和硬件方法来进行定时。

答:① 软件方法就是根据所需要的时间常数来设计一个延迟子程序。当延迟子程序执行完后,可

直接执行下面的操作,也可用输出指令输出一个信号作为定时输出。 ② 硬件方法使用计数器/定时器。根据需要的定时时间,用指令对计数器/定时器设置定时常数,

并用指令启动计数器/定时器,于是计数器/定时器开始计数,计到确定值时,便自动产生一个定时输出。 7.26 8253计数器/定时器中,时钟信号CLK、门脉冲信号GATE分别起什么作用?

答:时钟信号CLK决定了计数的速率,是计数减1的依据。而门脉冲信号GATE是作为对时钟的

控制信号,以控制计数的启停。 7.27 说明8253在6种工作方式下的特点,并举例说明使用场合。

答:① 模式0、模式1、模式4、模式5为软件启动或硬件启动的不自动重复的计数方式;模式2、

模式3为即可软件启动也可硬件启动的自动重复的定时器方式。

② 作为计数器时,8253在GATE控制下进行减1计数,减到终值时,输出一个信号,至此计

数过程便结束。作为定时器工作时,8253在门控GATE控制下进行减1计数,减到终值时,又自动装入初值,重新作减1计数,于是输出端会不间断地产生为时钟周期整数倍的定时间隔。

③ 定时方式一般用于实时控制及周期性操作中,如日时钟定时、扬声器发声、波特率发生器

等场合。计数方式则用于外部事件的计数,如生产线上的产品计数等场合。 7.28 8253工作于模式4和模式5时有什么不同?

答:模式4是用软件触发启动,GATE为低电平时停止计数;而模式5则用门控GATE的上升沿触

发即硬件触发启动,GATE为低电平时不影响计数。 7.29 编程将8253计数器0设置为模式1,计数初值为3000H;计数器1设置为模式2,计数初值为2010H;

计数器2设置为模式4,计数初值为4030H;地址设为0070H、0072H、0074H、0076H。 答: MOV AL,32H ;设置计数器0为模式1

OUT 76H,AL MOV AX,3000H ;写计数初值 OUT 70H,AL MOV AL,AH OUT 70H,AL

MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT MOV OUT

AL,74H ;设置计数器1为模式2 76H,AL

AX,2010H ;写计数初值 72H,AL AL,AH 72H,AL

AL,0B8H ;设置计数器2为模式4 76H,AL

AX,4030H ;写计数初值 74H,AL AL,AH 74H,AL

7.30 CPU对应DMA控制器的总线请求响应要比中断请求响应快,请分析其原因。

答:当CPU检测到总线请求信号后在当前总线周期的T4状态或TI状态的下降沿就可响应而出让

总线,并发总线响应信号HLDA。而当CPU检测到INTR请求时,则必须要等到当前指令执行完后才能发第一个INTA负脉冲,而且中断响应需两个INTA负脉冲才可组成一个完整的中断响应信号。因此总线请求响应要比中断请求响应快。

7864629.docxx - 24 - 作者:喻其山

7.31 设8259A工作于优先级循环方式,当前最高优先级为IR4,现在要使优先级最低的为IR1,则应该

再设置哪个操作命令字?具体的值是多少? 答:1.再设置OCW2操作命令字。

2.OCW2的具体的值是C1H(=11000001B),写入偶地址端口。 7.32 下面是一个对8259A进行初始化的程序段,请为下面程序段加上注释,并具体说明各初始化命令字

的含义。 PORT0 EQU 40H ;8259A的偶地址端口号 PORT1 EQU 41H ;8259A的奇地址端口号

┆ MOV AL,13H ;控制初始化命令字ICW1设为13H,中断请求为边沿触

;发方式,单片8259A,需写入ICW4

MOV DX,PORT0 ;取8259A的偶地址端口 OUT DX,AL ;设置ICW1 INC DX ;取8259A的奇地址端口 MOV AL,08H ;中断类型码初始化命令字ICW2设为08H,对应于

;IR0~IR7的中断类型码为08H~0FH

OUT DX,AL ;设置ICW2 MOV AL,06H ;方式控制初始化命令字ICW4设为06H,非特殊全嵌套

;方式,非缓冲方式,中断自动结束方式,工作于8080/8085 ;系统中

OUT DX,AL ;设置ICW4

答:初始化命令字的含义见注释。 7.33 下面是一个对主从式8259A系统进行初始化的程序段,请对以下程序段加详细注释,并具体说明各

初始化命令字的含义。 ;主片初始化程序 M82590 EQU 40H ;主片8259A的偶地址端口号 M82591 EQU 41H ;主片8259A的奇地址端口号

┆ MOV AL,11H ;控制初始化命令字ICW1设为11H,中断请求为边沿触

;发方式,多片8259A,需设置ICW4

MOV DX,M82590 ;取主片8259A的偶地址端口 OUT DX,AL ;设置ICW1 MOV AL,08H ;中断类型码初始化命令字ICW2设为08H,对应于

;IR0~IR7的中断类型码为08H~0FH

INC DX ;取主片8259A的奇地址端口 OUT DX,AL ;设置ICW2 MOV AL,04H ;ICW3设为04H,只有IR2连有从片8259A OUT DX,AL ;设置ICW3 MOV AL,01H ;方式控制初始化命令字ICW4设为01H,非特殊全嵌套

;方式,非缓冲方式,非中断自动结束方式,工作于 ;8086/8088系统中

OUT DX,AL ;设置ICW4

;从片初始化程序 S82590 EQU 90H ;从片8259A的偶地址端口号 S82591 EQU 91H ;从片8259A的奇地址端口号

┆ MOV DX,S82590 ;取从片8259A的偶地址端口 MOV AL,11H ;控制初始化命令字ICW1设为11H,功能同上 OUT DX,AL ;设置ICW1 MOV AL,70H ;中断类型码初始化命令字ICW2设为70H,对应于

;IR0~IR7的中断类型码为70H~77H

7864629.docxx - 25 - 作者:喻其山

;取从片8259A的奇地址端口 ;设置ICW2

; ICW3设为02H,表示本从片与主片的IR2相连 ;设置ICW3

;方式控制初始化命令字ICW4设为01H,非特殊全嵌套 ;方式,非缓冲方式,非中断自动结束方式,工作于 ;8086/8088系统中

OUT DX,AL ;设置ICW4

答:各初始化命令字的含义见注释。

7.34 8237A在进行单字节方式DMA传输和块方式DMA传输时,有什么区别?

答:区别在于:单字节方式时DMA每完成一个字节传输后,便释放系统总线,CPU至少可占用一

个总线周期。块传输方式时,只有当字节计数器减为0,从而在EOP端输出一个负脉冲或者外部I/O接口往DMA控制器的EOP端送一个低电平信号时,8237A才释放总线而结束传输。

7.35 下面是一个常驻内存的中断服务程序框架和它的装配程序,请对此程序的注释进行补充,以便得到

一个完整的注释清单。 STACK SEGMENT ;设置堆栈段 DW 256 DUP (?)

STACK ENDS

DATA 8259P0 8259P1 DATA CODE START1: INTSUB

SEGMENT EQU 40H EQU 41H ┆ ENDS

;设置数据段 ;8259A的偶地址端口号 ;8259A的奇地址端口号

INC OUT MOV OUT MOV DX DX,AL AL,02H DX,AL AL,01H

SEGMENT ;设置代码段 ASSUME CS:CODE,DS:DATA,SS:STACK ;段说明 JMP PROC STI PUSH PUSH PUSH PUSH PUSH PUSH ┆ POP POP POP POP POP POP MOV MOV OUT IRET ENDP MOV MOV MOV MOV

START2 FAR ES DS AX BX SI DI DI SI BX AX DS ES

AL,20H DX,8259P0 DX,AL

;程序开始,直接转START2执行

;定义一个远过程(段外子程序)INTSUB ;开中断 ;保护现场 ;中断处理内容 ;恢复现场

;发一般的中断结束命令 ;取8259A偶地址 ;中断返回 ;远过程定义结束

;程序开始,取数据段的段地址送DS ;设置中断向量的系统功能调用的入口条件 INTSUB START2:

AX,DATA DS,AX AL,45H AH,25H

7864629.docxx - 26 - 作者:喻其山

MOV DX,OFFSET INTSUB INT 21H MOV AL,0 MOV DX,8259P1 OUT DX,AL STI MOV AX,3100H MOV DX,$–INTSUB INT 21H

CODE ENDS

END START1

答:注释见程序清单的下划线部分。

;设置中断向量

;OCW1=00H,开放8259A的所有中断 ;取8259A的奇地址号

;开中断

;终止用户程序并驻留内存的入口条件 ;程序驻留退出 ;代码段结束 ;程序结束 7.36 8259A在采用边沿触发方式时,为了防止IR端有毛刺产生中断,因此通常也要求有足够的脉冲宽

度,这一点由8259A的内部性能所决定。所以,中断控制器的初始化命令字虽用边沿触发,但是,中断请求信号却是某个脉冲信号。你认为,这种情况下,设置边沿触发方式和设置电平触发方式相比,有什么优点?

答:电平触发方式时,中断请求信号必须在第一个INTA脉冲结束之前保持高电平,而此时的中断

请求信号却是某个脉冲信号,不一定能满足电平触发方式的要求,可能会造成中断请求得不到响应。而此信号能满足边沿触发方式对中断请求信号的要求,可基本保证能得到中断响应(IF=1)。 7.37 下面是一个8253的初始化程序段。8253的控制口地址为46H,3个计数器端口地址分别为40H、

42H、44H。在8253初始化前,先将8259A的所有中断进行屏蔽,8259A的奇地址端口为82H。请对下面程序段加详细注释,并以十进制数表示出各计数器的值。 INI: CLI ;CPU关中断

MOV AL,0FFH ;8259A屏蔽中断 OUT 82H,AL MOV AL,36H ;设置计数器0控制字,工作于模式3 OUT 46H,AL MOV AL,0 ;设置计数器0的计数初值为4000H=16384 OUT 40H,AL MOV AL,40H OUT 40H,AL MOV AL,54H ;设置计数器1控制字,工作于模式2,低8位字节读/写 OUT 46H,AL MOV AL,18H ;设置计数器1的计数初值为18H=24 OUT 42H,AL MOV AL,0A6H ;设置计数器2控制字,工作于模式3,高8位字节读/写 OUT 46H,AL MOV AL,46H ;设置计数器2的计数初值为4600H=17920 OUT 44H,AL MOV AL,80H ;修改计数器2的计数初值为8000H=32768 OUT 44H,AL

答:注释见程序清单,计数器初值的十进制值也见注释。 7.38 下面是一个用8253作为定时器的发音程序,程序中已加了部分注释。请对8253的有关程序段加上

注释,并画出整个程序的流程图。8253的控制口地址为46H,3个计数器端口地址分别为40H、42H、44H。8255A的B端口接扬声器驱动电路,B端口的地址为62H。 SOUND: PUSHF

CLI OR DH,DH ;DH中为发长音的个数 JZ K3 ;如不发长音,则转K3

K1: MOV BL,6 ;如发长音,则置长音计数器

7864629.docxx - 27 - 作者:喻其山

CALL BEEL ;调用发音程序

K2: LOOP K2 ;两音之间留一点间隙

DEC DH ;长音发完否 JNZ K1 ;否,则继续

K3: MOV BL,1 ;如发完长音,则置短音计数器

CALL BEEL ;调用发音程序

K4: LOOP K4 ;两音之间留一点间隙

DEC DL ;继续发短音吗 JNZ K3 ;是,则继续

K5: LOOP K5 ;否,则留一点间隙

POPF ;标志恢复 RET ;返回

BEEL: MOV AL,B6H ;发音子程序开始

OUT 46H,AL ;8253的计数器2工作于模式3 MOV AX,533H ;计数初值为533H OUT 44H,AL ;送初值低位 MOV AL,AH OUT 44H,AL ;送初值高位 IN AL,62H ;取扬声器驱动信息 MOV AH,AL OR AL,03 ;接通扬声器 OUT 62H,AL ;扬声器驱动 SUB CX,CX ;一次发音时间设定

K7: LOOP K7

DEC BL ;BL中为发音计数值 JNZ K7 ;如未结束,则继续发音 MOV AL,AH ;如发音结束,则恢复B端口信息 OUT 62H,AL RET

答:补充的注释见程序清单中的下划线部分。程序流程图如下所示。 SOUND开始 BEEL开始

保护标志,关中断 8253计数器2初始化为

模式3,计数初值为

533H

Y 发长音吗? 取扬声器驱动信息并送N AH中保护起来 置长音计数器,调发音

子程序,并延时

接通扬声器并使其发音

N 长音发完吗?

Y 延时

置短音计数器,调发音

子程序,并延时 音发完了吗?

N Y 短音发完吗? 发音结束,关掉扬声器 Y

延时并恢复标志 RET返回

RET返回 N 7864629.docxx - 28 - 作者:喻其山

第 8 章 模/数和数/模转换

8.1

什么叫分辨率?什么叫相对转换精度? 答:1.在D/A转换时,将最低位增1所引起的增量和最大输入量的比称为分辨率。即:分辨率=1/(2n-1)。

2.用绝对转换精度相对于满量程输出的百分数表示的精度即为相对转换精度。有时也用最低位(LSB)的几分之几表示。 在T型电阻网络组成的D/A转换器中,设开关K0、K1、K2、K3、K4分别对应一位二进制数,当二进制数据为10110时,流入运算放大器的电流为多少?画出这个T型网络。 答:1.流入运算放大器的电流I为:(n=5)

8.2

I?VREFVREFVREF11VREF?N??(10110B)??22?。N5516R2R2R2RRo - + K1 2R 2R K2 2R K3 2R K4 2.T型网络如下图:

K0

2R R

2R 8.3

Vo R R R VREF 用带两级数据缓冲器的D/A转换器时,为什么有时要用三条输出指令才完成16位或12位数据转换?

答:因为一般第一次将低8位数据送输出低位的第一级数据缓冲器,第二次输出高4位或高8位数

据到高位的第一级数据缓冲器。第三次执行一次伪输出,将第一级数据缓冲器的内容打入第二级数据缓冲器从而实现高于8位的D/A转换。因此要用3条输出指令才能完成一次16位或12位数据转换。以避免出现错误的中间结果。 使用DAC0832进行数/模转换时,有哪两种方法可对数据进行锁存?

答:第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在不锁存状态。第二种方法

是使输入寄存器工作在不锁存状态,而DAC寄存器工作在锁存状态。 在数字量和模拟量并存的系统中,地线连接时要注意什么问题?

答:首先各个模拟地连在一起,各个数字地连在一起;其次模拟地和数字地只能且必须用一个共地

点连起来,以防干扰。 设计一个电路和相应程序完成一个锯齿波发生器的功能,使锯齿波呈负向增长,并且锯齿波的频率可调。

答:① 电路如下图所示: 数据总线 D7~D0 REB WR1 IOUT1 WR DAC - Vo 0832 + IOUT2 地址总线 XFER 译 CS WR2 码 器M/IO DGND 8.4

8.5

8.6

7864629.docxx - 29 - 作者:喻其山

② 程序如下:

MOV MOV

ROTATE: DEC

OUT CALL JMP

DELAY: MOV DELAY1: LOOP

RET

8.7

DX,PORTDA AL,0 AL DX,AL DELAY ROTATE

CX,DATA DELAY1

;PORTDA为D/A转换器的端口号 ;初值

;呈负向增长

;往D/A转换器输出数据 ;延迟

;往CX中送延迟常数,修改DATA即可改变周期

什么叫模/数转换精度?什么叫转换速率?什么叫分辨率?

答:1.反映A/D转换器的实际输出接近理想输出的精确程度叫模/数转换精度。

2.完成一次A/D转换所需要的时间的倒数叫转换速率。 3.A/D转换器能够分辨最小的量化信号的能力叫分辨率。

参考《微型计算机技术及应用》一书中图8.12说明计数式A/D转换的工作原理。

答:首先启动信号S由高电平变为低电平,使计数器清0,当启动信号恢复高电平时,计数器准备

计数。开始,D/A转换器的输出电压VO为0,此时,运算放大器在同相端的输入电压作用下,输出高电平,从而使计数信号C为1。于是,计数器开始计数,D/A转换器输入端获得的数字量不断增加,使输出电压VO不断上升。在VO小于Vi时,运算放大器的输出总是保持高电平。当VO上升到某个值时,会出现VO大于Vi的情况,这时,运算放大器的输出变为低电平,即C为0。于是,计数器停止计数。这时候的数字输出量D7~D0就是与模拟输入电压对应的数字量。计数信号C的负向跳变也是A/D转换的结束信号。它用来通知其他电路,当前已经完成一次A/D转换。 双积分式A/D转换的原理是什么? 答:一开始,电路对输入的未知模拟量进行固定时间的积分,然后转换为对标准电压进行反向积分。

反向积分到一定时候,便返回起始值。因此对标准电压的反向积分时间T正比于输入模拟电压Vi,Vi越大,T越长。只要用标准的高频时钟频率测定反向积分花费的时间,就可得到输入模拟电压所对应的数字量,即实现了A/D转换。

START 8.8

8.9

8.10 参考《微型计算机技术及应用》一书中图8.14说明逐次逼近

式A/D转换的工作原理。 初始化,试探位BL从最高位开始答:当启动信号由高电平变为低电平时,逐次逼近寄存器清(BL)←80H,试探次数(CX)←08H 0,这时,D/A转换器输出电压VO也为0,当启动信号变为高电平时,转换开始,同时,逐次逼近寄存器进行

计算试探值并送BH保护 计数。逐次逼近寄存器工作时与普通计数器不同,它不是从低位往高位逐一进行计数和进位,而是从最高位开

试探值→D/A转换,接着始,通过设置试探值来进行计数。具体讲,在第一个时

读取比较器的比较结果 钟脉冲时,控制电路把最高位送到逐次逼近寄存器,使

它的输出为10000000B,这个输出数字一出现,D/A转换器的输出电压VO就成为满量程的128/255。这时,如Y 试探值小了吗? 果VO大于Vi,那么,作为比较器的运算放大器的输出就成为低电平,控制电路据此清除逐次逼近寄存器的最N 高位;如果VO小于或等于Vi,则比较器输出高电平,试探值的该试探位清0→BH保护 控制电路使最高位的1保留下来。如果最高位被保留下来,那么,逐次逼近寄存器的内容为10000000B,下一

试探位右移一位,取试探值→AL 个时钟脉冲使次高位D6为1。于是,逐次逼近寄存器的

值为11000000B,D/A转换器的输出电压VO到达满量程的192/255。此后,如果VO大于Vi,则比较器输出

试探结束了吗? 为低电平,从而使次高位D6复位;如果VO小于或等

Y 于Vi,则比较器输出高电平,从而保留次高位D6为1。

再下一个时钟脉冲对D5位置1,然后据此对VO和Vi

输出转换结果 7864629.docxx - 30 - 作者:喻其山

的比较,决定保留还是清除D5位上的1??重复上述过程,直到D0=1,再与输入电压比较。经过N次比较后,逐次逼近寄存器中得到的值就是转换后的数据。转换结束以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐次逼近寄存器中的数字量送入缓冲寄存器,从而得到数字量输出。

8.11 比较计数式、双积分式和逐次逼近式A/D转换的优缺点。

答:计数式的优点是电路比较简单,但速度较慢。双积分式的优点是精度高、干扰小,但速度慢。

逐次逼近式的优点是速度快,但抗干扰较双积分式差。 8.12 设计一个电路并画出软件流程以实现A/D转换,软件流程中要体现逐次逼近法思想。

答:1.电路见书344页图8.15所示。

2.软件流程图见上页右图所示:

8.13 什么叫采样保持电路的采样状态和保持状态?用示意图说明 。

答:① 采样状态:输出随输入而变化,增益为1。书351页图8.20的状态控制开关闭合。

② 保持状态:输出保持为某个值。图8.20的状态控制开关断开,电容保持充电时的最终电压

值,使A2输出不变。 8.14 在实时控制和实时数据处理系统中,当需要同时测量和控制多路信息时,常用什么方法解决?

答:① 首先使用公共的A/D、D/A转换器;

② 然后用独立的的多路转换模拟开关来轮流切换各回路和A/D、D/A之间的通路。 ③ 或者选择内部本身带有多路转换模拟开关的A/D、D/A转换器。

第 9 章 键盘和

9.1

LED显示器

利用行扫描法来识别闭合键的工作原理是什么?为什么在识别一个键前,先快速检查键盘中是否有键按下?快速识别有无闭合键的方法是什么?

答:1.从第0行开始扫描,看是否是该行的键闭合,直至最后一行扫描结束。(每扫一行输入列值,

检查此行是否有键闭合,若有键闭合则转去识别该键;若无键闭合,则扫描下一行??) 2.为了提高程序运行的速度,在无键按下时无需进行行扫描。

3.先使所有各行同时为低电位,再检查是否有列线也处于低电位。若有某列线处于低电位,则说明必有键按下,否则无键按下。 设计一个用行扫描法识别闭合键的扫描程序,设键盘上有4×5个键,并行口A接四根行线,并行口B接五根列线,两个端口的地址分别为PORTA、PORTB。 答:START: MOV AL,00H ;判断是否有键按下的程序

MOV DX,PORTA OUT DX,AL ;往4根行线输出低电平 MOV DX,PORTB IN AL,DX ;读取列值 AND AL,1FH ;列值只有低5位有效 CMP AL,1FH ;是否有列线处于0电位 JZ START ;无闭合键,循环等待 CALL DELAY ;有闭合键,则延时20ms消抖

SCAN: MOV BL,0 ;键号初值为0

MOV CL,0FEH ;送扫描初值 MOV BH,4 ;计数值为行数(4行)

SCAN1: MOV AL,CL

MOV DX,PORTA

9.2

7864629.docxx - 31 - 作者:喻其山

SCAN2:

NEXT: DONE:

9.3

OUT RCL MOV MOV IN AND CMP JNZ MOV ADD MOV DEC JNZ JMP RCR JNC INC JMP ┆ ┆ DX,AL ;扫描一行 AL,1 ;修改扫描值 CL,AL DX,PORTB AL,DX ;读取列值 AL,1FH ;列值只有低5位有效 AL,1FH ;是否有列线处于0电位 SCAN2 ;有列线接地,则转SCAN2 AL,BL ;如无列线接地,则键号=键号+列数/每行 AL,5 BL,AL BH ;扫描下一行 SCAN1 ;未扫描完,继续扫描 DONE ;已扫完,无键按下,则转DONE AL,1 ;如此列接地则转NEXT NEXT BL

SCAN2 ;如未找到接地的列线,则转SCAN2继续寻找 ;键命令处理程序 ;后续处理程序

设A端口工作在输出方式 B端口工作在输入方式 叙述行反转法的基本工作原理,画出行反转法的程序流程。

答:1.行反转法的基本工作原理:将行线接一个并

行口,使其工作于输出方式;将列线接一个并行口,使其工作于输入方式;程序使CPU通过输出口往各行线上全送低电平,然后读入列线的值。若此时有某个键被按下,则必定会使某列线值为0。然后程序将两个并行端口的输入/输出方式调换,并将刚才读得的列线值从列线所接的并行口输出,再读取行线的输入值,在闭合键所在的行线上的值必定为0。这样当一个键被按下时,必定可以读得唯一的行值和列值。 2.程序流程如右: 连锁法和巡回发识别重建的基本思想是什么?

答:① 连锁法识别重建的基本思想是:在所有键释

放后,只承认此后闭合的第一个键,对此键闭合时按下的其他键均不作识别,直到所有键释放以后,才读入下一个键。 ② 巡回法识别重建的基本思想是:等前面所识别的键被释放以后,就可以对其他闭合键作识别。

往行线输出全0 读 取 列 值 有闭合键吗? N 保 留 列 值 延 迟 20ms 设A端口工作在输入方式 B端口工作在输出方式 Y 9.4

输出刚才读得的列值 读 取 行 值 设 置 键 码 值 与表中的码符合吗? Y 9.5

N 转键命用连锁法识别重键时,对《微型计算机技术及应用》

令处理 一书的图9.8中的三种重键情况分别如何处理?看修改表地址,修改计数值 懂图8.9的流程,并说明按标准的连锁法,此流程

N 应如何修改? 表查完了吗? 答:1.图9.8(a),只读入A键;图9.8(b),标准连

Y 锁法也只读入A键;图9.8(c)则无效,两键都不读入。

2.标准连锁法的流程可按书362页图9.9来修改,即将等待释放的一部分改为等待所有键释放即可。方法是:在读进列值前加一个“使所有行为低电平”既可以了。

7864629.docxx - 32 - 作者:喻其山

9.6

巡回法是如何识别三种重键情况的?分析图9.10的流程图,并编写一个8行×8列的巡回法识别重键程序,端口地址用标号表示。

答:1.图9.8(a),只识别A键;图9.8(b),A、B键同行则识别A键而舍弃B键,不同行则两键均识

别;图9.8(c)若B键处于较小行号上则只读入B键,若B键处于较大行号上则两键均读入。 2.START: MOV AL,00H

MOV DX,RPORT ;取行端口号 OUT DX,AL ;使所有各行为低电平 MOV DX,LPORT ;取列端口号 IN AL,DX ;读入列值 CMP AL,0FFH ;判断是否有键闭合 JZ QUIT ;无键闭合,则退出 CALL DELAY ;有键闭合,则延时消抖 MOV AL,0FEH ;使第0行为低电平 MOV CX,08H ;总行数送CX

KEY: MOV DX,RPORT

OUT DX,AL ;使所选的一行为低电平 PUSH AX ;保存行值 MOV DX,LPORT IN AL,DX ;读入列值 CMP AL,0FFH ;所选行上有闭合键吗? JNZ YE ;有键闭合,则转译码程序 POP AX ;无键闭合,恢复行值 SHL AL,1 ;选择扫描下一行 LOOP KEY JMP QUIT ;扫描结束则退出

YE: ┆ ;键译码程序

PUSH AX ;AX中为键值

KEY1: MOV DX,LPORT ;读入列值

IN AL,DX CMP AL,0FFH ;测试键是否已释放 JNZ KEY1 ;如未释放则等待 CALL DELAY ;已释放则再去抖动 POP AX ;AX中为键值 ┆ ;键命令处理

QUIT: RET ;返回 在LED显示系统中,采用硬件方法译码和采用软件方法译码各有什么优缺点?

答:使用方便,不占用CPU过多的时间是硬件译码方法的优点,其缺点是使用局限性大(如有的

硬件只能对BCD码进行译码等),成型电路改造麻烦。软件译码正好相反。

画一个实现4位显示的扫描和驱动电路,LED为共阴极器件。然后画出LED显示程序流程图。 答:1.实现4位显示的扫描和驱动电路见下图。

2.LED显示程序流程图也见下页图。 设计计时器软件时,可以采用哪几种方案?哪一种方案最好?为什么在中断处理程序中包含的模块越少越容易调试?

答:1.① 显示程序和初始化程序等放在主程序中,键盘处理程序和计时程序放在中断处理程序中。

② 显示程序、键盘处理程序和初始化程序等都放在主程序中,计时程序放在中断处理程序中。 ③ 键盘处理程序等作为主程序,显示和计时程序作为中断处理程序 2.第③种方案最好。因其软件设计较为简单,显示实现较方便。 3.模块越少,程序越简单,调试自然越容易。

9.7

9.8

9.9

7864629.docxx - 33 - 作者:喻其山

指向缓冲区首址 +5V 取显示位指针 关 显 示 取要显示的数 段驱动 修改缓冲区指针和位码 将数变为段码 段码送到段控制通道 位码送到位控制通道 ?? 延迟一定时间 N 是否是最右边一位? Y 退 出 Dpgfedcba 阴极 ?? 位驱动 第 10 章 CRT技术

10.1 显示器控制系统中,字符发生器、显示存储器分别起什么作用?字符发生器是怎样选中某个单元

的? 答:1.字符发生器的作用是存放并提供每个ASCII码的显示字型码。显示存储器的作用是存放由CPU

送来的显示字符的ASCII码和属性码或图形点阵,并能由CRT控制器和CPU读取。 2.字符发生器的单元选址由该字符的ASCII码和字符行的扫描线序号来选中的。

7864629.docxx - 34 - 作者:喻其山

10.2 将一个字符显示到屏幕上,要进行什么操作?

答:① 访问显存,找到该字符的ASCII码。

② 顺序多次访问字符发生器,逐次读取该字符对应每条水平扫描线上的点阵码。 ③ 将并行格式的点阵码送到视频移位寄存器。

④ 移位寄存器用串行方式将视频串行数据流送到显示器。

10.3 在IBM PC/XT系统中,彩色显示器的显示存储器空间在什么地方?黑白显示器的显示存储器空间

呢?分别写出这两个显示存储区的首尾地址和空间长度。 答:1.彩显在B8000H~BBFFFH单元;

2.黑白在B0000H~B0FFFH单元;

3.彩色图形方式为:B8000H~B9F3FH、BA000H~BBF3FH共16000字节(16KB)。黑白为:B0000H~B0F3FH共4000字节(4KB)。

第 11 章 打印机接口技术

11.1 打印机和主机接口方式有哪两大类?衡量一台打印机的主要指标有哪些?

答:1.打印机和主机接口有并行和串行两大类。

2.主要指标有:接收的是串行数据还是并行数据、字符打印还是图形打印、可接收的字符种类、打印行缓冲器和输入缓冲器、字模形式及单向打印还是双向打印等指标。 11.2 一个打印机和主机之间的信号有哪些?数据信号中的可打

印字符和控制字符是由打印机内部哪一部分电路处理的? 答:1.有数据信号、选通信号、回答信号和忙信号。

2.两类字符由输入控制逻辑电路进行判断。控制信号由其送往时序电路和打印机控制逻辑电路。可打印字符再送往打印行缓冲器。 11.3 什么叫Centronic标准?在这一标准中,哪些信号用来指示

Y 打印机的状态?哪些信号用来控制打印机工作?最重要的控制信号和状态信号是什么?

答:1.由美国Centronic公司制定的打印机并行接口的36

芯D型插座的接口信号标准。

2.用来指示打印机状态的信号有:ACKNLG、BUSY、PE、SLCT、ERROR。

3.控制打印机工作的信号有:STROBE、AUTO FEED XT、INIT、SLCTIN。

4.最重要的控制信号是:STROBE;最重要的状态信号是:BUSY。 11.4 根据《微型计算机技术及应用》一书的图11.4,设计打印

机驱动程序的详细流程图。 答:流程图如右图所示:

打印输出程序 8255A初始化 PC7输出1,使STB无效 输入PB0,BUSY? N 从内存缓冲区取打印字符,通过8255A的PA口输出 PC7输出0,使STB有效 PC7输出1,使STB无效 N 数据打印完了吗? Y 11.5 串行打印机中,通过什么方法来解决速度较快的主机和速度较慢的打印机之间的协调工作问题?为

什么“输入缓冲器满信号”并不是在缓冲器装满时才发出?

答:1.加入较大容量的输入缓冲器,且在输入缓冲器将要装满时,打印机向主机发出输入缓冲器满

信号,主机因此停止发送数据到打印机。

2.避免在全满时,主机发送的数据丢失。以及在主机未及时向打印机发送数据时,打印机中仍然有数据打印。 11.6 在IBM PC/XT系统中,主机和打印机通过哪几个端口地址相联系?主机往打印机可发哪几种命令?

7864629.docxx - 35 - 作者:喻其山

答:1.端口地址为378H~37AH。

2.5种命令。即:数据写入命令、数据读出命令、控制字写入命令、控制字读出命令、状态字读出命令。 11.7 在IBM PC/XT系统中,打印机适配器的控制字和状态字格式分别是什么?

答:① 控制字格式:只用了低5位。

D7 D6 D5 D4 D3 D2 D1 D0 允许中断 联机 初始化 自动加换行 选通 IRQEN SLCT IN AUTO FD STROBE INIT ② 状态字格式:只用了高5位。 D7 D6 D5 D4 D3 D2 D1 D0 忙 应答 纸用完 联机状态 打印出错 PE SLCT ACK ERROR BUSY 11.8 主机和打印机用中断方式和查询方式时,具体分别用怎样的过程来实现字符输出?

答:① 中断方式:每当打印机接收一个字符后,使用ACK信号向主机发出中断请求,主机收到此

信号且IF=1时,响应中断,从而往打印机发送下一个字符。

② 查询方式:主机不停地测试打印机的“忙”信号。当忙时,主机必须等待;当“忙”信号

消失时,主机便往打印机输出一个字符,并且发出选通信号STB。 11.9 在IBM PC/XT系统中,BIOS的17H中断提供了哪些打印功能?

答:AH=0时打印AL中的字符,AH=1时初始化打印机,AH=2时读打印机状态。并且都由AH返

回当前状态字。 11.10 下面是一个查询方式下的打印机控制程序,进入程序时,AX中为要打印的字符,退出时,AH中为状态,AL中为打印字符,画出下面程序流程,并说明PRI近过程开始 AH中的状态所表示的含义,再说明选通信号为怎样的

保护现场 波形。

PRI PROC NEAR

等待时间常数→BL PUSH DX PUSH CX 保护并输出AX中的打印字符(AL) PUSH BX MOV BL,0FFH ;BL中为打印机等 DX改为指向打印机的状态控制口 ;待时间常数

MOV DX,PORT ;PORT为打印机数 置循环初值CX=0,循环65536次 ;据口地址

PUSH AX ;保存打印字符

读取状态并送AH保存 OUT DX,AL ;AL中的打印字符

N ;送打印机

打印机“忙”吗? INC DX ;指向状态口

Y TEST1: SUB CX,CX ;设置循环初值,循 输出选N 通信循环结束了吗? ;环65536次

号,先Y TESTATE: IN AL,DX ;取状态 使控制等待时间常数BL–1→BL MOV AH,AL 口N D0=1,TEST AL,80H ;检测状态

等待时间到吗? 再使控JNZ AAA ;打印机不忙,

Y 制口;则转AAA

置超时标志AH.0=1 D0=0 LOOP TESTATE ;打印机忙,

;则再测

恢复打印字符并送AL DEC BL ;等待时间常

;数减1 恢复现场并RET JNZ TEST1 ;时间未到,则

PRI近过程结束 ;再检测

OR AH,1 ;如超时等待,则置出错标志

7864629.docxx - 36 - 作者:喻其山

JMP BBB ;退出

AAA: MOV AL,0DH ;使D0位为1

OUT DX,AL ;输出选通信号 MOV AL,0CH ;使D0位为0,选通信号复位 OUT DX,AL

BBB: POP DX ;恢复打印字符

MOV AL,DL ;打印字符送AL POP BX POP CX POP DX RET ;返回

PRI ENDP

答:1.程序流程图如上页右图所示:

2.AH的状态:AH.7位“忙”,AH.0位“超时出错”。 3.选通信号是一个正脉冲信号

11.11 以下是IBM PC/XT系统的打印机服务程序的一部分,其中省去了从打印缓冲区取数据的部分。378H

为打印机数据口地址,37AH为打印机控制口地址,20H为8259A的偶地址端口地址。请为下列程序加上注释。 PRI PROC FAR ;打印的中断服务 ;子程序,是一个远 ;过程

STI ;开中断 PUSH AX ;保护现场 PUSH DX PUSH BX ┆ ;从打印缓冲区取数据送入AL MOV DX,378H ;指向打印机数据口 OUT DX,AL ;输出打印字符 MOV DX,37AH ;指向打印机控制口 MOV AL,1DH ;输出选通信号(先使D0位为1) OUT DX,AL MOV AL,1CH ;输出选通信号(再使D0位为0) OUT DX,AL ┆ ;修改缓冲区指针,指向下一个单元 MOV AL,20H ;向8259A发一般的中断结束命令 OUT 20H,AL POP BX ;恢复现场 POP DX POP AX IRET ;中断返回 PRI ENDP ;中断处理程序结束 答:注释见程序的下划线部分。

第 12 章 软盘、硬盘和光盘子系统

(略)

7864629.docxx - 37 - 作者:喻其山

第 13 章 总线

13.1 什么叫内部总线?什么叫计算机外部总线?通常讲的总线是指哪一种?

答:1.位于芯片内部的总线叫内部总线。

2.位于芯片外部连接各部件的总线叫外部总线。 3.通常讲的总线是指外部总线。

13.2 计算机系统采用总线结构有什么优点?局部总线和系统总线有什么差别?局部总线在多处理器系

统中为什么显得特别重要?

答:1.优点在于凡是同一种总线标准的模块可直接与该总线连接,扩展及应用非常方便。

2.局部总线是指主机板内部和其他插件板内部的总线,其上挂有局部的存储器和局部的I/O口。而系统总线是指连接各插件板的总线,其上挂有公共存储器和公共的输入/输出接口。 3.可以把很大一部分存储器读/写操作和输入/输出操作通过局部总线来完成。只有在访问公共存储器和公共输入/输出接口时,才用系统总线。于是,对系统总线的使用次数便大大减少,避免了“堵塞”现象,并且还提供了各个子系统并行工作的条件。 13.3 MULTIBUS有什么特点?在MULTIBUS中,P1插头信号中有哪些总线控制信号?

答:1.MULTIBUS有如下特点:

① 既支持8位,也支持16位的数据总线;若为32位数据总线,则需用MULTIBUS–II。 ② 很容易组成多机系统。 第3版答案:1、独立于CPU ③ 在总线的各主模块板上都有总线控制器。 2、灵活性强 ④ 可以有8级中断响应信号。 3、可靠性和抗干扰性好 ⑤ 信号线全部用负逻辑定义。

2.P1插头的总线控制信号有:BCLK、BPRN、BPRO、BUSY、BREQ和CBRQ。另外,还

有一个LOCK。

13.4 在MULTIBUS系统中,读操作过程和写操作过程的工作时序如何?请用时序图和文字进行说明。

答:① 读操作过程:主模块首先输出地址,然后发出读命令MRDC (存储器读命令)或者IORC (I/O

读命令),从模块接到命令后,将数据置于数据总线,然后发送传输响应信号XACK。当主模块接收到XACK信号后,便选通输入,并撤销MRDC或IORC,随后,XACK也消失。时序图见书457页图13.6所示。

② 写操作过程:主模块送出地址的同时,也送出数据,然后发出写命令MWTC(存储器写命令)或者IOWC(I/O写命令),此后,从模块接收数据,并向主模块发出传输响应信号XACK。当主模块接收到XACK信号后,便撤消写命令,并撤消地址和数据。时序图见书457页图13.7所示。 13.5 在MULTIBUS中,为什么要用字节交换缓冲器?进行字节交换的原理是什么?

答:1.因为MULTIBUS中,可以允许16位模块和8位模块混合使用。

2.当8位模块和16位模块(其上有字节交换缓冲器)交换数据时,16位模块通过字节交换缓冲器,将高8位的数据输出到DAT7~DAT0上,再通过DAT7~DAT0进行数据传输。 13.6 当系统中多个主模块同时请求使用总线时,采用什么方式解决这个问题?

答:采用总线仲裁方式。

13.7 说明串行的总线仲裁方式和并行的总线仲裁方式使用场合的区别。

答:串行的总线仲裁方式适用于主模块数目较少的系统中。并行的总线仲裁方式适用于较多主模块

的系统中。

7864629.docxx - 38 - 作者:喻其山

第 14 章 主机系统的结构和工作原理

14.1 IBM PC/XT系统板的电路分为哪五个功能块?它的I/O空间为多少?内存寻址空间为多少?IBM PC/XT的中断源最多可为多少?

答:1.CPU子系统、接口部件子系统、总线、ROM子系统和RAM子系统五个功能块。

2.IBM PC/XT的最大I/O空间为1K。 3.内存寻址空间为1M字节。 4.最多可为256个中断源。 14.2 IBM PC/XT系统中,8088工作于最大模式还是最小模式?在此模式下,有什么特点?

答:1.最大模式。

2.在最大模式下,需要总线控制器8288把系统的控制信号送到总线上去。另外,允许使用8087协处理器等。 14.3 IBM PC/XT的时钟信号频率为多少?一个基本总线周期由多少时钟周期组成?基本总线周期和时

钟信号之间是什么关系?

答:1.IBM PC/XT的时钟信号频率为:4.77MHz。

2.一个基本总线周期由4个时钟周期组成。 3.时钟信号是CPU的基本时间计量单位;基本总线周期包含4个时钟周期,称为4个状态,即:T1状态、T2状态、T3状态、T4状态。 14.4 IBM PC/XT系统板上有哪些接口部件?DMA器件8237A–5的4个通道分别作什么用途?用户开发

程序时,可以用哪个DMA通道?8253–5的3个定时器/计数器是怎样使用的?中断控制器8259A的八级中断中哪些被系统用了,哪些提供给用户使用? 答:1.8237A–5、8253–5、8255A–5、8259A各一片。

2.DMA的通道0用于RAM刷新,通道1为用户保留,通道2用于软驱,通道3用于硬驱。 3.用户用DMA的通道1。

4.计数器0作为定时器,为计时电子钟提供恒定时间标准;计数器1为DMA通道0产生RAM刷新请求;计数器2用于产生扬声器的音调。 5.8259A的IR0和IR1被系统占用。 6.8259A的IR2~IR7供用户使用。 14.5 在什么情况下,系统中必须用到总线控制器8288?概括地讲,8288有什么功能?如果一个8086/8088

系统中不使用8288,那么,应该怎样得到下列信号:MEMW、MEMR、IOW、IOR、ALE?画出简单线路图以表明这4个信号的来源。

答:1.当8086/8088 CPU工作于最大模式时,必须用到8288。

2.功能:根据CPU执行指令时提供的状态信号来建立控制时序,据此输出读/写控制命令。 3.ALE由8086/8088 CPU的25脚直接提供(最小模式)。对8086CPU而言:信号得到方法如下。 M/IO M/IO IOR IOW

RD WR

M/IO M/IO

MR MW

RD WR 14.6 8086/8088系统工作于最大模式时和最小模式时,CPU在连接上有什么差别?此时CPU的输出信号

有什么差别?

答:1.最大模式下必须使用总线控制器8288,最小模式确不能用它。另外,最大模式时MIN/MAX必须接地,最小模式时MIN/MAX必须接+5V。

2.CPU只有24~31脚的输出控制信号发生变化:24~25脚的INTA→QS1,ALE→QS0;26、27、28脚的DEN、DT/R、M/IO (或M/IO)变为S0 ~ S2;29脚的WR→LOCK;30、31脚的

本文来源:https://www.bwwdw.com/article/p16g.html

Top