58
1 第第第 8086 第 第第 2-2 8088/8086 第第第第第第 2-3 8086 第第 第第第第第第第 2-4 8086CPU 第第 2-1 8086CPU 第第

第二章 8086 系统结构

Embed Size (px)

DESCRIPTION

第二章 8086 系统结构. 2-1 8086CPU 结构. 2-2 8088/8086 的存储器组织. 2-3 8086 的系统配置及引脚功能. 2-4 8086CPU 时序. 2-1 8086CPU 结构. 第二章 8086 系统结构. 一、 8086CPU 的内部结构. 属第三代微处理器 运算能力: 数据总线: DB - 16bit ( 8086 ) / 8bit ( 8088 ) 地址总线: AB - 20bit 内存 寻址能力 2 20 = 1MB. - PowerPoint PPT Presentation

Citation preview

Page 1: 第二章        8086 系统结构

1

第二章 8086 系统结构

2-2 8088/8086 的存储器组织

2-3 8086 的系统配置及引脚功能

2-4 8086CPU 时序

2-1 8086CPU 结构

Page 2: 第二章        8086 系统结构

2-1 8086CPU 结构第二章 8086 系统结构

一、 8086CPU 的内部结构

属第三代微处理器 运算能力: 数据总线: DB- 16bit ( 8086 ) / 8bit ( 8088 ) 地址总线: AB - 20bit 内存寻址能力 220 = 1MB

Page 3: 第二章        8086 系统结构

3

80868086 的内部结构从功能上分的内部结构从功能上分成两部分 : 总线接口部件 BIU:

总线接口单元 BIU ,负责控制存储器读写。 执行部件 EU:

执行单元 EU 从指令队列中取出指令并执行。特点特点:

取指令和执行指令分开进行,提高了速度。

2.2 IA - 32 微处理器的功能结构

Page 4: 第二章        8086 系统结构

4

2.2.1 8086

的功能结构

EU控制器

ALU

暂 存 器

标志寄存器

8 位队列总线

线

16 位内部总线

地址加法器20 位地址总线

16位数据总线

执行部件 EU 总线接口部件 BIU

1 2 3 4 5 6指令队列

通用寄存器AX AH ALBX BH BLCX CH CLDX DH DL

SP BP DI SI

CSDSSSES

8088808880868086

IP暂存器

80868086

总线总线 存存

储储器器接接口口

Page 5: 第二章        8086 系统结构

5

ES

SS

DSCS

ÄÚ²¿¼Ä´æÆ÷ ÊäÈë / Êä³ö¿ØÖÆ µç·

1 432

20λ

16λ

8086×ÜÏß

Ö¸Áî ¶ÓÁÐ

×ÜÏß ½Ó¿Úµ¥Ôª

65

16λ

IP

1. 总线接口部件 BIU ( Bus Interface Unit) 组成: 16 位段寄存器,指令指针, 20位地址加法器,总线控制逻辑, 6 字节指令队列。作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作数送 EU 单元去执行。工作过程:由段寄存器与 IP 形成 20 位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。

* 当指令队列有 2 个或 2 个以上的字节空余时, BIU 自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空, BIU 重新取新地址中的指令代码,送入指令队列。

* 指令指针 IP 由 BIU 自动修改, IP 总是指向下一条将要执行指令的地址。

Page 6: 第二章        8086 系统结构

2. 指令执行部件 EU ( Exection Unit)

组成:通用寄存器,标志寄存器, ALU ,EU 控制系统等。

±êÖ¾¼Ä´æÆ÷

ALU

DI

DH

SP

SI

BP

DL

ALAH

BLBH

CLCH

EU¿ØÖÆϵͳ

作用:负责指令的执行,完成指令的操作。

工作过程:从队列中取得指令,进行译码,根据指令要求向 EU 内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或 I/O 端口,则 EU 将操作数的偏移地址送给 BIU ,由 BIU 取得操作数送给 EU 。

Page 7: 第二章        8086 系统结构

3. 8086CPU 结构的特点: 减少了 CPU 为取指令而等待的时间,提高了 CPU 的运行速度。

È¡Ö¸ 1 Ö´ÐÐ 1

È¡Ö¸ 1

È¡Ö¸ 4È¡Ö¸ 3È¡Ö¸ 2

æ

Ö´ÐÐ 3 Ö´ÐÐ 4Ö´ÐÐ 2

æææ

Ö´ÐÐ 1 Ö´ÐÐ 2 Ö´ÐÐ 3 Ö´ÐÐ 4

È¡Ö¸ 2 È¡Ö¸ 3 È¡Ö¸ 4 È¡Ö¸ 6È¡Ö¸ 5

Ö´ÐÐ 6Ö´ÐÐ 5

æ æææææ

CPU

BUS

EU

BIU

BUS

t

t

Page 8: 第二章        8086 系统结构

8

8088 的指令执行过程

Page 9: 第二章        8086 系统结构

SP(¶ÑÕ»Ö¸Õë)BP(»ùÊýÖ¸Õë)

DI(Ä¿µÄ ±äÖ·)SI ( Ô´±ä Ö·)

F (״̬±êÖ¾)IP ( Ö¸ÁîÖ¸Õë)

DS (Êý¾Ý¶Î)¾)CS (Âë¶Î)

ES (¸½¼Ó¶Î)SS (¶ÑÕ»¶Î)ë)

二、 8088/8086 的寄存器结构

1. 通用寄存器组

3. 2 个控制寄存器

4. 4 个段寄存器

8088/8086 有 14 个 16 位寄存器

2. 指针 / 变址寄存器

16 位 8 位 8 位 AX → AH AL BX → BH BL CX → CH CL DX → DH DL

Page 10: 第二章        8086 系统结构

* 4 个 16 位的 数据寄存器( AX , BX , CX , DX )寄存器既可存放数据,也可存放地址。

1. 通用寄存器组

寄存器 操作

AX 字乘/除指令中作为累加器,字I/O指令中作为数据寄存器

AL 字节乘/除指令,字节 I/O,转移,十进制运算

AH 字节乘/除指令(高八位/余数),XLAT指令中作为目的寄存器

BX 作为地址/基址寄存器CX 串操作时,循环计数器

CL 变量位移或循环操作时用作计数器

DX 字乘/除指令(高十六位/余数),I/O间接寻址

* 既可作为 16 位寄存器也可作为 8 位寄存器使用。(例: AH , AL ) 8bit 寄存器只能存放数据。

* 各寄存器隐含用法

* 通用性强,对任何指令都具有相同的功能

Page 11: 第二章        8086 系统结构

2. 指针及变址寄存器( SP , BP , SI , DI )

SP 堆栈指针

BP 在间址寻址中作基址指针

SI地址和变址寄存器,串操作时的源变址寄存器(隐含)

DI 地址和变址寄存器,串操作时的目的变址寄存器(隐含)

* BP , SP 寄存器称为指针寄存器,与 SS 联用。

* DI , SI 寄存器称为变址寄存器,与 DS 联用,在串指令中, SI , DI 均为隐含寻址,此时, SI与 DS 联用, DI 与 ES 联用。

Page 12: 第二章        8086 系统结构

3. 指令指针和状态寄存器

( 1 ) 指令指针 I P 是一个 16 位的专用寄存器。当 BIU 从内存中取出一条指令,自动修改 IP ,始终指向下一条将要执行的指令在现行代码段中的偏移量。 8086/8088中的某些指令执行后会改变 IP 的内容,但用户不能编写指令直接改变 IP 的内容。

* I P 是指令地址在代码段内的偏移量(又称偏移地址),IP 要与 CS 配合构成共同物理地址。

( 2 ) 状态(标志)寄存器 PSW PSW 是一个 16 位的专用寄存器( 6 位状态位, 3 位控制位)存放运算结果的特征。

Page 13: 第二章        8086 系统结构

13

标 志 寄 存 器 Flags

唯一能按位操作的寄存器只定义了其中 9 位,另外 7 位未定义

(保留)6 位状态标志: OF 、 SF 、 ZF 、 PF 、

CF 、 AF3 位控制标志: DF 、 IF 、 TF

OF DF IF TF SF ZF AF PF CF

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

Page 14: 第二章        8086 系统结构

14

状 态 标 志用来记录程序中运行结构的状态信息。由于这些状态信息用来记录程序中运行结构的状态信息。由于这些状态信息往往作为往往作为后续条件转移指令的转移控制条件后续条件转移指令的转移控制条件,所以也称作,所以也称作条件码。条件码。

OF(Overflow Flag) :符号数溢出标志

OF=1:

判定方法: OF = 最高位进 / 借位次高位进 / 借位

加法运算时,若两个数符号相同,但结果符号相反。加法运算时,若两个数符号相同,但结果符号相反。

减法运算时,若两个数符号相反,结果符号与减数符号相同。减法运算时,若两个数符号相反,结果符号与减数符号相同。

Page 15: 第二章        8086 系统结构

15

状 态 标 志AF ( Auxiliary Carry Flag ):辅助进 / 借位标

志,半字节进位标志。用于 BCD 码调整指令。 AF=1 :在字节操作时,数据的 D3 位向 D4 位产生了

进 / 借位。这个标志主要用于十进制数算术运算指令中。

99 + 8+ 8

1717

0 0 0 0 0 0 0 0 11 0 0 1 0 0 1+ 0 0 0 0 + 0 0 0 0 11 0 0 0 0 0 0

0 0 0 0 0 0 11 0 0 0 1 0 0 0 1

Page 16: 第二章        8086 系统结构

16

状 态 标 志CF ( Carry Flag ):进位 / 借位标志,当结果的最高位 ( 字节操作时的 D7 或字操作时的 D15) 产生一个进位或借位,则 CF=1 。

这个标志主要用于多字节数的加、减法运算。这个标志主要用于多字节数的加、减法运算。

Page 17: 第二章        8086 系统结构

17

状 态 标 志 SF ( Sign Flag ):符号标志

记录运算结果的符号,结果为负 SF = 1 ;否则 SF=0;

ZF ( Zero Flag ):零标志 ZF=1 :运算结果为 0 (与是否进位无关)。 ZF=0 :运算结果不是 0 。

Page 18: 第二章        8086 系统结构

18

状 态 标 志PF (Parity Flag) :奇偶标志(低 8 位)

PF=1: 表示结果有偶数个 1 。PF=0: 表示结果有奇数个 1 。

有些运算的操作会影响全部状态标志,如加法、减法运算;

有些操作影响部分状态标志,如移位操作;也有些指令的操作不影响任何状态标志,如通

用数据传送指令。

Page 19: 第二章        8086 系统结构

19

1 0 0 0 1 1 0 1 0 0 1 1 0 110

0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1+

0110011010101001

运算结果最高位为 1 SF=1∴ ;

例: 2 个数相加后,分析各标志位的值

第三位向第四位有进位 ∴ AF=1 ;

次高位向最高位有进位 ,最高位向前没有进位→ OF=10=1

最高位没有进位 ∴CF=0 ;

低 8 位中 1 的个数为偶数个 ∴PF=1 ;

运算结果本身≠ 0 ZF=0∴ ;

两个正数相加,和为负数,和超范围 两个正数相加,和为负数,和超范围 ∴ OF=1;

Page 20: 第二章        8086 系统结构

20

思考题:X 、 Y 分别为下列各组数,当它们分别进

行加、减运算后,其标志位: S 、 O 、 C 、P 、 Z 的状态如何?

1 ) X=21H ; Y=43H2 ) X=48H ; Y=8DH3 ) X=9AH ; Y=0BCH4 ) X = 54H ; Y=54H

Page 21: 第二章        8086 系统结构

21

控 制 标 志控制标志位的值不由数据运算的结果决定,而由指令直接控制标志位的值不由数据运算的结果决定,而由指令直接赋值;可以决定后续指令的执行情况。赋值;可以决定后续指令的执行情况。

DF(Direction Flag) :方向控制标志位专用于串操作指令中控制数据串的处理方向。

DF=1 :串处理方向从高地址到低地址或是“从右到左”来处理串。

DF=0 :串处理方向从低地址到高地址或是“从左到右”来处理串。

指令指令 :CLD:CLD

指令指令 :STD:STD

Page 22: 第二章        8086 系统结构

22

控 制 标 志IF(Interupt Flag) :中断标志位

IF=1 :允许外部可屏蔽中断 INTR ,即 CPU 可以响应 INTR 的请求。

IF=0 :关闭 INTR ,即 CPU禁止响应 INTR 的请求。

用于控制 CPU 对外部可屏蔽中断的请求。TF(Trap Flag) :跟踪标志位

用于程序调试时进行单步方式工作。 TF=1 :单步工作方式,每执行完一条指令自动

产生一次内部中断,程序暂停供检查,用于调试程序。

TF=0 : CPU正常顺序执行不产生内部中断。 TF无法直接由指令赋值!

Page 23: 第二章        8086 系统结构

4. 段寄存器

* CS (代码段寄存器)指向当前的代码段,指令由此段 取出;*SS (堆栈段寄存器)指向当前的堆栈段,栈操作的对象 是该段存储单元的内容;*DS (数据段寄存器)指向当前的数据段,该段中存放程 序的操作数;*ES (附加段寄存器)指向当前的附加段,主要用于字符 串数据的存放,也可以用于一般数据 的存放。

8086/8088 按信息存储的不同性质分为四类,分别由四个段寄存器存放该段的首地址,或称为段地址。

Page 24: 第二章        8086 系统结构

2-2 8088/8086 的存储器组织

一、存储器地址的分段

矛盾:存储器地址空间 1MB , 20bit 地址线;内部各寄存器和数据总线均为 16bit 。

¶Î 1

¶Î 2

¶Î 16

¶Î 3

00000H

0FFFFH10000H

1FFFFH20000H

2FFFFH

F0000H

FFFFFH

1. 存储器地址的分段

解决方法:将整个存储器分为若干个逻辑段,每段内地址 16bit ,即最多地址空间 64KB 。

允许各逻辑段在整个存储空间浮动,段与段之间可以是连续的,也可以是分开的或重叠的。

Page 25: 第二章        8086 系统结构

00000H

逻辑段 2<=64KB

逻辑段 1起点逻辑段 2起点

逻辑段 3起点

逻辑段 4起点

FFFFFH

逻辑段 1<=64KB

逻辑段 4<=64KB

逻辑段 3<=64KB

每个段的首地址称为“段基值”, “段基值”必须能被 16 整除( XXXX0H )。

程序执行前,分别对相应的段寄存器 CS , DS , SS , ES 置“段基值”,若程序长度大于 64KB ,则可通过对 CS 送新的“段基值”将程序转移到新段中。

Page 26: 第二章        8086 系统结构

逻辑地址:允许在程序中编排的地址;2. 20 位物理地址的形成

物理地址:信息在存储器中实际存放的地址;

对给定的任一存储单元,有两部分逻辑地址: 段基址(段地址)——由 CS , DS , SS , ES决定 段内偏移量(段内有效地址)——(该单元相对于段基址的距离)

段地址 0000

段内有效地址 + 0000

物理地址 (20bit)

16bit

16bit

20bit

Page 27: 第二章        8086 系统结构

27

3. 逻辑地址的来源;

操作类型 隐含段地址 替换段地址 偏移地址取指令 CS 无 IP

堆栈操作 SS 无 SP

BP 间址 SS CS 、 DS 、 ES EA

存 / 取操作数 DS CS 、 SS 、 ES EA

源字符串 DS CS 、 SS 、 ES SI

目的字符串 ES 无 DI

EA--- 有效地址,

Page 28: 第二章        8086 系统结构

28

代码段

数据段

堆栈段

CS

IP

DS

SI ,DI BX或

SS

SP BP或

段寄存器和其他寄存器组合指向存储单元示意图

归纳段寄存器和其他寄存器组合指向存储单元示意图如下:

Page 29: 第二章        8086 系统结构

29

1. 问题的提出:

二、 8086 存储器的分体结构

8 位机(MCS-51 、 8088 )的存储器地址空间和数据存储格式以字节 (8bit) 为单位组织存储器地址空间,访问一次存储器,获得一个字节的数据。 而 8086CPU 的数据总线为 16 位, CPU除了可以对一个字节寻址外,还必须能进行一个字的读写。即:如何组织数据存储格式使 CPU 访问一次存储器,获得一个字的数据。

Page 30: 第二章        8086 系统结构

30

硬件条件:( 1 )将 1M 的存储空间分成两个存储体:偶地址和奇地址存储体

0000000001

00002

00004

FFFFEFFFFF

00003

00005

512K*8bit

A0 =0

512K*8bit

A0=1

D0D7D8D15

( 2 )将数据总线的低 8 位与偶地址存储体数据线相连,数据总线的高 8 位与奇地址存储体数据线相连。( 3 )用地址线 A0 和 BHE 信号选择存储体

Page 31: 第二章        8086 系统结构

31

8086

地址锁存

奇存储体

偶存储体

A1—A19

A0

BHE

A0—A19

BHE

D0—D7

D8—D15

BHE A0 操作 总线使用情况 0 0 从偶地址开始读 / 写一个字 AD15--AD0

0 1 从奇地址开始读 / 写一个字节 AD15--AD8

1 0 从偶地址开始读 / 写一个字节 AD7--AD0

1 1 无效

Page 32: 第二章        8086 系统结构

3214230H

1422FH

1422EH

1422DH

字 (16bit) 数据地址 1422EH低位在低地址,高位在高地址

H( 高 8bit)

L(低 8bit)字节地址字节地址

存储器二个连续字节组成一个字,一个字中的每一个字节都有各自的字节地址。存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。若要求 8086 在一个总线周期访问一个整字( 16 位)时,则该字的地址为偶地址(“对准好”的字)。如果则该字的地址为奇地址(“未对准好”的字),则 8086 要用两个连续的总线周期访问一个整字,每个周期访问一个字节。

数据存放格式条件:

Page 33: 第二章        8086 系统结构

33

堆栈是利用 RAM区中某一指定区域 ( 由用户规定 ) ,用来暂存数据或地址的存储区。 堆栈段是由段定义语句在内存中定义的一个段,段基址由 SS 指定。 堆栈存取数据的原则是“先进后出”,存取数据的方法是压入 (PUSH) 和弹出 (POP) 。

堆栈区的栈底是固定的最高地址,其栈顶根据堆栈数据的压入或取出的变化不断改变。栈顶是堆栈区的最低地址,用堆栈指针 SP 指示。

每执行一条 PUSH 指令, SP = (SP) - 2 ,向堆栈压入 16bit 数据。以字为单元操作。 每执行一条 POP 指令,从堆栈弹出 16bit 数据, SP = (SP)+ 2 。

三、堆栈的概念

Page 34: 第二章        8086 系统结构

34

00FAH

00FBH

00FCH

00FDH

00FEH

00FFH

0100H

36H

95H

2 、 (SP)-2→SP (AH)→00FFH (AL)→00FEH (SP)=00FEH

(AX)=9536H (BX)=0475H

(AX)=0475H (BX)=9536H

1 、 MOV SP , 0100H2 、 PUSH AX3 、 PUSH BX4 、 POP AX5 、 POP BX

例:执行压栈和出栈的过程

75H

04H

3 、 (SP)-2→SP (BH)→00FDH (BL)→00FCH (SP)=00FCH

1 、设栈底(SP)=0100H

4 、 (00FCH)→ AL (00FDH)→AH (SP)+2→SP (SP)=00FEH

75H

04H

5 、 (00FEH) →BL (00FFH) →BH (SP)+2→SP (SP)=0100H

36H

95H

Page 35: 第二章        8086 系统结构

35

人。 (躯干 -> 手脚 -> 引脚 ) 功能 (眼睛 ->看 嘴 ->说 手 ->拿 脚 ->走 )

各个引脚都有其作用 , 功能复用 (残疾手 )

理解各个引脚的专门作用 . 拿东西我 ( 给我一个笔 (眼看 ,嘴说 ,腿走 ->手拿 )) 你 ( 给你一个笔 (眼看 ,手拿 ,嘴说 )) 特殊情况我要 手拿……………… . 不给 你给 给你……………… .. 不拿等待状态 .这个就是时序 .

Page 36: 第二章        8086 系统结构

36

2-3 8086 的引脚功能

8086CPU 是 16 位处理器,采用 40 引脚的DIP封装。 40 条引脚信号按功能可分为 4部分:地址总线,数据总线,控制总线以及其他(时钟、电源)。

Page 37: 第二章        8086 系统结构

37

8086/8088 的引脚图

0102030405060708091011121314151617181920

4039383736353433323130292827262524232221

GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10

AD9/A9AD8/A8

AD7AD6AD5

AD4AD3AD2AD1AD0NMIINTRCLKGND

VCC ( 5V )AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7 HIGH ( SSO )MN/MX*/RDHOLD ( /RQ/GT0* ) HLDA ( /RQ/GT1* )/WR ( /LOCK )M//IO ( /S2 )DT//R ( /S1 )/DEN ( /S0 )ALE ( QS0 )/INTA ( QS1 )/TESTREADYRESET

8086/8088

Page 38: 第二章        8086 系统结构

38

引脚说明 一 . 数据 / 地址总线: AD0 ~ AD15 :地址数据复用引脚,用作数据线时,可

以双向工作。在时钟周期在时钟周期 T1T1 输出地址,输出地址, T2T2 输出数据输出数据 A19/S6 ~ A16/S3 :地址状态复用引脚,用作数据线时,可以双向工作。在时钟周期在时钟周期 T1T1 输出输出 A19~A16A19~A16 高四位地高四位地址。在时钟周期址。在时钟周期 T2T2 开始,输出开始,输出 S6~S3S6~S3 状态信息。状态信息。

Page 39: 第二章        8086 系统结构

39

1. 与读写数据有关二 . 控制总线

BHE/S7 :高 8 位数据总线允许 / 状态复用引脚(输出)

在在 TT11 状态,状态, 80868086 输出输出 BHEBHE 信号,表示信号,表示 ADAD1515-AD-AD88 数据有效。数据有效。SS77 没有意义没有意义 ,S,S77=0.=0.

RD :读信号引脚(输出)此信号指出将要执行一个对内存或此信号指出将要执行一个对内存或 I/OI/O 端口的读操作,与端口的读操作,与 M/IOM/IO 信号信号结合,结合, RDRD 信号在信号在 TT22 、、 TT33 和和 TTWW 状态均为低电平,有效。状态均为低电平,有效。WR :写信号 ( 输出 )

当低电平有效时,表示当低电平有效时,表示 CPUCPU 当前正在进行存储器或当前正在进行存储器或 I/OI/O 写操作,写操作,它与它与 M/IOM/IO 配合,分别实现对存储器与配合,分别实现对存储器与 I/OI/O 的写入。的写入。M/IO :存储器 / 输入输出控制信号 ( 输出 )

高电平时,高电平时, CPUCPU 和存储器之间进行数据传输。和存储器之间进行数据传输。低电平时,低电平时, CPUCPU 和输入输出设备之间进行数据传输。和输入输出设备之间进行数据传输。

Page 40: 第二章        8086 系统结构

40

1. 与读写数据有关ALE :地址锁存允许 ( 输出 )

高电平有效,在高电平有效,在 T1T1 状态,状态, ALEALE 有效,将地址有效,将地址 // 数据复用总线上输数据复用总线上输出的地址出的地址

:数据允许信号 ( 输出、低电平有效 ) DEN

为数据总线收发器为数据总线收发器 74LS24574LS245 提供控制信号,当该信号为低电平时,提供控制信号,当该信号为低电平时,允许允许 CPUCPU 发送或接收一个数据。发送或接收一个数据。

DT/R :数据收发方向控制信号 ( 输出 )它和它和 DENDEN 结合对数据收发器控制。结合对数据收发器控制。

DT/R 为低电平时,数据接收,即 CPURAM 或 I/O.DT/R 为高电平时,数据发送,即 CPURAM 或 I/O.

READY :准备好信号(输入)

Page 41: 第二章        8086 系统结构

41

2. 与中断有关NMI :非屏蔽中断(输入)

NMINMI 信号时一个由低到高的上升沿。这类中断不受中断标志信号时一个由低到高的上升沿。这类中断不受中断标志 IFIF 的影响,的影响,也不能用软件屏蔽,每当也不能用软件屏蔽,每当 NMINMI 端进入一个正沿触发信号时,端进入一个正沿触发信号时, CPUCPU 就会就会在结束当前指令后,进入对应于中断类型号为在结束当前指令后,进入对应于中断类型号为 22 的非屏蔽中断处理程序。的非屏蔽中断处理程序。

INTR :可屏蔽中断请求(输入) :中断应答信号 ( 输

出 )

INTA

对外设的中断请求对外设的中断请求 INTRINTR 作出响应回答,当低电平有效时,表示作出响应回答,当低电平有效时,表示CPUCPU 允许外设的中断请求。允许外设的中断请求。

Page 42: 第二章        8086 系统结构

42

3. 与总线控制有关 HOLD :总线请求信号(输入)

其它部件(如其它部件(如 DMADMA 控制器)要占用系统总线时,通过此引脚控制器)要占用系统总线时,通过此引脚向向 CPUCPU 发出总线请求,该输入端高电平有效。发出总线请求,该输入端高电平有效。HLDA :总线响应信号(输出)

高电平有效,当高电平有效,当 CPUCPU 收到总线请求收到总线请求 HOLDHOLD 后,如后,如 CPUCPU 允许让允许让出总线,在当前总线周期完成时,于出总线,在当前总线周期完成时,于 T4T4 状态发出状态发出 HLDAHLDA 信号,信号,CPUCPU 让出总线控制权。让出总线控制权。当当 CPUCPU检测到检测到 HOLDHOLD 信号变成低电平后,则它使信号变成低电平后,则它使 HLDAHLDA变成变成低电平,同时又控制总线。低电平,同时又控制总线。

Page 43: 第二章        8086 系统结构

43

三 . 其它引脚

RESET :复位信号(输入)

高电平有效:高电平有效: 8086/80888086/8088 要求高电平至少维持要求高电平至少维持 44 个时钟周期。个时钟周期。

CLK :时钟信号引脚(输入)

时钟信号为时钟信号为 CPUCPU 和总线控制逻辑电路提供定时手段。和总线控制逻辑电路提供定时手段。

低电平有效,当低电平有效,当 CPUCPU检测到该信号为低时,等待状态结束,检测到该信号为低时,等待状态结束, CPUCPU继续往下执行被暂停的指令。继续往下执行被暂停的指令。

TEST :测试信号(输入)

GND 地和 VCC 电源引脚 :

MN/MX :最小 / 最大模式控制信号(输入)

Page 44: 第二章        8086 系统结构

44

“ 引脚”小结

CPU 引脚是系统总线的基本信号可以分成三类信号: 8 位数据线: D0~ D15

20 位地址线: A0~ A19

控制线: # BHE/S7 、 NMI 、 INTR 、# INTA 、 #WR 、 # RD 、 ALE 、 M /# IO 、 READY 、 HOLD 、

HLDA 、 #DEN 、 DT/#R 、 RESET 、 CLK 、 Vcc 、 GND 、

CPU 引脚是系统总线的基本信号可以分成三类信号: 8 位数据线: D0~ D15

20 位地址线: A0~ A19

控制线: # BHE/S7 、 NMI 、 INTR 、# INTA 、 #WR 、 # RD 、 ALE 、 M /# IO 、 READY 、 HOLD 、

HLDA 、 #DEN 、 DT/#R 、 RESET 、 CLK 、 Vcc 、 GND 、

有问题!有问题!

Page 45: 第二章        8086 系统结构

45

“ 引脚”提问提问之一:CPU 引脚是如何与外部连接的呢?

解答:总线形成

提问之一:CPU 引脚是如何与外部连接的呢?

解答:总线形成

提问之二:CPU 引脚是如何相互配合,实现总线操作、控制系统工作的呢? 解答:总线时序

提问之二:CPU 引脚是如何相互配合,实现总线操作、控制系统工作的呢? 解答:总线时序

Page 46: 第二章        8086 系统结构

46

2-4 8086 的系统配置

特点:系统中存储器芯片, I/O芯片不多; 地址总线由 AD0~AD15 , A16/ S3 ~A19/ S6 通过 8282锁存器构成; 数据总线直接由 AD0~AD15 构成(也可加总线驱动 8286 ); 控制总线由 CPU 的控制线提供,构成一小型、单处理机系统。

一、 最小模式系统( MN/ MX 引脚接 +5V 电源)

Page 47: 第二章        8086 系统结构

47

8284

8282

存储器

8286

I/O 接口

Vcc

Vcc

CLK

MN/MX RDWR

IO/M

ALEA 16-A19

AD0-AD15

DT/RDEN

INTA

INTR

READY

RESET

8086CPU

STB

T

OE

数据总线

地址总线

OE

8088最小组态系统配置图

时钟

发生器

BHE

BHE

在最小模式系统中,还需加入:

1片 8284A

3片 8282/8283

2片 8286/ 8287

Page 48: 第二章        8086 系统结构

48

最小组态信号线(MN / MX=Vcc)引脚名称 功能 引脚号 类型

M / I O 存储器/ I O访问控制 28 输出,三态

WR 写选通信号 29 输出,三态

I NTA 中断响应 24 输出

ALE 地址锁存允许信号 25 输出

DT/ R 数据发送/ 接收 27 输出,三态

DEN 数据允许信号 26 输出,三态

HOLD 保持请求 31 输入

HLDA 保持响应 30 输出

BHE/S7高八位数据总线允许/

状态信号34 输出,三态

Page 49: 第二章        8086 系统结构

49

三、 8088 的引脚与 8086 的不同之处

* 8088 的指令队列长度为 4 个字节,队列中出现 1 个空闲字节时, BIU 自动访问存储器取指补充指令队列;

*8088 的地址 / 数据复用线为 8 条,即 AD7~AD0 ,访问 1

个字需两个读写周期;

* 8088 中的存储器 /IO 控制线为 IO /M ,与 8086 相反;

* 8086 的引脚 BHE/S7 在 8088 中为 SS0 ,与 DT/ R 、 IO/

M 一起决定最小模式中的总线周期操作。

Page 50: 第二章        8086 系统结构

50

2-5 8086CPU 时序一 . 指令周期、总线周期、时钟周期

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

(一个指令周期由一个或若干个总线周期组成)

总线周期( Bus Cycle ) : CPU 完成对存储器或 I/O 端口一次访问所需的时间;

时钟周期( Clock Cycle) :时钟频率的倒数 , 是 CPU 的时间基准( T 状态 ); (若 8086 的主频为 5MHZ ,一个时钟周期为200ns )

Page 51: 第二章        8086 系统结构

51

例 假设 ( DS )=3000H, (BX)=500CH, (3500CH)=9AH

执行 MOV AL, [ BX ]

指令 MOV AL, [BX]包含一个从存储器读操作

DSESSSCS

IP

数据暂存器

PSW 标志寄存器 执行部件控制电路

指令译码器

AXBXCXDX

AHBHCHDH

SIDIBPSP

ALBLCLDL

寄存器组

指令队列

总线接口控制电路

运算器

地址加法器

、、、指令 1

指令 2

指令 3

指令 4

、、、数据 1

数据 2

9Ah

、、、

地址总线 AB

数据总线 DB

控制总线 CB

Page 52: 第二章        8086 系统结构

52

1 、存储器读周期时序 执行 MOV AL, [ BX ]

1.M/IO 变高, CPU 将对内存进行操作 2. A19~A0 上出现地址信号 0011 0101 0000 0000 1100 A19 A15 A11 A7 A3 A0

3. ALE 上出现正脉冲信号 4. DT/R 变低, 数据收发器处于接受状态

T1 状态T1 T2 T3 T4

A19~A16/S6~S3

M/IO

AD15~AD0

ALE

RD

DT/R

DEN

CLK

S6 ~ S3

A15 ~ A0

A19~A16

D15 ~ D0

Page 53: 第二章        8086 系统结构

53

5.A19~A16 上出现状态信号 0 IF 1 1 S6 S5 S4 S3 使用 DS S6=0 ( 8086 与总线连) 6. AD15~AD0 变高阻态 7. RD 变低 发给内存 , CPU 将进行读

操作 8. DEN 变低 允许数据收发器进行数据传

T2 状态

( DS )=3000H, (BX)=500CH, (3500CH)=9AH

执行 MOV AL, [ BX ]

T1 T2 T3 T4

A19~A16/S6~S3

AD15~AD0

ALE

RD

DT/R

DEN

CLK

S6 ~ S3

A15 ~ A0

A19~A16

D15 ~ D0

M/IO

Page 54: 第二章        8086 系统结构

54

( DS )=3000H, (BX)=500CH, (3500CH)=9AH

执行 MOV AL, [ BX ]

T3 状态

9. AD15~AD0 上出现数据信号 1 0 0 1 1 0 1 0

AD7 AD0

数据由 3500CH 内存单元送出

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

AD15~AD0

ALE

RD

DT/R

DEN

CLK

S6 ~ S3

A15 ~ A0

A19~A16

D15 ~ D0

Page 55: 第二章        8086 系统结构

55

( DS )=3000H, (BX)=500CH, (3500CH)=9AH

执行 MOV AL, [ BX ]

10. RD变高, CPU 从数据线上读数据 ,

将数据 9AH 读到 AL 中11. DEN变高, 数据收发器与总线断开, AD15~AD0 变高阻态

T4 状态

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

AD15~AD0

ALE

RD

DT/R

DEN

CLK

S6 ~ S3

A15 ~A0

A19~A16

D15 ~ D0

Page 56: 第二章        8086 系统结构

56

2、存储器写周期时序

例:MOV [1000H], AL ;M/IO=1

T1 状态: A19—A0 上是地址信息,出现 ALE 信号后,将地址锁存到地址锁存器( 8282 )。

T2 状态:地址信息消失, A19-A16 从地址信息变为状态信息S6-S3 。

T3 状态: AD0~AD15 上出现数据。 WR 信号有效( WR=0 )。TW 状态:若存储器式外设的工作速度较慢,不能满足基本时序要求,

使用一个产生 READY 的电路,以使在 T3 状态之后,插入一个等待周期 TW 。

T4 状态, CPU认为数据已写入存储器,结束一个总线周期。

Page 57: 第二章        8086 系统结构

57

最小模式下总线写周期时序

CLK

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

AD15~AD0

ALE

S6 ~ S3

A15 ~ A0 D15 ~ D0

低: I/O 高: M

A19~A16

WR

DEN

DT/R

BHE/S7 BHE S7S7

Page 58: 第二章        8086 系统结构

58

最小模式下的时序操作小结 一个基本总线周期由 T1~T4 组成; T1 状态: ALE 、 M/IO 、 DT/R 有效,分时复用线

上传送地址信息; 在写总线周期中, CPU 从 T2 开始把数据送到总线上

并维持至 T4 。 在读总线周期中, CPU 从 T3 到 T4期间读入总线上

的数据。 T3 状态:在 T3 的前沿检测 READY ,若有效,则

读操作出现输入数据;若 READY无效,持续其他各控制信号,加入若干个等待态 Tw ,并在每个 Tw前沿继续检测 READY ,直至 READY 有效为止; 在 T4 状态开始, CPU 对 DBUS采样,读入 DATA ,并使地址线、状态线清空,一些控制信号撤销,为启动下一总线周期做准备。