微型计算机技术及应用习题解答
微型计算机技术及应用习题解答
第一章 微型计算机概述
1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?
答:① 微处理器是微型计算机的核心,是微型计算机的一部分。它是集成在一块芯
片上的 CPU,由运算器和控制器组成。
② 微型计算机包括微处理器、存储器、I/O接口和系统总线,是微型计算机系统的主
体。
③ 微型计算机系统包括微型计算机、外设及系统软件三部分。
1.2
CPU 在内部结构上由哪几部分组成?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 的信号,如时钟
信号、中断请求信号、准备就绪信号等。
第二章 8086 微处理器
1
微型计算机技术及应用习题解答
2.1 总线接口部件有哪些功能?请逐一进行说明。
答:1.总线接口部件的功能是负责与存储器、I/O 端口传送数据。
2.具体讲:① 总线接口部件要从内存取指令送到指令队列;
② CPU 执行指令时,总线接口部件要配合执行部件从指定的内存单
元或者外设端口中取数据,将数据传送给执行部件,或者把执行部件的操作结
果传送到指定的内存单元或外设端口中。
2.2
8086 的总线接口部件由哪几部分组成?
答: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.4
8086 的执行部件有什么功能?由哪几部分组成?
答: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.6
8086/8088 和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么
优点?
答:1.传统的计算机在执行指令时,指令的提取和执行是串行进行的。8086/8088 CPU
的总线接口部件和执行部件在提取和执行指令时是并行同时工作的。
2.8086/8088 CPU 的设计思想有力地提高了 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 分别执行下列动作:
1 T1 状态:CPU 往多路复用总线上发出地址信息,以指出要寻找的存储单元
或外设端口的地址。
2 T2 状态:CPU 从总线上撤销地址,而使总线的低 16 位浮置成高阻状态,
为传输数据做准备。总线的高 4 位(A19~A16)用来输出本总线周期的状态信
2
微型计算机技术及应用习题解答
息。
3 T3 状态:多路总线的高 4 位继续提供状态信息。低 16 位(8088 为低 8 位)
上出现由 CPU 写出的数据或者 CPU 从存储器或端口读入的数据。
4 T4 状态:总线周期结束。
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/ IO ,8088 的第 28 腿为 M/ IO (为兼容 8080 等)。
③ 8086 的第 34 腿为 BHE /S7,8088 的第 34 腿为 0SS 。
2.10 在对存储器和 I/O 设备读写时,要用到 IOR 、 IOW 、 MR 、 MW 信号,这些信号在
M/IO
M/IO
M/IO
M/IO
IOR
MR
IOW
MW
最大模式和最小模式时分别可用怎样的电路得到?请画出示意图。
答:1.最小模式(以 8086 为例):
2.最大模式:用 8288 总线控制器来实现。
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
INTA
最 小 模 式
信号
26
DEN
25
ALE
29
WR
27
DT/
R
28
M/
IO
30
HLDA
31
HOLD
最 大 模 式
信号
QS1
QS0
0S
1S
2S
LOCK
RQ /
RQ /
3
微型计算机技术及应用习题解答
1GT
0GT
另外 8088 的第 34 腿在最大模式时为高电平,最小模式时为 SS0 状态信号。8088
的第 28 腿在最小模式时为 M/ IO 信号。
2.14
2.15
8086 和 8088 是怎样解决地址线和数据线的复用问题的?ALE 信号何时处于有效电
平?
答:1.在总线周期的 T1 状态,复用总线用来输出要访问的存储器或 I/O 端口的地址给
地址锁存器 8282(3 片)锁存;在其他状态为传送数据或作传送准备。地址锁存
器 8282 在收到 CPU 发出的地址锁存允许信号 ALE 后,锁存地址。
2.ALE 信号在每个总线周期的 T1 状态为有效高电平。
BHE 信号和 A0 信号是通过怎样的组合解决存储器和外设端口的读/写的?这种组合
决定了 8086 系统中存储器偶地址体及奇地址体之间应该用什么信号来区分?怎样区
分?
答:1.组合情况如下:
BHE
0
1
0
0
1
操
A0
作
0 从偶地址开始读/写一个字
0 从偶地址单元或端口读/写一个字节
1 从奇地址单元或端口读/写一个字节
1 从奇地址开始读/写一个字(在第一个总线
周期,将低 8 位数送 AD15~AD8, 在第二
0
个总线周期,将高 8 位数送 AD7~AD0)
所用的数据引腿
AD15~AD0
AD7~AD0
AD15~AD8
AD15~AD8
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.时序图为:
4
微型计算机技术及应用习题解答
T4/TI
采样
CLK
HOLD
HLDA
采样
三态引腿
高阻
2.19
8086 系统在最小模式时应该怎样配置?请画出这种配置并标出主要信号的连接关系。
答:1.8086 系统在最小模式时的配置是:8086CPU 一片,8284A 时钟发生器一片,
8282 地址锁存器三片,8286 总线收发器二片。
2.连接关系为:
RESET
READY
8284A
CLK RESET
READY
ALE
BHE
A19~A16
AD15~AD0
8282
(3 片)
STB
BHE
地址总线
8286(2片)
OE
T
数据总线
控制总线
DEN
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 的 2S 、 1S 、 0S 状态信息,时钟 CLK 信
号,及决定本身工作方式的信号 IOB、 AEN 、CEN。
4.总线控制器的输出信号是:用来作为 CPU 进行中断响应的信号 INTA ,两组读
5
微型计算机技术及应用习题解答
/写控制信号 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
2.24 画出 8086 最小模式时的读周期时序。
答:见书 27 页图 2.11 所示。
BHE 输出
2.25
8086 最多可有多少个中断?按照产生中断的方法分为哪两大类?
答: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)。
6
微型计算机技术及应用习题解答
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 要执行的读/写周期如下:
① 执行两个中断响应总线周期。并取得中断类型码。
② 执行一个总线写周期。标志寄存器 FR 值入栈。
③ 执行一个总线写周期。CS 值入栈。
④ 执行一个总线写周期。IP 值入栈。
⑤ 执行一个总线读周期。读取中断处理子程序入口地址的偏移量→IP。
⑥ 执行一个总线读周期。读取中断处理子程序入口地址的段地址→CS。
2.若是一个软件中断,则跳过上述第①步,而执行②~⑥步。
7
微型计算机技术及应用习题解答
2.35 中断处理子程序在结构上一般是怎样一种模式?
答:① 保护中断时的现场,即保护 CPU 各寄存器的值。
② 一般应置 IF=1 来开放中断,以允许级别较高的中断请求进入。
③ 中断处理的具体内容。
④ 恢复中断时的现场。
⑤ 中断返回指令。
2.36 软件中断有哪些特点?在中断处理子程序和主程序的关系上,软件中断和硬件中断有
什么不同之处?
答:1.软件中断有如下特点:
① 用一条中断指令进入中断处理子程序,并且,中断类型码由指令提供。
② 进入中断时,不需要执行中断响应总线周期。
③ 不受中断允许标志 IF 的影响。
④ 软件中断的优先级最高。
⑤ 软件中断没有随机性。
2.软件中断允许在主程序和中断处理子程序之间传递数据。而硬件中断由于是随
机的,所以不能传递数据。
2.37 系统中有多个总线模块时,在最大模式和最小模式下分别用什么方式来传递总线控制
权?
答:1.8086/8088 在最小模式下用总线控制联络信号(HOLD 和 HLDA)来传递总线控制
权。
2.8086/8088 在最大模式下用总线请求/总线允许信号及释放信号 RQ /
0GT 和
RQ /
1GT 来传递总线控制权。
2.38
2.39
8086 存储空间最大为多少?怎样用 16 位寄存器实现对 20 位地址的寻址?
答:1.8086 存储空间最大为 220=1MB。
2.采用分段的方法实现 16 位寄存器实现对 20 位地址的寻址。
物理地址=段基址×10H+偏移地址
IBM PC/XT 系统中,哪个区域为显示缓冲区?哪个区域用来存放中断向量?在
FFFF0H 到 FFFFFH 单元中存放什么内容?
答:1.B0000H~B0F9FH 约 4KB 为单色显示器的显示缓冲区;B8000~BBF3FH 约 16KB
为彩色显示器的显示缓冲区。
2.00000H~003FFH 共 1KB 区域用来存放中断向量。
3.在 FFFF0H 到 FFFFFH 单元中存放一条无条件转移指令,转到系统的初始化程
序。
第三章 8086 的寻址方式和指令系统 略
第四章 存储器和高速缓存技术
4.1 计算机的内存有什么特点?内存由哪两部分组成?外存一般指哪些设备?外存有什
么特点?
答:1.内存可被 CPU 直接访问,内存的存取速度快,内存的空间大小受到地址总线
位数的限制。
2.内存由 ROM 和 RAM 两部分组成。
3.外存一般指软盘、硬盘、磁带机上的磁带及光盘。
4.外存的特点是大容量,所存信息即可修改,又可长期保存。但外存速度慢,要
配置专用设备。
8