第二章 8086 系统结构

65
通通通通通通 , 通通通通通通通• 8086CPU 结结 • CPU 结结结结结结 • 结结结结结结结结 • 结结结结结结结结结 • 8086 结 结结 通通通 8086 通 通通

Upload: larya

Post on 13-Jan-2016

160 views

Category:

Documents


0 download

DESCRIPTION

第二章 8086 系统结构. 通过本章学习 , 应掌握以下内容: 8086CPU 结构 CPU 引脚及其功能 存储器组织与堆栈 总线周期与操作时序 8086 系统配置. §2.1 8086CPU 结构 一、 8086 的功能结构 微处理器 8086 从功能上分为两部分:总线接口部分( BIU ),执行部分( EU )。 两部分各自执行自己的功能并行工作,这种工作方式与传统的 计算机在执行指令时的串行工作方式相比极大地提高了工作效率。. 传统的 CPU 采用串行工作方式 :. CPU. 存结果 1. 取指令 2. 取指令 1. 执行 1. 取操作数. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第二章   8086 系统结构

通过本章学习 , 应掌握以下内容:

• 8086CPU 结构• CPU 引脚及其功能• 存储器组织与堆栈• 总线周期与操作时序• 8086 系统配置

第二章 8086 系统结构

Page 2: 第二章   8086 系统结构

§2.1 8086CPU 结构 一、 8086 的功能结构 微处理器 8086 从功能上分为两部分:总线接口部分( BIU ),执行部分( EU )。 两部分各自执行自己的功能并行工作,这种工作方式与传统的 计算机在执行指令时的串行工作方式相比极大地提高了工作效率。

Page 3: 第二章   8086 系统结构

传统的 CPU 采用串行工作方式:

取指令1

执行 1 存结果1

取指令2

取操作数 执行2

CPU

BUS 忙碌 忙碌 忙碌 忙碌

Page 4: 第二章   8086 系统结构

8086CPU 并行工作方式:

取指令 2 取操作数BIU 存结果 取指令 3取操作数 取指令 4

执行 1 执行 2 执行 3 EU

BUS 忙碌 忙碌 忙碌 忙碌 忙碌 忙碌

Page 5: 第二章   8086 系统结构

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 结构图

Page 6: 第二章   8086 系统结构

1 、总线接口部件( BIU )功能:( 1 )从内存取指令送到指令队列。( 2 ) CPU 执行指令时,到指定的位置取操作数,并将其送至要求的位置单元中。总线接口部件的组成:( 1 )四个段地址寄存器 CS , 16 位代码段寄存器; DS , 16 位数据段寄存器; ES , 16 位附加段寄存器; SS , 16 位堆栈段寄存器。

Page 7: 第二章   8086 系统结构

( 2 ) 16 位指令指针寄存器 IP ( PC )。

( 3 ) 20 位的地址加法器。

( 4 )六字节的指令队列缓冲器。

说明:

( 1 )指令队列缓冲器:在执行指令的同时,将取下一条指令,并放入指令队列缓冲器中。 CPU 执行完一条指令后,可以执行下一条指令(流水线技术)。提高 CPU 效率。

( 2 )地址加法器:产生 20 位地址。 CPU 内无论是段地址寄存器还是偏移量都是 16 位的,通过地址加法器产生 20 位地址。

Page 8: 第二章   8086 系统结构

2 、执行部件

作用:

( 1 )从指令队列中取出指令。

( 2 )对指令进行译码,发出相应的控制信号。

( 3 )接收由总线接口送来的数据或发送数据至接口。

( 4 )进行算术运算。

执行部件的组成:

( 1 ) 4 个通用寄存器 AX 、 BX 、 CX 、 DX 。

四个通用寄存器都是 16 位或作两个 8 位来使用。

( 2 ) 4 个专用寄存器

Page 9: 第二章   8086 系统结构

SP------ 堆栈指针寄存器

BP------ 基址指针寄存器

DI------- 目的变址寄存器

SI------- 源变址寄存器

( 3 )算术逻辑单元 ALU

完成 8 位或者 16 位二进制算术和逻辑运算,计算偏移量。

( 4 )数据暂存寄存器

协助 ALU 完成运算,暂存参加运算的数据。

( 5 )执行部件的控制电路

从总线接口的指令队列取出指令操作码,通过译码电路分析,发出相应的控制命令,控制 ALU 数据流向。

Page 10: 第二章   8086 系统结构

( 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

Page 11: 第二章   8086 系统结构

例 : 将 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

Page 12: 第二章   8086 系统结构

3 、 CPU 执行程序的操作过程

( 1 ) 20 位地址形成,并将从该地址指定的单元中取出指令字节,依次放入指令队列中。( 2 )当指令队列中有 2 个空字节时,总线接口部件就会自动取指令至队列中。( 3 )执行部件从指令队列队首取出指令代码,执行该指令。( 4 )当队列已满,执行部件又不使用总线时,总线接口部件进入空闲状态。( 5 )执行转移指令、调用指令、返回指令时,先清空队列内容,再将要执行的指令放入队列中。

Page 13: 第二章   8086 系统结构

§2.2 8086CPU 的引脚及其功能

8086CPU 可在两种模式下工作:

最小模式:只有一 8086CPU 。

最大模式:有两个或两个以上的 CPU ,一个为主 CPU8086 ,另一个为协 CPU8087 。

指令周期:执行一条指令所需要的时间。

总线周期(机器周期): CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。

T 状态(时钟周期): CPU 处理动作的最小单位。

T1 T2 T3 TW T4

总线周期

Page 14: 第二章   8086 系统结构

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

Page 15: 第二章   8086 系统结构

一、最小模式下的引脚及功能

1 、地址 / 数据总线

AD15-AD0 :地址 / 数据复用引脚,双向,三态。•在 T1 状态,为 16 位地址总线 A15-A0 ,输出访问存储器或 I/O 的地址信息。•在 T2 ~ T4 状态,为 16 位数据总线 D15-D0 ,与存储器和 I/O 设备交换数据信息。•地址 / 数据总线复用,分时工作。2 、 A19/S6-A16/S3

地址 / 状态总线复用引脚,输出,三态。

Page 16: 第二章   8086 系统结构

T1 状态:输出地址的高 4 位信息 A19-A16

T2 、 T3 、 T4 状态:输出状态信息

S6 :指示当前 CPU 是否与总线相连, S6=0 ,表示 8086 当前与总线相连。

S5 :中断允许标志当前的状态。

S5=0 ,禁止一切可屏蔽中断源的中断请求;

S5=1 ,允许一切可屏蔽中断源的中断申请。

Page 17: 第二章   8086 系统结构

S4 、 S3 :当前正在使用的段寄存器

S4 S3 段寄存器

0 0 当前正在使用 ES

0 1 当前正在使用 SS

1 0 当前正在使用 CS

1 1 当前正在使用 DS

Page 18: 第二章   8086 系统结构

/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 未定义。

Page 19: 第二章   8086 系统结构

( 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端口。

Page 20: 第二章   8086 系统结构

( 5 ) READY :准备就绪信号,输入,高电平有效。

READY=1 ,表示 CPU 访问的存储器或 IO端口已准备好传送数据。

若 CPU 在总线周期 T3 状态检测到 READY=0 ,表示未准备好, CPU 自动插入一个或多个等待状态 TW ,直到 READY=1 为止。

( 6 ) INTR :可屏蔽中断请求信号,输入。

当 INTR=1 ,表示外设向 CPU 发出中断请求, CPU 在当前指令周期的最后一个 T 状态去采样该信号,若此时, IF=1 , CPU响应中断,执行中断服务程序。

Page 21: 第二章   8086 系统结构

( 7 ) /INTA :中断响应信号,输出,低电平有效。CPU响应中断时发两个负脉冲。第一个负脉冲,表示CPU响应了外设发来的中断申请信号 INTR 。第二个负脉冲,通知外设向数据总线上放中断类型号。

( 8 ) NMI :不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受 IF 状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。

( 9 ) /TEST :测试信号,输入,低电平有效。当 CPU 执行 WAIT 指令时,每隔个时钟周期对 /TEST 进行一次测试,若 /TEST=1 ,继续等待,直到 /TEST=0 。

Page 22: 第二章   8086 系统结构

( 10 ) RESET :复位信号,输入,高电平有效。 RESET 信号至少要保持 4 个时钟周期。

复位时:标志寄存器、 IP 、 DS 、 SS 、 ES 为 0 ,CS=FFFFH ,指令队列清空。复位后 CPU 从 FFFF0H处开始 执行。

( 11 ) ALE :地址锁存允许信号,输出,高电平有效。用来锁存地址信号 A15-A0 ,分时使用 AD15-AD0 地址/ 数据总线。

Page 23: 第二章   8086 系统结构

( 12 ) DT//R :数据发送 / 接收控制信号,三态输出。此信号控制数据总线上的收发器 8286/8287 的数据传送方向。

DT//R=1 ,发送数据 ----写操作;

DT//R=0 ,接收数据 ----读操作。

( 13 ) /DEN :数据允许信号,三态输出,低电平有效。作为数据总线上收发器 8286 的选通信号。

( 14 ) HOLD :总线请求信号,输入,高电平有效。当系统中 CPU之外的另一个控制器要求使用总线时,通过它向 CPU 发一高电平的请求信号。

Page 24: 第二章   8086 系统结构

( 15 ) HLDA :总线请求响应信号,输出,高电平有效。当 HLDA 有效时,表示 CPU 对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的 CPU的线脚呈现高阻抗状态,从而让出总线。

( 16 ) MN//MX :工作模式选择信号,输入。 MN//MX=1 ,表示 CPU 工作在最小模式系统; MN//MX=0 ,表示 CPU 工作在最大模式系统。

( 17 ) CLK :主时钟信号,输入。 8086 的时钟频率为 5MHZ 。

Page 25: 第二章   8086 系统结构

4 、电源线和地线

8086/8088采用单 +5V , 1 、 20 引脚为地线。

二、最大模式下的有关引脚

( 1 ) QS1 、 QS2 :指令队列状态信号,输出。

QS1 QS2 含义

0 0 无操作

0 1 将指令首字节送入指令队列

1 0 队列为空

1 1 将指令其余字节送指令队列

Page 26: 第二章   8086 系统结构

( 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 无作用 无

Page 27: 第二章   8086 系统结构

( 3 ) /RQ//GT0 、 /RQ//GT1 :总线请求信号(输入) / 总线请求允许信号(输出),双向,低电平有效。

( 4 ) /LOCK :总线封锁信号,三态输出,低电平有效。 /LOCK=0 , CPU 不允许其它控制器占用总线。

Page 28: 第二章   8086 系统结构

例:若 8086 工作在单 CPU 方式,试给出在读I/O端口时, M//IO 、 DT//R 、 /DEN 、 /RD 、 /WR等信号线的状态。

Page 29: 第二章   8086 系统结构

§2.3 存储器的组织和堆栈

1 、 8086 存储器的分体结构

8086 系统中, 1MB 的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为 512KB 。它们的访问由 /BHE 、 A0 组合决定:

/BHE A0 总线使用情况 0 0 从偶地址单元开始,在 16 位数据总线上进行字传送

0 1 从奇地址单元开始,在高 8 位数据总线上进行字节传送

1 0 从偶地址单元开始,在低 8 位数据总线上进行字节传送

1 1 无效

Page 30: 第二章   8086 系统结构

•8086 用两个存储体来组织实际存储空间

奇地址 偶地址

00001H00003H

00000H00002H

FFFFEHFFFFFH

…. ….

BHE A0

A0 ~ A19 BHE

D8 ~ D15 D0 ~ D7

地址交叉排列

8086

D0 ~ D15

•规划字(对准字)存放 : 偶地址作为字的地址•非规划字(非对准字)存放 : 奇地址作为字的地址•规则字的读 /写只需访问一次存储器;非规则字的读 /写需二次访问存储器。第一次访问奇地址,第二次访问偶地址。

Page 31: 第二章   8086 系统结构

2 、存储器编址

在内存里以字节为单位存取信息,系统为每个字节编一个地址(二进制数表示,书写格式为十六进制),称为存储器地址,存储的内容即为数据。

地址 内容00000H

00001H

00002H

FFFFFH

00000001

00100011

01000101

……

存储器中的数据及表示形式

2301H(规则字 )

4523H(非规则字 )

Page 32: 第二章   8086 系统结构

地址 内容00000H

00001H

00002H

FFFFFH

00000001

00100011

01000101

……

• 字节数 01H 的地址为 00000H 、字节 23H 的地址为 00001H 、字节 45H 的地址为 00002H 。

• 字 2301H 的地址为 00000H 、字 4523H 的地址为 00001H 。

• 地址 00000H 的内容既是 01H ,又是 2301H

• 顺序存放,低字节低地址(字数据)

01H2301H

4523H 45H

Page 33: 第二章   8086 系统结构

3 、 存储器的分段结构

由于 8086 有 20 条地址线,可以寻址多达 220 ( 1M )字节,所以把 1M 字节的存储器分为任意数量的段,其中每一段最多可达寻址 216 ( 64K )字节。

8086CPU把 1M 字节的存储器空间划分为任意的一些存储段,每个段的起始地址必须能 16整除(该地址的最低四位为 0000 )。

8086 可将内存最多可分为 64K 个段,最少可分为 16 个段。每个段的最大范围是 64KB ,最小的段是16B 。段与段之间可连续分布,也可重叠。

在所有的段中, 8086 当前可以访问的段只有 4个,它们分别由 CS 、 DS 、 ES 和 SS 所指定。

Page 34: 第二章   8086 系统结构

(1) 逻辑地址和物理地址

物理地址:也称实际地址,是用唯一的 20 位二进制数所表示的地址,规定了 1M 字节存储体中某个具体单元的地址 。如 00002H 。

逻辑地址在程序中使用,即段地址:偏移地址 。

如 2000H : 0003H

2000H : 0000H 12H

0001H 34H

0002H 56H

0003H 78H

Page 35: 第二章   8086 系统结构

(2)物理地址的形成

物理地址 = 段基址 * 16 (左移 4 位) + 偏移地址。

段基址: CS 、 DS 、 ES 、 SS 。

偏移地址: IP 、 DI 、 SI 、 BX 、 BP 、 SP等。

物理地址的形成如下:(由 20 位地址全加器实现)

段寄存器值

偏移量+

物理地址

16 位 4 位

16 位

20 位

0000

Page 36: 第二章   8086 系统结构

• 一个存储单元可以有一个或多个逻辑地址,但只能有一个物理地址。

例如物理地址 21000H 可以有以下几个逻辑地址:

2100 : 0000H 2000 : 0100H

• 段基址由系统自动分配,而偏移地址则由用户编程时提供。

DATA SEGMENT

X DB 12H

Y DW 34H

DATA ENDS

则 DS 段中, Y 的地址为 0001H ,非规则存放。

Page 37: 第二章   8086 系统结构

CS 0000

IP代码段

DS 或 ES 0000

SI 、 DI 或 BX

SS 0000

SP 或 BP

数据段

堆栈段

存储器段寄存器和偏移地址寄存器组合关系

Page 38: 第二章   8086 系统结构

4 、堆栈和堆栈操作命令 堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。

( 1 )堆栈的概念

堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则 。

( 2 )堆栈的组织 堆栈指示器 SP ,他总是指向堆栈的栈顶。堆栈的伸展方向既可以从高地址向低地址,也可以从低地址向高地址。 8086 的堆栈的伸展方向是从高地址向低地址。

Page 39: 第二章   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

Page 40: 第二章   8086 系统结构

•进栈操作: 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

Page 41: 第二章   8086 系统结构

•出栈操作: 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

Page 42: 第二章   8086 系统结构

§2.4 总线周期与操作时序 在微机系统中, CPU 是在时钟信号 CLK 控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。

指令周期:执行一条指令所需要的时间。

总线周期(机器周期): CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。

T 状态(时钟周期): CPU 处理动作的最小单位。

T1 T2 T3 TW T4

总线周期

Page 43: 第二章   8086 系统结构

8086 的操作时序分为如下几个总线周期:

( 1 )总线读周期

( 2 )总线写周期

( 3 )总线空操作

( 4 )中断响应周期

( 5 )总线保持和响应周期

( 6 )复位操作

Page 44: 第二章   8086 系统结构

总线操作

总线读操作: CPU 从存储器或外设读取数据。

总线写操作: CPU 将数据写入存储器或外设。

1 、总线读周期

总线周期包括: T1 、 T2 、 T3 、( TW )、 T4 机器周期。

( 1 ) T1 周期•M//IO 信号:从存储器读还是从 I/O 设备中读数据;•AD15-AD0 、 A19/S7-A16/S3 :确定 20 位地址;•/BHE :选择奇地址存储体选择。•ALE :地址锁存信号,以使地址 / 数据线分开。

Page 45: 第二章   8086 系统结构

( 2 ) T2 状态•A19/S6-A16/S3 :出现 S6-S3 状态信号。决定段寄存器、 IF 状态、 8086CPU 是否连在总线上。•AD15-AD0 :高阻状态。•/RD :由高电平变为低电平,开始进行读操作。•/DEN :变低电平,启动收发器 8286 ,做好接收数据的准备。

( 3 ) T3 状态•若存储器或 I/O端口已做好发送数据准备,则在 T3 状态期间将数据放到数据总线上,在 T3 结束时, CPU从 AD15-AD0 上读取数据。

Page 46: 第二章   8086 系统结构

( 4 ) TW 状态•在 T3 状态,存储器或外设没有准备好数据,不能在 T3 状态将数据放到总线上,使 READY=0 ,则 CPU 在T3 和 T4之间插入一个或几个 TW 状态,直到数据准备好 READY=1 为止。•TW 状态时总线的动作与 T3 时相同。

( 5 ) T4 状态

CPU 对数据总线进行采样,读出数据。

CPU往存储器或 I/O 设备读数据的时序如下页所示:

Page 47: 第二章   8086 系统结构

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端口读取数据的时序

Page 48: 第二章   8086 系统结构

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 是否连在总线上。

Page 49: 第二章   8086 系统结构

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 为止。

Page 50: 第二章   8086 系统结构

( 5 ) T4 状态

在 T4 状态,数据从数据总线上被撤除,各种控制信号和状态信号进入无效状态, CPU 完成了对存储器或 I/O 设备的写操作。

3 、总线空操作

8086 只有在 CPU 和存储器或外设要传送数据时,才能执行上述的总线周期;当指令队列已满,且 EU 未申请访问存储器时,不执行总线周期,总线接口进入了总线空闲周期。 S6 ~ S3 同前一总线周期;若前一周期是读周期,则 AD15 ~ AD0 为高阻态;总前一周期是写周期,则 AD15 ~ AD0保持数据有效。

Page 51: 第二章   8086 系统结构

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端口写数据的时序

Page 52: 第二章   8086 系统结构

4 、中断响应周期•中断响应周期: CPU 中止现行程序转中断服务程序这一过程。•中断响应周期要用两个总线周期。

第一个响应周期:使 AD15-AD0 、 /BHE/S7 、 A19/S6-A16/S3悬空。

第二个响应周期:外设向数据总线上输送一个字节的中断类型号。•每一响应周期的 T1 状态输出一个高电平脉冲,作为地址锁存信号。

Page 53: 第二章   8086 系统结构

CLK

T1 T2 T3 T4 T1 T2 T3 T4

第一中断响应周期 第二中断响应周期

ALE

/INTA

AD7-AD0

8086 中断响应周期的时序图

中断类型号

Page 54: 第二章   8086 系统结构

5 、总线保持和响应周期

当系统中 CPU之外的另一个控制器要求使用总线时,向 CPU 发请求信号 HOLD 。在每个时钟脉冲的上升沿, CPU检测 HOLD ,如为高电平,并且允许让出总线时,在总线周期的 T4 或空闲状态 Ti之后的下一个时钟周期,C PU 发出总线响应信号 HLDA ,并且让出总线,直到 HOLD 信号无效, CPU才收回总线控制权。

Page 55: 第二章   8086 系统结构

6 、系统复位

产生: RESET端上的高电平维持 4 个时钟周期,可使CPU 复位。

CPU 复位: PSW 、 DS 、 ES 、 SS 、 IP等寄存器被清零,指令队列被清空。 CS 寄存器设置为 FFFFH 。

当 RESET 由高电平变低电平 7 个机器周期后, CPU开始从 FFFF0 处执行程序。

注:由于复位后, IF=0 ,处关中断状态,所以在初始化程序中应开中断,使 CPU 可响应中断请求。

Page 56: 第二章   8086 系统结构

8086 的复位时序:

CLK

RESET 输入

RESET 内部

三态门 浮空

CPU 内部用时钟 CLK来同步外部的复位信号

Page 57: 第二章   8086 系统结构

8086CPU 复位后总线信号:

AD15-AD0 :

A19/S6-A16/S3 :

/BHE/S7 :

S2 、 S1 、 S0 :

/LOCK 、 /RD 、 /INTA :

ALE 、 HLDA 、 QS0 、 QS1 :

/RQ//GT0 :

/RQ//GT1 :

高阻状态

低电平

高电平

Page 58: 第二章   8086 系统结构

§2.5 8086 系统配置

根据迫使用目的不同, 8086 可以有最小模式和最大模式两种系统配置方式,两种方式的选择不是由程序进行控制的,而是由硬件设定的。当 CPU 的引脚 MN/MX 接低电平时,构成最小模式;当它接高电平时,构成最大模式。最小模式为单机系统,系统所需要的控制信号由 CPU 提供,实现和存储器及 I/O 接口电路的连接。最大模式可以构成多处理器 / 协处理器系统,每个处理器执行自己的程序常用的处理器有数值运算处理器 8087 、输入 / 输出处理器 8089 。

Page 59: 第二章   8086 系统结构

一、 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 产生

Page 60: 第二章   8086 系统结构

1 、 8284 时钟发生器

RESET

READY

CLK

OSC

PCLK

RES

RDY1

0

+5V

等待电路

14.31818MHZ

8284

RESET

READY

CLK

14.318MHZ

2.385MHZ8086

Page 61: 第二章   8086 系统结构

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

Page 62: 第二章   8086 系统结构

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 )

Page 63: 第二章   8086 系统结构

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

Page 64: 第二章   8086 系统结构

1 、总线控制器 8288

MN/MX

S0S1S2

S0S1S2 ALE

DT/RDENIOW

MEMRIOR

MEMWINTA

控制总线

CLK

8288

8086

8284

Page 65: 第二章   8086 系统结构

本章习题 :

1 、 5 、 6 、 9 ( a )( d )、11 ( a )( d )、 12 、 13 、 15 、18 、 20