数据做准备。总线的高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.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信号,这些信号在最大模式和最小模式时分别可用怎样的电路
M/IO
IOR
M/IO
IOW
M/IO
MR
M/IO
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 25 26 27 28 29 30 31 号 最小INTA ALE DEN HLDA HOLD WR IORDT/ M/ 模式信号 最大QS1 QS0 LOCK RQ/GT1 RQ/GT0 S1 S0 S2 模式信号 另外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 1 0 个总线周期,将低8位数送AD7~AD0 AD15~AD8, 在第二个总线周期,将高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又获得了地址/数据总线和控制状态线的占有权。
T4/TI 采样 CLK HOLD HLDA 三态引腿
高阻 采样 2.时序图为:
2.19 8086系统在最小模式时应该怎样配置?请画出这种配置并标出
主要信号的连接关系。
答:1.8086系统在最小模式时的配置是:8086CPU一片,8284A时钟发生器一片,8282地址锁存器三片,8286总线收发器二片。 2.连接关系为:
RESET 8284A READY
8282
BHE (3片) CLK RESET READY STB ALE 地址总线 BHE A19~A16
8286(2片) AD15~AD0
数据总线 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的S2、S1、S0状态信息,时钟CLK信号,及决定本身工作方式的信号IOB、AEN、CEN。
4.总线控制器的输出信号是:用来作为CPU进行中断响应的信号INTA,两组读/
MWTC、IORC、IOWC,AIOWC,写控制信号MRDC、两个提前的写控制信号AMWC、
送给地址锁存器的信号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最多可有多少个中断?按照产生中断的方法分为哪两大