《微机原理与接口技术》习题答案.docx
《《微机原理与接口技术》习题答案.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》习题答案.docx(85页珍藏版)》请在冰豆网上搜索。
![《微机原理与接口技术》习题答案.docx](https://file1.bdocx.com/fileroot1/2023-1/27/6885f9bb-7626-4917-b893-19d6e8706163/6885f9bb-7626-4917-b893-19d6e87061631.gif)
《微机原理与接口技术》习题答案
《微机原理与接口技术》教案之习题答案
与戴梅萼编著的
《微型计算机技术及应用》
一书配套使用
喻其山
2007年10月18日
目录
第1章微型计算机概述1
第2章8086微处理器1
第3章8086的寻址方式和指令系统7
第4章存储器和高速缓存技术8
第5章微型计算机和外设的数据传输9
第6章串并行通信和接口技术12
第7章中断控制器、DMA控制器和计数器/定时器19
第8章模/数和数/模转换28
第9章键盘和LED显示器30
第10章CRT技术33
第11章打印机接口技术34
第12章软盘、硬盘和光盘子系统36
第13章总线37
第14章主机系统的结构和工作原理38
第15章微型机操作系统43
第1章
微型计算机概述
1.1微处理器、微型计算机和微型计算机系统三者之间有什么不同?
答:
①微处理器是微型计算机的核心,是微型计算机的一部分。
它是集成在一块芯片上的CPU,由运算器和控制器组成。
②微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主体。
③微型计算机系统包括微型计算机、外设及系统软件三部分。
1.2CPU在内部结构上由哪几部分组成?
CPU应具备哪些主要功能?
答:
1.CPU在内部结构上由以下几部分组成:
1算术逻辑部件(ALU);
2累加器和通用寄存器组;
3程序计数器(指令指针)、指令寄存器和译码器;
4时序和控制部件。
2.CPU应具备以下主要功能:
1可以进行算术和逻辑运算;
2可保存少量数据;
3能对指令进行译码并执行规定的动作;
4能和存储器、外设交换数据;
5提供整个系统所需要的定时和控制;
6可以响应其他部件发来的中断请求。
1.3累加器和其他通用寄存器相比,有何不同?
答:
许多指令的执行过程以累加器为中心;输入/输出指令一般也以累加器来完成。
1.4微处理器的控制信号有哪两类?
答:
一类是通过对指令的译码,由CPU内部产生的。
这些信号由CPU送到存储器、I/O接口电路和其他部件。
另一类是微型机系统的其他部件送到CPU的。
通常用来向CPU发出请求。
如中断请求、总线请求等。
1.5微型计算机采用总线结构有什么优点?
答:
首先是系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。
其次是一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩充。
1.6数据总线和地址总线在结构上有什么不同之处?
如果一个系统的数据和地址合用一套总线或者合用部分总线,那么,要靠什么来区分地址或数据?
答:
1.数据总线是双向三态;地址总线是单向输出三态。
2.数据和地址复用时,必须有一个地址选通信号来区分该总线上输出的是地址还是数据。
1.7控制总线传输的信号大致有哪几种?
答:
包括CPU送往存储器和I/O接口的控制信号,如读信号、写信号、中断响应信号、存储器和I/O接口区分信号等。
还包括其他部件送到CPU的信号,如时钟信号、中断请求信号、准备就绪信号等。
第2章8086微处理器
2.1总线接口部件有哪些功能?
请逐一进行说明。
答:
1.总线接口部件的功能是负责与存储器、I/O端口传送数据。
2.具体讲:
①总线接口部件要从内存取指令送到指令队列;
②CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结果传送到指定的内存单元或外设端口中。
2.28086的总线接口部件由哪几部分组成?
答:
4个段地址寄存器CS、DS、ES、SS;16位的指令指针寄存器IP;20位的地址加法器;6字节的指令队列。
2.3段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?
指向这一物理地址的CS值和IP值是唯一的吗?
答:
1.该指令的物理地址=CS×10H+IP=21F00H。
2.指向这一物理地址的CS值和IP值不是唯一的。
2.48086的执行部件有什么功能?
由哪几部分组成?
答:
1.8086的执行部件的功能是负责指令的执行。
2.4个通用寄存器AX、BX、CX、DX;4个专用寄存器BP、SP、SI、DI;标志寄存器FLAGS和算术逻辑单元ALU。
2.5状态标志和控制标志有何不同?
程序中是怎样利用这两类标志的?
8086的状态标志和控制标志分别有哪些?
答:
1.不同之处在于:
状态标志由前面指令执行操作的结果对状态标志产生影响,即前面指令执行操作的结果决定状态标志的值。
控制标志是人为设置的。
2.利用状态标志可进行计算和判断等操作。
利用控制标志可对某一种特定功能(如单步操作、可屏蔽中断、串操作指令运行的方向)起控制作用。
3.8086的状态标志有:
SF、ZF、PF、CF、AF和OF计6个。
8086的控制标志有:
DF、IF、TF计3个。
2.68086/8088和传统的计算机相比在执行指令方面有什么不同?
这样的设计思想有什么优点?
答:
1.传统的计算机在执行指令时,指令的提取和执行是串行进行的。
8086/8088CPU的总线接口部件和执行部件在提取和执行指令时是并行同时工作的。
2.8086/8088CPU的设计思想有力地提高了CPU的工作效率,这也正是8086/8088成功的原因之一。
2.7总线周期的含义是什么?
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。
2.8在总线周期的T1、T2、T3、T4状态,CPU分别执行什么动作?
什么情况下需要插入等待状态TW?
TW在哪儿插入?
怎样插入?
答:
1.在总线周期的T1、T2、T3、T4状态,CPU分别执行下列动作:
1T1状态:
CPU往多路复用总线上发出地址信息,以指出要寻找的存储单元或外设端口的地址。
2T2状态:
CPU从总线上撤销地址,而使总线的低16位浮置成高阻状态,为传输数据做准备。
总线的高4位(A19~A16)用来输出本总线周期的状态信息。
3T3状态:
多路总线的高4位继续提供状态信息。
低16位(8088为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。
4T4状态:
总线周期结束。
2.当被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。
这时,外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发一个“数据未准备好的信号”,于是CPU会在T3之后插入一个或多个附加的时钟周期TW。
3.TW插在T3状态之后,紧挨着T3状态。
4.插入的TW状态时的总线上的信息情况和T3状态的信息情况一样。
当CPU收到存储器或外设完成数据传送时发出的“准备好”信号时,会自动脱离TW状态而进入T4状态。
2.9从引腿信号上看,8086和8088有什么区别?
答:
①8086有16根数据/地址复用总线,8088只有8根,称AD7~AD0。
②8086的第28腿为M/
,8088的第28腿为M/
(为兼容8080等)。
③8086的第34腿为
/S7,8088的第34腿为
。
2.10在对存储器和I/O设备读写时,要用到
、
、
、
信号,这些信号在最大模式和最小模式时分别可用怎样的电路得到?
请画出示意图。
答:
1.最小模式(以8086为例):
2.最大模式:
用8288总线控制器来实现。
2.11CPU启动时,有哪些特征?
如何寻找8086/8088系统的启动程序?
答:
1.CPU启动时,有以下特征:
①内部寄存器等置为初值;
②禁止中断(可屏蔽中断);
③从FFFF0H开始执行程序;
④三态总线处于高阻状态。
2.8086/8088系统的启动程序从FFFF0H单元开始的无条件转移指令转入执行。
2.12CPU在8086的微机系统中,为什么常用AD0作为低8位数据的选通信号?
答:
因为每当CPU和偶地址单元或偶地址端口交换数据时,在T1状态,AD0引腿传送的地址信号必定为低电平。
而CPU的传输特性决定了只要是和偶地址单元或偶地址端口交换数据,则CPU必定通过总线低8位即AD7~AD0传输数据。
可见AD0可以用来作为接于数据总线低8位上的8位外设接口芯片的选通信号。
2.138086和8088在最大模式或最小模式时,引腿信号分别有什么不同?
答:
在此两种模式中,只有第24~31腿的信号不同。
引腿号
24
25
26
27
28
29
30
31
最小模式信号
ALE
DT/
M/
HLDA
HOLD
最大模式信号
QS1
QS0
/
/
另外8088的第34腿在最大模式时为高电平,最小模式时为SS0状态信号。
8088的第28腿在最小模式时为M/
信号。
2.148086和8088是怎样解决地址线和数据线的复用问题的?
ALE信号何时处于有效电平?
答:
1.在总线周期的T1状态,复用总线用来输出要访问的存储器或I/O端口的地址给地址锁存器8282(3片)锁存;在其他状态为传送数据或作传送准备。
地址锁存器8282在收到CPU发出的地址锁存允许信号ALE后,锁存地址。
2.ALE信号在每个总线周期的T1状态为有效高电平。
2.15
信号和A0信号是通过怎样的组合解决存储器和外设端口的读/写的?
这种组合决定了8086系统中存储器偶地址体及奇地址体之间应该用什么信号来区分?
怎样区分?
答:
1.组合情况如下:
A0
操作
所用的数据引腿
0
0
从偶地址开始读/写一个字
AD15~AD0
1
0
从偶地址单元或端口读/写一个字节
AD7~AD0
0
1
从奇地址单元或端口读/写一个字节
AD15~AD8
0
1
从奇地址开始读/写一个字(在第一个总线周期,将低8位数送AD15~AD8,在第二个总线周期,将高8位数送AD7~AD0)
AD15~AD8
AD7~AD0
1
0
2.用A0信号来区分偶地址体和奇地址体。
3.当A0=0时选中偶地址体,A0=1时选中奇地址体。
2.16RESET信号来到后,CPU的状态有哪些特点?
答:
复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器FR、IP、DS、SS、ES、其他寄存器及指令队列清0,而将CS设置为FFFFH。
当复位信号变为低电平后,CPU从FFFF0H单元开始执行程序。
2.17在中断响应过程中,8086往8259A发的两个
信号分别起什么作用?
答:
第一个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,往数据总线上放中断类型码,从而CPU得到了有关此中断请求的详尽信息。
2.18总线保持过程是怎样产生和结束的?
画出时序图。
答:
1.当系统中CPU之外的另一个主模块要求占用总线时,通过HOLD引腿向CPU发一个高电平的请求信号。
如果CPU此时允许让出总线,就在当前总线周期完成时,于T4状态从HLDA引腿发出一个应答信号,对刚才的HOLD请求做出响应。
同时,CPU使地址/数据总线和控制状态线处于浮空状态。
总线请求部件收到HLDA信号后,就获得了总线控制权,在此后一段时间,HOLD和HLDA都保持高电平。
在总线占有部件用完总线之后,会把HOLD信号变为低电平,表示现在放弃对总线的占有。
8086/8088收到低电平的HOLD信号后,也将HLDA变为低电平,这样,CPU又获得了地址/数据总线和控制状态线的占有权。
2.时序图为:
2.19
8086系统在最小模式时应该怎样配置?
请画出这种配置并标出主要信号的连接关系。
答:
1.8086系统在最小模式时的配置是:
8086CPU一片,8284A时钟发生器一片,8282地址锁存器三片,8286总线收发器二片。
2.连接关系为:
2.20时钟发生器的功能是什么?
画出它的线路图。
答:
1.时钟发生器的功能是:
提供频率恒定占空比符合标准的时钟信号,对准备好(READY)和复位(RESET)信号进行同步。
2.线路图见书21页图2.7所示。
2.218086在最大模式下应当怎样配置?
最大模式时为什么一定要用总线控制器?
总线控制器的输入信号是什么?
输出信号是什么?
答:
1.8086在最大模式下的配置是:
8086CPU一片,8284A时钟发生器一片,8282地址锁存器三片,8286总线收发器二片,8288总线控制器一片,8259A中断优先级管理部件一片。
2.因为在最大模式下,需要用外加电路来对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及总线收发器8286的控制信号。
8288总线控制器就是完成上述这些功能的专用芯片。
所以必须用总线控制器。
3.总线控制器的输入信号是:
来自CPU的
、
、
状态信息,时钟CLK信号,及决定本身工作方式的信号IOB、
、CEN。
4.总线控制器的输出信号是:
用来作为CPU进行中断响应的信号
,两组读/写控制信号
、
、
、
,两个提前的写控制信号
、
,送给地址锁存器的信号ALE,送给数据收发器的信号DEN和DT/
。
2.22在编写程序时,为什么通常总要用开放中断指令来设置中断允许标志?
答:
因为在复位时,标志寄存器FR被清0,则IF=0,禁止从INTR进入的可屏蔽中断,所以必须在编写程序时,用指令来设置中断允许标志。
2.23T1状态下,数据/地址复用总线上是什么信息?
用哪个信号将此信息锁存起来?
数据信息是在什么时候给出的?
用时序图表示出来。
答:
1.T1状态下,数据/地址复用总线上是地址信息。
2.用ALE信号的下降沿将此地址信息锁存在三片8282中。
3.数据信息的给出时间分两种:
①总线读周期时,数据信息在T3、TW、T4中间给出;
②总线写周期时,数据信息在T2、T3、TW、T4中间给出。
4.时序图如下:
T1T2T3TWT4
地址状态输出
地址数据输出
地址数据输入
BHE输出
2.24画出8086最小模式时的读周期时序。
答:
见书27页图2.11所示。
2.258086最多可有多少个中断?
按照产生中断的方法分为哪两大类?
答:
1.8086最多可有256个中断。
2.按照产生中断的方法分为硬件中断和软件中断两大类。
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发两个
中断响应负脉冲,外设接到第二个负脉冲后,立即往数据线上给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要执行的读/写周期如下:
①执行两个中断响应总线周期。
并取得中断类型码。
②执行一个总线写周期。
标志寄存器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在最大模式下用总线请求/总线允许信号及释放信号
/
和
/
来传递总线控制权。
2.388086存储空间最大为多少?
怎样用16位寄存器实现对20位地址的寻址?
答:
1.8086存储空间最大为220=1MB。
2.采用分段的方法实现16位寄存器实现对20位地址的寻址。
物理地址=段基址×10H+偏移地址
2.39IBMPC/XT系统中,哪个区域为显示缓冲区?
哪个区域用来存放中断向量?
在FFFF0H到FFFFFH单元中存放什么内容?
答:
1.B0000H~B0F9FH约4KB为单色显示器的显示缓冲区;B8000~BBF3FH约16KB为彩色显示器的显示缓冲区。
2.00000H~003FFH共1KB区域用来存放中断向量。
3.在FFFF0H到FFFFFH单元中存放一条无条件转移指令,转到系统的初始化程序。
第3章8086的寻址方式和指令系统
略
第4章存储器和高速缓存技术
4.1计算机的内存有什么特点?
内存由哪两部分组成?
外存一般指哪些设备?
外存有什么特点?
答:
1.内存可被CPU直接访问,内存的存取速度快,内存的空间大小受到地址总线位数的限制。
2.内存由ROM和RAM两部分组成。
3.外存一般指软盘、硬盘、磁带机上的磁带及光盘。
4.外存的特点是大容量,所存信息即可修改,又可长期保存。
但外存速度慢,要配置专用设备。
4.2用存储器件组成内存时,为什么总是采用矩阵形式?
请用一个具体例子进行说明。
答:
1.为了简化选择内存内部单元的地址译码电路及减少译码线数量。
2.例如,要组成1K字节的内存,若不用矩阵组织这些单元,而是将它们一字排开,就要1024条译码线才能实现对这些单元的寻址。
译码电路也因此而很复杂。
若用32×32来实现排列,就只要32条行选择线和32条列选择线就可以了。
因此其译码电路也将变得较为简单。
4.3为了节省存储器的地址译码电路,一般采用哪些方法?
答:
①存储器件按矩阵排列;
②内存按模块结构设计;
③模块内再进行分组处理。
4.4在选择存储器件时,最重要的考虑因素是什么?
此外还应考虑哪些因素?
答:
1.最重要的考虑因素是:
易失性、只读性、位容量和速度。
2.此外还应考虑:
功耗、可靠性和价格等因素。
4.5什么叫静态RAM?
静态RAM有什么特点?
答:
1.在电源不断电的情况下,信息一旦写入后不会丢失的RAM就叫静态RAM。
2.静态RAM的特点有:
不需刷新,因此简化了外部电路;但位容量较类似方法设计的动态RAM少,且功耗较大。
4.6静态RAM芯片上为什么往往只有写信号而没有读信号?
什么情况下可以从芯片读得数据?
答:
1.因为在存储器中,当允许信号有效之后,一定是进行读/写操作,非写即读。
因此,只用写信号
就可以即控制写操作,又控制读操作。
在写操作时,写脉冲发生器送来一个负脉冲作为写入信号;在读操作时,写脉冲发生器不产生负脉冲,而是