2.2 8086/8088 微处理器

57
第2第 第第第第 2.2 8086/8088 第第第第 2.2.1 8086的的的的的 2.2.2 8086的的的的的的的的的的 2.2.3 8086的的 的的 2.2.4 8086的的的的的 第第第第第第

description

2.2 8086/8088 微处理器. 2.2.1 8086 的编程结构 2.2.2 8086 的工作模式和引脚功能 2.2.3 8086 的系统组成 2.2.4 8086 的总线时序. 返回本章首页. 2 、 8086/8088 微处理器的结构 8086 : Intel 系列的 16 位微处理器, 16 条数据线、 20 条地址线,可寻址地址范围 2 20 =1MB , 8086 工作时,只要一个 5V 电源和一个时钟,时钟频率为 5MHz 。 - PowerPoint PPT Presentation

Transcript of 2.2 8086/8088 微处理器

Page 1: 2.2  8086/8088 微处理器

第 2章 微处理器

2.2 8086/8088 微处理器

2.2.1 8086的编程结构

2.2.2 8086的工作模式和引脚功能

2.2.3 8086的系统组成

2.2.4 8086的总线时序

返回本章首页

Page 2: 2.2  8086/8088 微处理器

第 2章 微处理器

2 、 8086/8088 微处理器的结构

8086 : Intel 系列的 16 位微处理器, 16 条数据线、 20 条地址线,可寻址地址范围 220=1MB , 8086 工作时,只要一个 5V 电源和一个时钟,时钟频率为 5MHz 。

8088 :内部与 8086 兼容,也是一个 16 位微处理器,只是外部数据总线为 8 位,所以称为准 16 位微处理器。它具有包括乘法和除法的 16 位运算指令,所以能处理16 位数据,还能处理 8 位数据。 8088 有 20 根地址线,所以可寻址的地址空间达 220 即 1M 字节。

Page 3: 2.2  8086/8088 微处理器

第 2章 微处理器

图 2-1 8086 的编程结构图

Page 4: 2.2  8086/8088 微处理器

第 2章 微处理器

1 .总线接口单元 (BIU)

总线接口部件由下列各部分组成: ( 1 ) 4 个段地址寄存器;CS——16 位的代码段寄存器; DS——16 位的数据段寄存器; ES——16 位的扩展段寄存器; SS——16 位的堆栈段寄存器; ( 2 ) 16 位的指令指针寄存器 IP ; ( 3 ) 20 位的地址加法器; ( 4 ) 6 字节的指令队列缓冲器。

Page 5: 2.2  8086/8088 微处理器

第 2章 微处理器

2 .执行单元 EU

执行部件由下列几个部分组成: ( 1 ) 4 个通用寄存器,即 AX 、 BX 、 CX 、 DX ; ( 2 ) 4 个专用寄存器: BP, SP, SI, DI

( 3 )标志寄存器 FR ; ( 4 )算术逻辑单元 ALU 。

Page 6: 2.2  8086/8088 微处理器

第 2章 微处理器

功能:从 BIU 的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由 EU 向 BIU 发出命令,对存储器或 I/O 接口进行读 / 写操作。

功能:根据执行部件 EU 的请求,负责完成 CPU 与存储器或 I/O 设备之间的数据传送。

Page 7: 2.2  8086/8088 微处理器

第 2章 微处理器

3 、 BIU 和 EU 的管理

(1) BIU 和 EU 可以并行工作,提高 CPU 效率。BIU 监视着指令队列。当指令队列中有 2 个空字 节时,就自动把指令取到队列中。(2) EU 执行指令时,从指令队列头部取指令,然后 执行。如需访问存储器,则 EU 向 BIU 发出请求, 由 BIU 访问存储器。(3) 在执行转移、调用、返回指令时,需改变队列 中的指令,要等新指令装入队列中后, EU 才继 续执行指令。 -------“ 流水线”结构

Page 8: 2.2  8086/8088 微处理器

第 2章 微处理器

8086CPU 中可供编程使用的有 14 个 16 位寄存器,按其用途可分为 3 类:通用寄存器、段寄存器、指针和标志寄存器,如图所示:

累加器AH AL

BH BL

CL

DH DL

CH

SP

SI

DI

IPFR

CS

DS

SS

ES

BP

基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器指令指针寄存器标志寄存器代码段寄存器

段寄存器

附加段寄存器堆栈段寄存器

数据寄存器

地址指针和变址寄存器

控制寄存器

通用寄存器

数据段寄存器

8086CPU 内部寄存器结构

Page 9: 2.2  8086/8088 微处理器

第 2章 微处理器

数据寄存器

数据寄存器包括 4 个 16 位的寄存器 AX 、BX 、 CX 和 DX ,一般用来存放 16 位数据,故称为数据寄存器。其中的每一个又可根据需要将高 8 位和低 8 位分成独立的两个 8 位寄存器来使用,即 AH 、BH 、 CH 、 DH 和 AL 、 BL 、 CL 、 DL 两组,用于存放 8 位数据,它们均可独立寻址、独立使用。

累加器AH AL

BH BL

CL

DH DL

CH基址寄存器计数寄存器数据寄存器

数据寄存器

Page 10: 2.2  8086/8088 微处理器

第 2章 微处理器

指针和变址寄存器包括指针寄存器 SP 、 BP 和变址寄存器 SI 、 DI ,都是 16 位寄存器,一般用来存放地址的偏移量。

SP

SI

DI

BP堆栈指针寄存器基址指针寄存器源变址寄存器目的变址寄存器

地址指针和变址寄存器

Page 11: 2.2  8086/8088 微处理器

第 2章 微处理器

8086CPU 共有 4 个 16 位的段寄存器,用来存放每一个逻辑段的段起始地址。

CS

DS

SS

ES

代码段寄存器

段寄存器

附加段寄存器堆栈段寄存器数据段寄存器

Page 12: 2.2  8086/8088 微处理器

第 2章 微处理器

指令指针寄存器 IP :是一个 16 位的寄存器,存放 EU 要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪 。 标志寄存器 F R :是一个 16 位的寄存器,共 9个标志,其中 6 个用作状态标志, 3 个用作控制标志。

IP

FR

指令指针寄存器标志寄存器 控制寄存器

Page 13: 2.2  8086/8088 微处理器

( 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 14: 2.2  8086/8088 微处理器

第 2章 微处理器

寄存器的隐含用法但在某些指令中规定了某些通用寄存器的专门用法, 这样可以缩短指令代码长度;或使这些寄存器的使用具有隐含的性质, 以简化指令的书写形式(即在指令中不必写出使用的寄存器名称)。 通用寄存器的隐含用法如下表所示。

Page 15: 2.2  8086/8088 微处理器

第 2章 微处理器

Page 16: 2.2  8086/8088 微处理器

第 2章 微处理器

2.2.2 8086 的工作模式和引脚功能

1 .最小工作模式 2 .最大工作模式 3 . 8086CPU 的引脚信号

Page 17: 2.2  8086/8088 微处理器

第 2章 微处理器

图 2-3 8086CPU 最小模式下的典型配置

Page 18: 2.2  8086/8088 微处理器

第 2章 微处理器

1 .最小工作模式

由图可知,在 8086 的最小模式中,硬件连接上有如下几个特点:( 1 ) MN/ 引脚接 +5V ,决定了 8086 工作在最小模式。( 2 )有一片 8234A ,作为时钟发生器。( 3 )有三片 8282 或 74LS373 ,用来作为地址锁存器。( 4 )当系统中所连接的存储器和外设比较多时,需要增加系统数据总线的驱动能力,这时,可选用两片 8286 或 74LS245 作为总线收发器。

MX

Page 19: 2.2  8086/8088 微处理器

第 2章 微处理器

2 .最大工作模式

由图 2-4 可知,最大模式配置和最小模式配置有一个主要的差别: 最大模式下多了 8288 总线控制器。

图 2-4 8086CPU 最大工作模式下的典型配置

Page 20: 2.2  8086/8088 微处理器

第 2章 微处理器

Page 21: 2.2  8086/8088 微处理器

第 2章 微处理器

3 . 8086CPU 的引脚信号

8086CPU 采 用 双 列直插式的封装形式,具有 40 条引脚,见图 2-5 。它采用分时复用的地址 / 数据总线,所以有一部分引脚具有双重功能,即在不同时钟周期内,引脚的作用不同。 图 2-5 8086 的引脚信号(括号

中为最大模式下的名称) 返回本节

Page 22: 2.2  8086/8088 微处理器

第 2章 微处理器

1 、地址 / 数据总线AD15-AD0 :地址 / 数据复用引脚,双向,三态。( 8086/8088 ) AD15-AD0 : 16位地址总线 A15-A0 ,输出访问存储器或 I/O 的地址信息。( 8086 ) AD15-AD0 : 16 位数据总线 D15-D0 ,与存储器和 I/O设备交换数据信息。( 8088 ) AD7-AD0 : 8 位数据总线 D7-D0 ,与存储器和 I/O 设备交换数据信息。地址 / 数据总线复用,分时工作。

Page 23: 2.2  8086/8088 微处理器

第 2章 微处理器

2 、 A19/S6-A16/S3 :地址 /状态总线复用引脚,输出,三态。A19/S6-A16/S3 :输出访问存储器的 20 位地址的高 4 位地址 A19-A16 。A19/S6-A16/S3 :输出 CPU的工作状态。

Page 24: 2.2  8086/8088 微处理器

第 2章 微处理器

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

S5 :表明中断允许标志当前的设置。 S5=0 ,表示 CPU 中断是关闭的,禁止一切可屏蔽中断源的中断请求; S5=1 ,表示 CPU 中断是开放的,允许一切可屏蔽中断源的中断申请。

S4 、 S3 :指出当前使用段寄存器的情况。S4 、 S3 组合所对应的段寄存器情况 S4 S3 段寄存器 0 0 当前正在使用 ES 0 1 当前正在使用 SS 1 0 当前正在使用 CS 1 1 当前正在使用 DS

Page 25: 2.2  8086/8088 微处理器

第 2章 微处理器

3 、控制总线

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

S7 : 8086 中无定义。 8088 中,在最大模式中,为高电平;在最小模式中,输出 SS0 信号,此信号与其它信号合作将总线周期的读 / 写动作。

Page 26: 2.2  8086/8088 微处理器

第 2章 微处理器

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

Page 27: 2.2  8086/8088 微处理器

第 2章 微处理器

( 6 )、 INTR :可屏蔽中断请求信号,输入,高电平有效。当 INTR=1 ,表示外设向 CPU 发出中断请求, CPU 在当前指令周期的最后一个T状态去采样该信号,若此时, IF=1 , CPU响应中断,执行中断服务程序。( 7 )、 /INTA :中断响应信号,输出,低电平有效。表示 CPU响应了外设发来的中断申请信号 INTR 。( 8 )、 NMI :不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受 IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。( 9 )、 /TEST :测试信号,输入,低电平有效。当 CPU 执行 WAIT 指令时,每隔个时钟周期对 /TEST 进行一次测试,若 /TEST=1 ,继续等待,直到 /TEST=0 。

Page 28: 2.2  8086/8088 微处理器

第 2章 微处理器( 10 )、 RESET :复位信号,输入,高电平有效。 RESET 信号至少要保持 4个时钟周期。复位时:标志寄存器、 IP 、DS 、 SS 、 ES 为 0 , CS=FFFFH ,复位后 CPU从 FFFF0H 处开始 执行。( 11 )、 ALE :地址锁存允许信号,输出,高电平有效。用来锁存地址信号A15-A0 ,分时使用 AD15-AD0 地址 / 数据总线。( 12 )、 DT//R :数据发送 / 接收控制信号,三态输出。此信号控制数据总线上的收发器 8286 的数据传送方向, DT//R=1 ,发送数据 ---- 写操作; DT//R=0 ,接收数据 --读操作。( 13 )、 /DEN :数据允许信号,三态输出,低电平有效。作为数据总线上收发器 8286 的选通信号。

Page 29: 2.2  8086/8088 微处理器

第 2章 微处理器( 14 )、 HOLD :总线请求信号,输入,高电平有效。当系统中 CPU之外的另一个控制器要求使用总线时,通过它向 CPU 发一高电平的请求信号。( 15 )、 HLDA :总线请求响应信号,输出,高电平有效。当 HLDA 有效时,表示 CPU对其它控制器的总线请求作出响应,与此同时,所有与三总线相接的CPU 的线脚呈现高阻抗状态,从而让出总线。( 16 )、 MN//MX :工作模式选择信号,输入。 MN//MX=1 ,表示 CPU 工作在最小模式系统; MN//MX=0 ,表示CPU 工作在最大模式系统。( 17 )、 CLK :主时钟信号,输入。8086/8088 的时钟频率为 5MHZ 。

Page 30: 2.2  8086/8088 微处理器

第 2章 微处理器

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

Page 31: 2.2  8086/8088 微处理器

第 2章 微处理器

5 、最大模式下的有关引脚( 1 )、 QS1 、 QS2 :指令队列状态信号,输出。 QS1 QS2 含义 0 0 无操作 0 1 将指令首字节 送入指令队列 1 0 队列为空 1 1 将指令其余字节 送指令队列

Page 32: 2.2  8086/8088 微处理器

第 2章 微处理器

( 2 )、 S2 、 S1 、 S0 :总线周期状态信号,三态输出。( 3 )、 /RQ//GT1 、 /RQ//GT0 :总线请求信号(输入) / 总线请求允许信号(输出),双向,低电平有效。( 4 )、 /LOCK :总线封锁信号,三态输出,低电平有效。 /LOCK=0 , CPU 不允许其它控制器占用总线。

Page 33: 2.2  8086/8088 微处理器

第 2章 微处理器

Page 34: 2.2  8086/8088 微处理器

第 2章 微处理器

2.2.3 8086 的系统组成

1 . 8086 的存储体结构 2 . 8086 存储器的分段结构 3 . 8086 存储器的逻辑地址与物理4 . 8086 存储器 20 位物理地址的形

成5. 堆栈

Page 35: 2.2  8086/8088 微处理器

第 2章 微处理器

220=1MB , 地址由 00000-FFFFF(H) 编码

若存放的信息是字节,则按顺序存放若存放的信息是字,则将字的低位字节存放在低地址,高位字节存放在高地址若存放的信息是双字,则将双字的低位字存放在低地址,高位字存放在高地址

2.3.2 基本执行环境 ( 1 )存储器地址空间( 8086 )

Page 36: 2.2  8086/8088 微处理器

第 2章 微处理器

512k×8 (位)奇地址存储体

( A0= 1 )

512k×8 (位)偶地址存储体

( A0= 1 )

0000100003

00005

0000000002

00004

FFFFEFFFFF

07815

存储器结构图

Page 37: 2.2  8086/8088 微处理器

第 2章 微处理器

1 . 8086 的存储体结构

Page 38: 2.2  8086/8088 微处理器

第 2章 微处理器

BHE 和 A0 的意义

Page 39: 2.2  8086/8088 微处理器

第 2章 微处理器

( 2 )基本程序执行寄存器

Page 40: 2.2  8086/8088 微处理器

第 2章 微处理器

实地址方式存储器组织

四个不同的段:代码段存放机器指令;数据段存放数据信息;堆栈段供堆栈使用;附加段通常用来存放附加数据;

8086 有四个 16 位段寄存器: cs 代码段 ; ds 数据段; ss 堆栈段; es 附加段。

地址的标准写法为:“段:偏移量”。注意由于位移可以重叠,所以给出的“段:偏移量”不是唯一的。如下列地址均指向同一内存单元:

0000 : 0123 0002 : 0103 0008 : 00A3 0010 : 0023 0012 : 0003

Page 41: 2.2  8086/8088 微处理器

第 2章 微处理器

•段可以位于内存中的任何位置,段的首地址必须能被 16 整除;•若段寄存器存放的是 10H ,而偏移量是 100H ,下列步骤说明实际物理地址计算过程:

段寄存器: 0000 0000 0001 0000 ( 10H )

左偏四位: 0000 0000 0001 0000

偏移量: 0000 0001 0000 0000 ( 100H )

段加偏移量 0000 0000 0010 0000 0000 ( 200H )

Page 42: 2.2  8086/8088 微处理器

第 2章 微处理器

存储器物理地址的形成

逻辑地址逻辑地址 是程序中使用的地址,它由段基址和段内偏移值所组成,段基址与段内偏移值都为 16位的二进制数。

物理地址物理地址 也叫实际地址或绝对地址,是 CPU 访问存储器时实际使用的地址,为 20位地址。

物理地址=段基址 ×16 +段内偏移地址。

Page 43: 2.2  8086/8088 微处理器

第 2章 微处理器

【例】各独立段的分配情况示例。设 CS=B000H 、 DS=1CDEH 、 SS=4200H 、 ES

=0150H, 它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占 64KB 的范围,各段之间互不重叠。

Page 44: 2.2  8086/8088 微处理器

第 2章 微处理器

【例】各段相互重叠情况示例。设 CS=0200H 、 DS=0400H 、 SS=0480H ,这样代码

段、数据段和堆栈段的物理首地址分别为 02000H 、04000H 和 04800H 。其中代码段占 8KB 地址空间,数据段占 2KB ,堆栈段占 256B , SP=0100H 。如图所示。

Page 45: 2.2  8086/8088 微处理器

第 2章 微处理器

2 . 8086 存储器的分段结构

8086 CPU 中有四个段寄存器: CS , DS , SS 和ES ,这四个段寄存器存放了 CPU 当前可以寻址的四个段的基值,也即可以从这四个段寄存器规定的逻辑段中存取指令代码和数据。一旦这四个段寄存器的内容被设定,就规定了 CPU 当前可寻址的段,如图2-7 所示。 图 2-7 当前可寻址的存储

器段(堆栈段和附加段重叠)

Page 46: 2.2  8086/8088 微处理器

第 2章 微处理器

3 . 8086 存储器的逻辑地址与物理

8086 CPU 中的每个存储元在存储体中的位置都可以使用实际地址和逻辑地址来表示。

CPU 访 问 存 储 器 时 ,要形成 20 位的物理地址,即先找到某段,再找到该段内的偏移量。换句话说, CPU 是以物理地址访问存储器的,如图 2-8 所示。

Page 47: 2.2  8086/8088 微处理器

第 2章 微处理器

4 . 8086 存储器 20 位物理地址的形成

在存储段划分时,段内地址是连续的,段与段之间是相互独立的。 每个段的起始地址称段的基址,段基址必须是能被 16整除的那些地址,即 20 位的段基址的低四位应当是 0000 。 由于段起始地址的低四位为 0 ,所以可用 20位地址的高 16 位表示段的基址,存放在段基址寄存器中。段基址寄存器共四个: CS 、 DS 、 ES 、SS 。

Page 48: 2.2  8086/8088 微处理器

第 2章 微处理器

Page 49: 2.2  8086/8088 微处理器

第 2章 微处理器

5. 堆栈

堆栈由 SS 和 SP 寻址

工作原则:“先进后出”,以字进行操作。

压栈 ( 存入数据 ) 出栈(取出数据)操作时 SP±2

Page 50: 2.2  8086/8088 微处理器

第 2章 微处理器

2.2.4 8086 的总线时序

1 .指令周期、总线周期和时钟周期2. 读周期的时序 3 .写周期的时序

Page 51: 2.2  8086/8088 微处理器

第 2章 微处理器

BHE/ S7 :RD :

M//IO :

WR :

ALE :

高 8 位数据总线允许 /状态复用引脚。读信号,三态输出,低电平有效。 表示当前 CPU正在对存储器或 I/O端口进行读操作。写信号,三态输出,低电平有效。

表示当前 CPU正在对存储器或 I/O端口进行读操作。存储器或 IO端口访问信号,三态输出。=1 ,表示 CPU正在访问存储器 ; =0 ,正在访问 IO端口。

地址锁存允许信号,输出,高电平有效。

用来锁存地址信号 A15-A0 ,分时使用地址 / 数据总线。

Page 52: 2.2  8086/8088 微处理器

第 2章 微处理器

DT/R :数据发送 / 接收控制信号,三态输出。 此信号控制数据总线上的收发器 8286 的数据传送方向 =1 ,发送数据 ---- 写操作; =0 ,接收数据 --读操作。

DEN :数据允许信号

=0 时表明 CPU 当前准备发送或接受数据。

Page 53: 2.2  8086/8088 微处理器

第 2章 微处理器

1. 指令周期、总线周期和时钟周期

指令周期

总线周期

时钟周期( T 周期)

Page 54: 2.2  8086/8088 微处理器

第 2章 微处理器

8086CPU 的基本总线周期 一般包含如下几个状态:

T1状态、 T2状态、 T3状态、 TW状态、 T4

状态

Page 55: 2.2  8086/8088 微处理器

第 2章 微处理器

1 .读周期的时序(图 2-9 )

图 2-9 8086读总线周期

Page 56: 2.2  8086/8088 微处理器

第 2章 微处理器

一个基本的读周期一般包含如下几个状态:

T1状态: T2状态: T3状态: Tw状态: T4状态:

Page 57: 2.2  8086/8088 微处理器

第 2章 微处理器

2 .写周期的时序(图 2-10 )

图 2-10 8086 写总线周期