第二章 8086 系统结构
DESCRIPTION
第二章 8086 系统结构. 通过本章学习 , 应掌握以下内容: 8086CPU 结构 CPU 引脚及其功能 存储器组织与堆栈 总线周期与操作时序 8086 系统配置. §2.1 8086CPU 结构 一、 8086 的功能结构 微处理器 8086 从功能上分为两部分:总线接口部分( BIU ),执行部分( EU )。 两部分各自执行自己的功能并行工作,这种工作方式与传统的 计算机在执行指令时的串行工作方式相比极大地提高了工作效率。. 传统的 CPU 采用串行工作方式 :. CPU. 存结果 1. 取指令 2. 取指令 1. 执行 1. 取操作数. - PowerPoint PPT PresentationTRANSCRIPT
通过本章学习 , 应掌握以下内容:
• 8086CPU 结构• CPU 引脚及其功能• 存储器组织与堆栈• 总线周期与操作时序• 8086 系统配置
第二章 8086 系统结构
§2.1 8086CPU 结构 一、 8086 的功能结构 微处理器 8086 从功能上分为两部分:总线接口部分( BIU ),执行部分( EU )。 两部分各自执行自己的功能并行工作,这种工作方式与传统的 计算机在执行指令时的串行工作方式相比极大地提高了工作效率。
传统的 CPU 采用串行工作方式:
取指令1
执行 1 存结果1
取指令2
取操作数 执行2
CPU
BUS 忙碌 忙碌 忙碌 忙碌
8086CPU 并行工作方式:
取指令 2 取操作数BIU 存结果 取指令 3取操作数 取指令 4
执行 1 执行 2 执行 3 EU
BUS 忙碌 忙碌 忙碌 忙碌 忙碌 忙碌
AH AL
BH BL
CH CL
DH DL
SP
BP
DI
SI
通用寄存器
运算寄存器
ALU
标志
执行部分控制电路
1 2 3 4 5 6
CS
DS SS ES IP 内部寄存器
I/O控制电路
地址加法器
20 位
16 位
8 位 指令队列缓冲器
外总线
执行部件 总线接口部件
8086CPU 结构图
1 、总线接口部件( BIU )功能:( 1 )从内存取指令送到指令队列。( 2 ) CPU 执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。总线接口部件的组成:( 1 )四个段地址寄存器 CS , 16 位代码段寄存器; DS , 16 位数据段寄存器; ES , 16 位附加段寄存器; SS , 16 位堆栈段寄存器。
( 2 ) 16 位指令指针寄存器 IP ( PC )。
( 3 ) 20 位的地址加法器。
( 4 )六字节的指令队列缓冲器。
说明:
( 1 )指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中。 CPU 执行完一条指令后,可以执行下一条指令(流水线技术)。提高 CPU 效率。
( 2 )地址加法器:产生 20 位地址。 CPU 内无论是段地址寄存器还是偏移量都是 16 位的,通过地址加法器产生 20 位地址。
2 、执行部件
作用:
( 1 )从指令队列中取出指令。
( 2 )对指令进行译码,发出相应的控制信号。
( 3 )接收由总线接口送来的数据或发送数据至接口。
( 4 )进行算术运算。
执行部件的组成:
( 1 ) 4 个通用寄存器 AX 、 BX 、 CX 、 DX 。
四个通用寄存器都是 16 位或作两个 8 位来使用。
( 2 ) 4 个专用寄存器
SP------ 堆栈指针寄存器
BP------ 基址指针寄存器
DI------- 目的变址寄存器
SI------- 源变址寄存器
( 3 )算术逻辑单元 ALU
完成 8 位或者 16 位二进制算术和逻辑运算,计算偏移量。
( 4 )数据暂存寄存器
协助 ALU 完成运算,暂存参加运算的数据。
( 5 )执行部件的控制电路
从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制 ALU 数据流向。
( 6 )标志寄存器
16 位寄存器,其中有 7 位未用。D15 D0 OF DF IF TF SF ZF AF PF CF
进借位标志
奇偶标志
半进借位标志
零标志
符号标志
单步中断
中断允许
方向标志
溢出标志
1- 有进、借位
0- 无进、借位
1- 低 8 位有偶数个 1
0- 低 8 位有奇数个 1
1- 低 4 位向高 4 位有进、借位
0- 低 4 位向高 4 位无进、借位
1- 结果为 0
0- 结果不为0
例 : 将 5394H 与 -777FH 相加 , 并说明其标志位的状态。
【解】先求 -777FH 的补码:
原码: 1111 0111 0111 1111
反码: 1000 1000 1000 0000
补码: 1000 1000 1000 0001
再做加法运算: 0101 0011 1001 0100
+ 1000 1000 1000 0001
1101 1100 0001 0101
结果标志位为: CF=0 、 PF=0 、 AF=0
ZF=0 、 SF=1 、 OF=0
3 、 CPU 执行程序的操作过程
( 1 ) 20 位地址形成,并将从该地址指定的单元中取出指令字节,依次放入指令队列中。( 2 )当指令队列中有 2 个空字节时,总线接口部件就会自动取指令至队列中。( 3 )执行部件从指令队列队首取出指令代码,执行该指令。( 4 )当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。( 5 )执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。
§2.2 8086CPU 的引脚及其功能
8086CPU 可在两种模式下工作:
最小模式:只有一 8086CPU 。
最大模式:有两个或两个以上的 CPU ,一个为主 CPU8086 ,另一个为协 CPU8087 。
指令周期:执行一条指令所需要的时间。
总线周期(机器周期): CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。
T 状态(时钟周期): CPU 处理动作的最小单位。
T1 T2 T3 TW T4
总线周期
0102030405060708091011121314151617181920
4039383736353433323130292827262524232221
GND AD14 AD13 AD12 AD11 AD10
AD9 AD8
AD7AD6AD5
AD4AD3AD2AD1AD0NMIINTRCLKGND
VCC ( 5V )AD15A16/S3A17/S4A18/S5A19/S6/BHE/S7 MN//MX/RDHOLD ( /RQ//GT0 ) HLDA ( /RQ//GT1 )/WR ( /LOCK )M//IO ( /S2 )DT//R ( /S1 )/DEN ( /S0 )ALE ( QS0 )/INTA ( QS1 )/TESTREADYRESET
8086
一、最小模式下的引脚及功能
1 、地址 / 数据总线
AD15-AD0 :地址 / 数据复用引脚,双向,三态。•在 T1 状态,为 16 位地址总线 A15-A0 ,输出访问存储器或 I/O 的地址信息。•在 T2 ~ T4 状态,为 16 位数据总线 D15-D0 ,与存储器和 I/O 设备交换数据信息。•地址 / 数据总线复用,分时工作。2 、 A19/S6-A16/S3
地址 / 状态总线复用引脚,输出,三态。
T1 状态:输出地址的高 4 位信息 A19-A16
T2 、 T3 、 T4 状态:输出状态信息
S6 :指示当前 CPU 是否与总线相连, S6=0 ,表示 8086 当前与总线相连。
S5 :中断允许标志当前的状态。
S5=0 ,禁止一切可屏蔽中断源的中断请求;
S5=1 ,允许一切可屏蔽中断源的中断申请。
S4 、 S3 :当前正在使用的段寄存器
S4 S3 段寄存器
0 0 当前正在使用 ES
0 1 当前正在使用 SS
1 0 当前正在使用 CS
1 1 当前正在使用 DS
/BHE 、 A0 组合:
/BHE A0 总线使用情况 0 0 从偶地址单元开始,在 16 位数据总线上进行字传送
0 1 从奇地址单元开始,在高 8 位数据总线上进行字节传送
1 0 从偶地址单元开始,在低 8 位数据总线上进行字节传送
1 1 无效
3 、控制总线
(1)/BHE/S7 :高 8 位数据总线允许 / 状态复用引脚。在总线周期的 T1 状态,此引脚输出 /BHE 信号,表示高8 位数据线 D15-D8 上的数据有效。 在 8086 中, S7 未定义。
( 2 ) /RD :读信号,三态输出,低电平有效。
/RD=0 ,表示当前 CPU正在对存储器或 I/O端口进行读操作。
( 3 ) /WR :写信号,三态输出,低电平有效。
/WR=0 ,表示当前 CPU正在对存储器或 I/O端口进行写操作。
( 4 ) M//IO :存储器或 IO端口访问信号,三态输出。
M//IO=1 ,表示 CPU正在访问存储器;
M//IO=0 ,表示 CPU正在访问 IO端口。
( 5 ) READY :准备就绪信号,输入,高电平有效。
READY=1 ,表示 CPU 访问的存储器或 IO端口已准备好传送数据。
若 CPU 在总线周期 T3 状态检测到 READY=0 ,表示未准备好, CPU 自动插入一个或多个等待状态 TW ,直到 READY=1 为止。
( 6 ) INTR :可屏蔽中断请求信号,输入。
当 INTR=1 ,表示外设向 CPU 发出中断请求, CPU 在当前指令周期的最后一个 T 状态去采样该信号,若此时, IF=1 , CPU响应中断,执行中断服务程序。
( 7 ) /INTA :中断响应信号,输出,低电平有效。CPU响应中断时发两个负脉冲。第一个负脉冲,表示CPU响应了外设发来的中断申请信号 INTR 。第二个负脉冲,通知外设向数据总线上放中断类型号。
( 8 ) NMI :不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受 IF 状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。
( 9 ) /TEST :测试信号,输入,低电平有效。当 CPU 执行 WAIT 指令时,每隔个时钟周期对 /TEST 进行一次测试,若 /TEST=1 ,继续等待,直到 /TEST=0 。
( 10 ) RESET :复位信号,输入,高电平有效。 RESET 信号至少要保持 4 个时钟周期。
复位时:标志寄存器、 IP 、 DS 、 SS 、 ES 为 0 ,CS=FFFFH ,指令队列清空。复位后 CPU 从 FFFF0H处开始 执行。
( 11 ) ALE :地址锁存允许信号,输出,高电平有效。用来锁存地址信号 A15-A0 ,分时使用 AD15-AD0 地址/ 数据总线。
( 12 ) DT//R :数据发送 / 接收控制信号,三态输出。此信号控制数据总线上的收发器 8286/8287 的数据传送方向。
DT//R=1 ,发送数据 ----写操作;
DT//R=0 ,接收数据 ----读操作。
( 13 ) /DEN :数据允许信号,三态输出,低电平有效。作为数据总线上收发器 8286 的选通信号。
( 14 ) HOLD :总线请求信号,输入,高电平有效。当系统中 CPU之外的另一个控制器要求使用总线时,通过它向 CPU 发一高电平的请求信号。
( 15 ) HLDA :总线请求响应信号,输出,高电平有效。当 HLDA 有效时,表示 CPU 对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的 CPU的线脚呈现高阻抗状态,从而让出总线。
( 16 ) MN//MX :工作模式选择信号,输入。 MN//MX=1 ,表示 CPU 工作在最小模式系统; MN//MX=0 ,表示 CPU 工作在最大模式系统。
( 17 ) CLK :主时钟信号,输入。 8086 的时钟频率为 5MHZ 。
4 、电源线和地线
8086/8088采用单 +5V , 1 、 20 引脚为地线。
二、最大模式下的有关引脚
( 1 ) QS1 、 QS2 :指令队列状态信号,输出。
QS1 QS2 含义
0 0 无操作
0 1 将指令首字节送入指令队列
1 0 队列为空
1 1 将指令其余字节送指令队列
( 2 ) S2 、 S1 、 S0 :总线周期状态信号,三态输出。
S2 、 S1 、 S0 状态信号的编码 S2 S1 S0 操作过程 产生信号 0 0 0 发中断响应信号 /INTA
0 0 1 读 I/O端口 IORC
0 1 0 写 I/O端口 IOWC
0 1 1 暂停 无 1 0 0 取指令 /MRDC
1 0 1 读存储器 /MRDC
1 1 0 写存储器 /AMWC
1 1 1 无作用 无
( 3 ) /RQ//GT0 、 /RQ//GT1 :总线请求信号(输入) / 总线请求允许信号(输出),双向,低电平有效。
( 4 ) /LOCK :总线封锁信号,三态输出,低电平有效。 /LOCK=0 , CPU 不允许其它控制器占用总线。
例:若 8086 工作在单 CPU 方式,试给出在读I/O端口时, M//IO 、 DT//R 、 /DEN 、 /RD 、 /WR等信号线的状态。
§2.3 存储器的组织和堆栈
1 、 8086 存储器的分体结构
8086 系统中, 1MB 的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为 512KB 。它们的访问由 /BHE 、 A0 组合决定:
/BHE A0 总线使用情况 0 0 从偶地址单元开始,在 16 位数据总线上进行字传送
0 1 从奇地址单元开始,在高 8 位数据总线上进行字节传送
1 0 从偶地址单元开始,在低 8 位数据总线上进行字节传送
1 1 无效
•8086 用两个存储体来组织实际存储空间
奇地址 偶地址
00001H00003H
00000H00002H
FFFFEHFFFFFH
…. ….
BHE A0
A0 ~ A19 BHE
D8 ~ D15 D0 ~ D7
地址交叉排列
8086
D0 ~ D15
•规划字(对准字)存放 : 偶地址作为字的地址•非规划字(非对准字)存放 : 奇地址作为字的地址•规则字的读 /写只需访问一次存储器;非规则字的读 /写需二次访问存储器。第一次访问奇地址,第二次访问偶地址。
2 、存储器编址
在内存里以字节为单位存取信息,系统为每个字节编一个地址(二进制数表示,书写格式为十六进制),称为存储器地址,存储的内容即为数据。
地址 内容00000H
00001H
00002H
FFFFFH
00000001
00100011
01000101
……
存储器中的数据及表示形式
2301H(规则字 )
4523H(非规则字 )
地址 内容00000H
00001H
00002H
FFFFFH
00000001
00100011
01000101
……
• 字节数 01H 的地址为 00000H 、字节 23H 的地址为 00001H 、字节 45H 的地址为 00002H 。
• 字 2301H 的地址为 00000H 、字 4523H 的地址为 00001H 。
• 地址 00000H 的内容既是 01H ,又是 2301H
• 顺序存放,低字节低地址(字数据)
01H2301H
4523H 45H
3 、 存储器的分段结构
由于 8086 有 20 条地址线,可以寻址多达 220 ( 1M )字节,所以把 1M 字节的存储器分为任意数量的段,其中每一段最多可达寻址 216 ( 64K )字节。
8086CPU把 1M 字节的存储器空间划分为任意的一些存储段,每个段的起始地址必须能 16整除(该地址的最低四位为 0000 )。
8086 可将内存最多可分为 64K 个段,最少可分为 16 个段。每个段的最大范围是 64KB ,最小的段是16B 。段与段之间可连续分布,也可重叠。
在所有的段中, 8086 当前可以访问的段只有 4个,它们分别由 CS 、 DS 、 ES 和 SS 所指定。
(1) 逻辑地址和物理地址
物理地址:也称实际地址,是用唯一的 20 位二进制数所表示的地址,规定了 1M 字节存储体中某个具体单元的地址 。如 00002H 。
逻辑地址在程序中使用,即段地址:偏移地址 。
如 2000H : 0003H
2000H : 0000H 12H
0001H 34H
0002H 56H
0003H 78H
(2)物理地址的形成
物理地址 = 段基址 * 16 (左移 4 位) + 偏移地址。
段基址: CS 、 DS 、 ES 、 SS 。
偏移地址: IP 、 DI 、 SI 、 BX 、 BP 、 SP等。
物理地址的形成如下:(由 20 位地址全加器实现)
段寄存器值
偏移量+
物理地址
16 位 4 位
16 位
20 位
0000
• 一个存储单元可以有一个或多个逻辑地址,但只能有一个物理地址。
例如物理地址 21000H 可以有以下几个逻辑地址:
2100 : 0000H 2000 : 0100H
• 段基址由系统自动分配,而偏移地址则由用户编程时提供。
DATA SEGMENT
X DB 12H
Y DW 34H
DATA ENDS
则 DS 段中, Y 的地址为 0001H ,非规则存放。
CS 0000
IP代码段
DS 或 ES 0000
SI 、 DI 或 BX
SS 0000
SP 或 BP
数据段
堆栈段
存储器段寄存器和偏移地址寄存器组合关系
4 、堆栈和堆栈操作命令 堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。
( 1 )堆栈的概念
堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则 。
( 2 )堆栈的组织 堆栈指示器 SP ,他总是指向堆栈的栈顶。堆栈的伸展方向既可以从高地址向低地址,也可以从低地址向高地址。 8086 的堆栈的伸展方向是从高地址向低地址。
( 3 )堆栈的操作•建栈:通过对 SS 和 SP 的赋值建立。(也可省略) 如: MOV AX , 2000H
MOV SS , AX
MOV SP , 0100H
SS : SP
2000 : 0000 XX
2000 : 0001 XX
堆栈段
2000 : 00FF
2000 : 0100 XX 栈底(栈顶) SP=0100H
•进栈操作: PUSH 指令(字操作) 已知 AX=1234H 、 BX=5678H , PUSH AX 、 PUSH BX
第一次 PUSH 操作: 第二次 PUSH 操作:
2000 : 0000 XX 2000 : 0000 XX
2000 : 0001 XX 2000 : 0001 XX
2000 : 00FC XX 2000 : 00FC 78 SP
2000 : 00FD XX 2000 : 00FD 56
2000 : 00FE 34 SP 2000 : 00FE 34
2000 : 00FF 12 2000 : 00FF 12
2000 : 0100 XX ( 栈底 ) 2000 : 0100 XX
•出栈操作: POP 指令(字操作) 在前面操作的基础上作 POP CX 操作:
2000 : 0000 XX
2000 : 0001 XX
2000 : 00FC 78
2000 : 00FD 56
2000 : 00FE 34 SP
2000 : 00FF 12
2000 : 0100 XX ( 栈底 )
操作后:AX=1234HBX=5678HCX=5678HSP=00FEHSS=2000H
§2.4 总线周期与操作时序 在微机系统中, CPU 是在时钟信号 CLK 控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。
指令周期:执行一条指令所需要的时间。
总线周期(机器周期): CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。
T 状态(时钟周期): CPU 处理动作的最小单位。
T1 T2 T3 TW T4
总线周期
8086 的操作时序分为如下几个总线周期:
( 1 )总线读周期
( 2 )总线写周期
( 3 )总线空操作
( 4 )中断响应周期
( 5 )总线保持和响应周期
( 6 )复位操作
总线操作
总线读操作: CPU 从存储器或外设读取数据。
总线写操作: CPU 将数据写入存储器或外设。
1 、总线读周期
总线周期包括: T1 、 T2 、 T3 、( TW )、 T4 机器周期。
( 1 ) T1 周期•M//IO 信号:从存储器读还是从 I/O 设备中读数据;•AD15-AD0 、 A19/S7-A16/S3 :确定 20 位地址;•/BHE :选择奇地址存储体选择。•ALE :地址锁存信号,以使地址 / 数据线分开。
( 2 ) T2 状态•A19/S6-A16/S3 :出现 S6-S3 状态信号。决定段寄存器、 IF 状态、 8086CPU 是否连在总线上。•AD15-AD0 :高阻状态。•/RD :由高电平变为低电平,开始进行读操作。•/DEN :变低电平,启动收发器 8286 ,做好接收数据的准备。
( 3 ) T3 状态•若存储器或 I/O端口已做好发送数据准备,则在 T3 状态期间将数据放到数据总线上,在 T3 结束时, CPU从 AD15-AD0 上读取数据。
( 4 ) TW 状态•在 T3 状态,存储器或外设没有准备好数据,不能在 T3 状态将数据放到总线上,使 READY=0 ,则 CPU 在T3 和 T4之间插入一个或几个 TW 状态,直到数据准备好 READY=1 为止。•TW 状态时总线的动作与 T3 时相同。
( 5 ) T4 状态
CPU 对数据总线进行采样,读出数据。
CPU往存储器或 I/O 设备读数据的时序如下页所示:
CLK
T1 T2 T3 、 T
W
T4
M//IO
A19/S6-A16/S3 A19-A16/BHE/S7 /BHE S7-S3
ALE
READY
AD15-AD0 地址输出 数据输入
/RD
DT//R
/DEN
CPU 从存储器或 I/O端口读取数据的时序
2 、总线写周期
( 1 ) T1 状态•M//IO 信号:对存储器写还是对 I/O 设备中写数据;•AD15-AD0 、 A19/S7-A16/S3 :确定 20 位地址;•/BHE :选择奇地址存储体选择。•ALE :地址锁存信号,以使地址 / 数据线分开。•DT//R :为高电平,指示收发器 8286 发送数据,写操作。
( 2 ) T2 状态•A19/S6-A16/S3 :出现 S6-S3 状态信号。决定段寄存器、IF 状态、 8086CPU 是否连在总线上。
AD15-AD0 :发出 16 位数据。•/WR :由高电平变为低电平,开始进行写操作。•/DEN :变低电平,启动收发器 8268 ,做好发送数据的准备。
( 3 ) T3 状态•若存储器或 I/O端口已做好接收数据准备,则在 T3 状态期间将数据放到数据总线上,在 T3 结束时, CPU将 AD15-AD0 上数据写入到存储器或 I/O 设备中。
( 4 ) TW 状态•在 T3 状态,存储器或外设没有准备好接收数据,使READY=0 ,则 CPU 在 T3 和 T4之间插入一个或几个TW 状态,直到设备准备好 READY=1 为止。
( 5 ) T4 状态
在 T4 状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态, CPU 完成了对存储器或 I/O 设备的写操作。
3 、总线空操作
8086 只有在 CPU 和存储器或外设要传送数据时,才能执行上述的总线周期;当指令队列已满,且 EU 未申请访问存储器时,不执行总线周期,总线接口进入了总线空闲周期。 S6 ~ S3 同前一总线周期;若前一周期是读周期,则 AD15 ~ AD0 为高阻态;总前一周期是写周期,则 AD15 ~ AD0保持数据有效。
CLK
T1 T2 T3 、 T
W
T4
M//IO
A19/S6-A16/S3 A19-A16/BHE/S7 /BHE S7-S3
ALE
READY
AD15-AD0 地址输出 数据输出
/WR
DT//R
/DEN
CPU往存储器或 I/O端口写数据的时序
4 、中断响应周期•中断响应周期: CPU 中止现行程序转中断服务程序这一过程。•中断响应周期要用两个总线周期。
第一个响应周期:使 AD15-AD0 、 /BHE/S7 、 A19/S6-A16/S3悬空。
第二个响应周期:外设向数据总线上输送一个字节的中断类型号。•每一响应周期的 T1 状态输出一个高电平脉冲,作为地址锁存信号。
CLK
T1 T2 T3 T4 T1 T2 T3 T4
第一中断响应周期 第二中断响应周期
ALE
/INTA
AD7-AD0
8086 中断响应周期的时序图
中断类型号
5 、总线保持和响应周期
当系统中 CPU之外的另一个控制器要求使用总线时,向 CPU 发请求信号 HOLD 。在每个时钟脉冲的上升沿, CPU检测 HOLD ,如为高电平,并且允许让出总线时,在总线周期的 T4 或空闲状态 Ti之后的下一个时钟周期,C PU 发出总线响应信号 HLDA ,并且让出总线,直到 HOLD 信号无效, CPU才收回总线控制权。
6 、系统复位
产生: RESET端上的高电平维持 4 个时钟周期,可使CPU 复位。
CPU 复位: PSW 、 DS 、 ES 、 SS 、 IP等寄存器被清零,指令队列被清空。 CS 寄存器设置为 FFFFH 。
当 RESET 由高电平变低电平 7 个机器周期后, CPU开始从 FFFF0 处执行程序。
注:由于复位后, IF=0 ,处关中断状态,所以在初始化程序中应开中断,使 CPU 可响应中断请求。
8086 的复位时序:
CLK
RESET 输入
RESET 内部
三态门 浮空
CPU 内部用时钟 CLK来同步外部的复位信号
8086CPU 复位后总线信号:
AD15-AD0 :
A19/S6-A16/S3 :
/BHE/S7 :
S2 、 S1 、 S0 :
/LOCK 、 /RD 、 /INTA :
ALE 、 HLDA 、 QS0 、 QS1 :
/RQ//GT0 :
/RQ//GT1 :
高阻状态
低电平
高电平
§2.5 8086 系统配置
根据迫使用目的不同, 8086 可以有最小模式和最大模式两种系统配置方式,两种方式的选择不是由程序进行控制的,而是由硬件设定的。当 CPU 的引脚 MN/MX 接低电平时,构成最小模式;当它接高电平时,构成最大模式。最小模式为单机系统,系统所需要的控制信号由 CPU 提供,实现和存储器及 I/O 接口电路的连接。最大模式可以构成多处理器 / 协处理器系统,每个处理器执行自己的程序常用的处理器有数值运算处理器 8087 、输入 / 输出处理器 8089 。
一、 8086 在最小模式下的典型配置
8284A8284A
地址总线(地址总线( 2020 根)根)
READYREADYRESETRESET
ALEALEBHE/BHE/
A19 ~A16A19 ~A16
AD15~AD0AD15~AD0
地址地址锁存储器锁存储器
82828282
(三片)(三片)
BHEBHE
DENDT/RM/IO
WRRD
HOLDHLDAINTRINTA
CLK
收发器8286
(两片)数据总线( 16根)
控制总线
READYRESET
8086
MN/MX+5V
A0 ~ A19
D0 ~ D15
CPU 产生
1 、 8284 时钟发生器
RESET
READY
CLK
OSC
PCLK
RES
RDY1
0
+5V
等待电路
14.31818MHZ
8284
RESET
READY
CLK
14.318MHZ
2.385MHZ8086
O
O
O
D Q
CLK
O
DI 0 DO 0
STB OE
。。。。。。。
。。。。
。。。。。
DI 0 ~ DI 7 输入端
DO 0 ~ DO7 输出端
OE/ 允许控制(低电平有效)
STB锁存信号
高电平允许(通过)
低电平禁止(锁存)
2 、地址锁存器 8282 ( 74LS373 )
DI 7 DO7
AO
BO
OO
。。。。。。。
O
OET
A1
A7
。。。
B1
B7
。。。。
接 DEN 接DT/R
8286
DEN = 0OE = 0
当 DT/R=0 时, B A
当 DT/R = 1 时, A B
1
2
8
9
11
12
18
19
3 、总线驱动器 8286 (或 74LS245 )
8086
8282锁存储器(三片)
8286收发器
( 2片)
8288总线
控制器
READYRESET
8284A
RESETREADY
BHE/A16~A19
AD0~AD15
/ S0/ S1/ S2
CLK
MN/MX0DEN
DT/R
A0 ~ A19
D0 ~ D15
二、最大模式下的典型配置
ALE STB
BHE/
OE T
/ MRDC/ MWTC
/ IORC/ IOWC
/ INTAALE 。 DEN 。 DT/R
控制总线
/S0/S1/S2
1 、总线控制器 8288
MN/MX
S0S1S2
S0S1S2 ALE
DT/RDENIOW
MEMRIOR
MEMWINTA
控制总线
CLK
8288
8086
8284
本章习题 :
1 、 5 、 6 、 9 ( a )( d )、11 ( a )( d )、 12 、 13 、 15 、18 、 20