63
第 2 第 8086 第第第第 第第 8086 第第第第第 第第第第第 第第第第第第第第第第 、、 2.1 8086 第第第第第第第 16 第 29000 第第 第第 第第第 体, 5 8 10MHz 2.1.1 第第第第 EU 第第第第第第第 BIU 第第 第第第第第第 ……

第 2 章 8086 微处理器

  • Upload
    maya

  • View
    270

  • Download
    2

Embed Size (px)

DESCRIPTION

第 2 章 8086 微处理器. 重点 8086 的结构特点、编程结构、引脚信号功能及总线时序。 2.1 8086 微处理器的结构 16 位,约 29000 个晶体管,频率有 5 、 8 、 10MHz 。 2.1.1 执行部件 EU 和总线接口部件 BIU 执行一条指令的过程 ……. 1 、总线接口部件 BIU 负责 CPU 与存储器、 I/O 端口传送数据。 组成: 16 位段寄存器( CS 、 DS 、 SS 、 ES ) 16 位指令指针( IP ) 6 个字节指令队列 地址形成逻辑( 20 位地址加法器) - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章  8086 微处理器

第 2 章 8086 微处理器 重点 8086 的结构特点、编程结构、引脚

信号功能及总线时序。 2.1 8086 微处理器的结构 16 位,约 29000 个晶体管,频率有 5 、

8 、 10MHz 。 2.1.1 执行部件 EU 和总线接口部件 BIU 执行一条指令的过程……

Page 2: 第 2 章  8086 微处理器

1 、总线接口部件 BIU 负责 CPU 与存储器、 I/O 端口传送数据。 组成: 16 位段寄存器( CS、DS、 SS、 ES )

16 位指令指针( IP ) 6 个字节指令队列 地址形成逻辑( 20 位地址加法器) ( I/O )总线控制逻辑 功能: 1 )在 EU 执行指令的过程中, BIU 始终能

从存储器中预先取出一些指令送到指令队列中排队,遵从先进先出的次序。

Page 3: 第 2 章  8086 微处理器

2 )根据 EU 的请求,形成 20 位的内存物理地址,完成 CPU 与存储器或 I/O 设备之间的数据传送。

2 、执行部件 EU 负责指令的译码执行。 组成: 16 位的算术 / 逻辑单元 ALU 16 位状态标志寄存器 4 个通用寄存器( AX、 BX、 CX、 DX ) AH和 AL 4 个专用寄存器( SP、 BP、 DI、 SI ) 暂存(运算)寄存器 EU 控制系统

Page 4: 第 2 章  8086 微处理器

注: 1 )寄存器组和数据传输通路间可进行快速传输。 2 ) EU 不与系统总线相联。 功能: 1 )从 BIU 的指令队列中获取指令、译码执行指令。 2 )向 BIU 发出请求,提供数据和所需访问的内存或

I/O 端口的地址信息。 3 )对通用寄存器和标志寄存器进行管理, 主要操作类型: 1 )算术 / 逻辑运算、串处理、 BCD 码调整。 2 )计算寻址要求的单元地址的位移量, EU 将这个 16

位位移量送 BIU 。

Page 5: 第 2 章  8086 微处理器

二、工作方式 微处理器通过总线和外部部件交换信息,

当执行一条指令时,一般要占用二次总线,总线非常忙,要提高微处理器的利用率和整个系统的执行速度,必须充分利用总线。并行工作方式: BIU和 EU 处于并行工作状态,取指令与数据不占用额外时间,在执行指令时同时取下一条指令与数据,这样总线总不空闲。

Page 6: 第 2 章  8086 微处理器

2.1.2 8086 的编程结构 基本结构寄存器 系统级寄存器(主要用于简化设计) 调试和测试寄存器(主要用于对操作系 统进行调试) 浮点寄存器 (80486用 )

Page 7: 第 2 章  8086 微处理器

基本结构寄存器 通用寄存器 专用寄存器 段寄存器

Page 8: 第 2 章  8086 微处理器

1. 通用寄存器 (8个 ) AX 累加器 (AH AL) 加减法 , 与外设传送信息 BX 基址寄存器 表起始地址 , 计算 M 地址 CX 计数寄存器 串个数 , 循环次数 DX 数据寄存器 与 AX 构成双字长数 SP 堆栈指针 栈顶偏移量 BP 基址指针 堆栈中数据区的基址偏移量 SI 源变址寄存器 串操作时,当前数据段、 DI 目的变址寄存器 附加段中数据的偏移量

Page 9: 第 2 章  8086 微处理器

2. 专用寄存器 1 、指令指针 IP 指出下一条要执行的指令在当前代码段

中偏移量 BIU 从内存中取出一个字节后 ,IP 自动加

1 能对 IP 操作的只有转移指令、返回指令

和中断处理

Page 10: 第 2 章  8086 微处理器

专用寄存器 2 、标志寄存器 有三种 状态标志 由 EU 设置 控制标志 可由指令设置 系统方式标志

Page 11: 第 2 章  8086 微处理器

状态标志 进位标志 CF=1 表示高位有进位或借位 CF=0 表示高位无进位或借位 奇偶标志 PF=1 低 8 位中 1 的个数为偶数 PF=0 低 8 位中 1 的个数为奇数 辅助进位标志 AF=1 D3 位有进位或借位 AF=0 D3 位无进位或借位 零标志 ZF=1 表示运算结果为 0 ZF=0 表示运算结果非 0

Page 12: 第 2 章  8086 微处理器

状态标志 符号标志 SF=1 表示运算结果为负数 SF=0 表示运算结果为正数 溢出标志 OF=1 运算结果超出机器所能

表示的数值范围 OF=0 运算结果无溢出 注意:溢出和进位不同 例:指出运算 5439+456A 后的状态标

Page 13: 第 2 章  8086 微处理器

控制标志 陷阱标志 TF=1 微处理器处于单步工作方式 TF=0 微处理器执行正常程序 中断允许标志 IF=1 开中断 IF=0 关中断 方向标志 DF=1 地址递减 DF=0 地址递增(用于字串操作)

Page 14: 第 2 章  8086 微处理器

3. 段寄存器( 6 个) 保存标志现行可寻址存储器段的段选择子值 只有 16 位 段长度与工作方式有关: 1)实地址方式: 64KB 保存段的起始地址 物理地址 =CS*16+IP 2)保护方式: 1~4GB 保存段的选择子

段寄存器与段描述子寄存器一一对应 段描述子:段基地址 + 段限 + 属性

Page 15: 第 2 章  8086 微处理器

段寄存器 段描述子寄存器 -- 段高速缓存器( CACHE ) CS 当前代码段 (指令) DS 当前数据段 (字符、数值) SS 当前堆栈段 (保存返回地址和中间结

果) ES 当前附加段 (字符、数值) FS 当前附加段 (用于数据通信) GS 当前附加段 (用于数据通信)

Page 16: 第 2 章  8086 微处理器

取操作数的段: 1)默认的段; 2) 在指令前加前缀指令指定,但偏移量由 SP 计算来的,用当前堆栈段,串操作目标操作数用当前附加段

Page 17: 第 2 章  8086 微处理器

2.1.3 8086 系统中的存储器组织 1. 存储器组织 1 )存储器分段 地

址只能为 16 位,所以 1MB 空间分成存储段。每段长度可达 64KB ,第一字节位置称”段起始地址“(段基址),必须能被 16 整除,高16 位为”段基值“。段基值左移 4 位即成段起始地址。浮动装配时,只需确定段基址即可,程序中采用相对转移或相对调用。当程序超过64KB ,则必须给段寄存器重新送新值。 几个段可互相重叠,也可指向同一个64KB ,可进行程序压缩,但要求不破坏数据。

Page 18: 第 2 章  8086 微处理器

2 )物理地址的产生 物理地址:单元地址用 20 位二进制数表示, CPU 与

存储器间数据交换用,唯一的。范围:00000H~FFFFFH

逻辑地址:由段基值和段内偏移量构成,以 16 位二进制数表示,编程时用,不唯一。偏移量范围:0000H~FFFFH

例: 01245H 单元 当段基值为 0123H 偏移量为 15H 当段基值为 0124H 偏移量为 5H 即一个物理地址可由不同的段基值和段内偏移量构成。

Page 19: 第 2 章  8086 微处理器

物理地址的产生 物理地址 = 段基址 + 段内偏移量(有效地址 EA ) 偏移量寄存器: SP、 BP、 SI、DI、 IP 。 BIU 根据执行

操作的种类和要取的数据类型分别从不同寄存器中取值。 指令 CS IP 堆栈操作 SS SP或 BP 操作数(变量) DS BX、 SI或DI (若段操作前缀

指令指定可用 CS、 ES、 SS ) 串操作目的操作数 ES DI 逻辑地址来源见表 2-20

Page 20: 第 2 章  8086 微处理器

2.2 8086 微处理器的引脚功能 8086是 16位 CPU, 40 引脚,双列直插式

Page 21: 第 2 章  8086 微处理器

2.2.1 引脚功能说明 分四部分: 地址

总线 数据总线 控制和状态总线 其他(电源和定时线)

说明: 1 )某些引脚能传送多于一种类型的信 息,叫分时复用 2 ) MN/MX (最小 /最大方式控制线) +5V 最小方式,接地 最大方式 图 2-6 中括号内为最大方式

Page 22: 第 2 章  8086 微处理器

1 、地址和数据总线( 1 )地址总线 20 位 单向三态 CPUM和 I/O 端口 数据总线 16 位 双向三态 CPUM和 I/O 端口 为节省管脚 ,采用多路转换方法 ,即分时复

用技术 . (2)AD15~AD0: T1时 , 作低 16 位地址;其余时间 , 为数据线;中断响应或 DMA 方式时,高阻。 AD0作低 8 位数据的选通信号。

Page 23: 第 2 章  8086 微处理器

地址和数据线 A19~A16/S6~S3:

T1时 ,M 操作作高 4 位地址 , 可寻址 1M 字节单元; I/O 操作为低电平 , 可寻址 64K 端口

其余时间 , 提供状态信息 S4,S3 表示正在使用哪个段寄存器 ,见表 2-4 S5反映 IF 的值 S6=0, 8086 正在控制总线

Page 24: 第 2 章  8086 微处理器

地址和数据线 BHE-/S7: T1 时作总线高半部分允许信号 ,BHE-=0,8 位

数据与 AD15~AD8连通 ,与 AD0配合决定是高字节还是低字节

其余时间提供状态信息 , 暂不用 在 DMA 方式时 , 高阻

Page 25: 第 2 章  8086 微处理器

2 、控制和状态总线 有些输出,有些输入;还受MN/MX上电平的影响,以控制最小方式和最大方式。

最小方式用于单处理机系统 最大方式用于多处理机和协处理机结构

Page 26: 第 2 章  8086 微处理器

受MN/MX影响的信号线 MN/MX=0 最大方式: S2-, S1-, S0- 总线周期状态信号(输出,三态,低电平有效):表示 8086 外部总线周期的操作类型,送到总线控制器 8288 ,由8288产生相应的控制信号。表 2-5( P22 )

MN/MX=+5V 最小方式: M/IO- 存储器 /IO 控制信

号(输出,三态) M/IO-=1 ,访问存储器 M/IO-=0 ,访问 I/O 设备

DT/R- 数据发送 / 接收信号(输出,三态):控制8286 的数据传送方向

Page 27: 第 2 章  8086 微处理器

最大方式 最小方式 S2- 区分 M和 I/O 的

标志 S1- 指示操作是输入还是输出

在 T3或 TW返回无效状态

DT/R-=1 ,数据放到系统总线 DT/R-=0 ,从系统总线上取进数据

DEN- 数据允许信号(输出,三态,低电平有效):控制 8286收发器,允许缓冲器 (数据总线 ) 连到系统总线或局部总线上。

这 3 个在 DMA 方式高阻

Page 28: 第 2 章  8086 微处理器

最大方式 最小方式 RQ/GT0-、 RQ/GT1- 总线

请求 /允许访问控制 (双向 ):时序分为 3 个阶段(请求、允许、释放)需要 3 个低电平脉冲序列。当总线主模块要求总线控制权发 RQ-=0;若 8086允许响应发 GT-=0;交出总线控制权,成三态输出;总线主模块使用完,交出总线控制权发 RQ-=0 。见图 2-7.

HOLD保持请求(输入): 8086 在机器周期的最后一个 T采样HOLD=1 总线主模块向8086 请求总线控制权。

HLDA保持响应(输出): 8086响应,使系统总线高阻。

这时, DEN-、DT/R-等高阻。

Page 29: 第 2 章  8086 微处理器

最大方式 最小方式 在 T4 或下一个 T1里 两条控制线同时接两个协处理器

RQ/GT0-优先权高 QS0、QS1 指令队列

状态(输出):见表 2-6

此方式的 ALE、DEN、DT/R、 INTA 的功能由8288 提供。

ALE 地址锁存允许(输出): =1 ,表示有效地址在总线上,下降沿锁存地址信息。

INTA- 中断响应(输出,三态): =0 ,表示 8086 正执行中断响应。

Page 30: 第 2 章  8086 微处理器

最大方式 最小方式 LOCK- 总线优先权锁定信号(输出,三态): =0 ,阻止8086失掉总线控制权;在 DMA 方式高阻。

指令 LOCK 由程序设置,做前缀,并保持到该条指令执行结束。

WR-写控制(输出,三态):数据在总线上稳定时, =0 ,执行写操作;在 DMA方式高阻

Page 31: 第 2 章  8086 微处理器

不受MN/MX影响的信号线 RD-读控制(输出,三态):

T2~T3、 TW时, =0, 8086从M或 IO 设备读数据;在 DMA 方式高阻

READY等待状态控制(输入): =1 ,表示被选中的 M或 IO准备就绪; =0 ,使8086 处于等待状态(插入 1 或几个 TW)

TEST-等待测试控制(输入): =1, 8086等待,停止操作; =0 ,脱离WAIT 指令的等待状态,继续执行指令。 ( CPU每 5T采样 TEST- )

Page 32: 第 2 章  8086 微处理器

不受MN/MX影响的信号线 INTR 可屏蔽中断请求(输入): =1且 IF=1,

8086 执行中断响应; 其它,继续执行指令。 ( CPU 在指令周期的最后一个 T 采样 INTR )

NMI 不可屏蔽中断请求(输入):上升沿触发,8086 执行不可屏蔽中断服务程序,不能被软件禁止。

RESET 系统复位(输入): =1 (刚加电要大于 4T ), 8086停止正在运行的操作,做初始化: A 、 FR=0000H ,为禁止中断和单步方式; B、 DS、 SS、 ES和 IP=0000H,CS=FFFFH; C、指令队列复位。 然后从 FFFF0H开始执行,无条件转移到系统初始化和引导及装配程序。

Page 33: 第 2 章  8086 微处理器

3 、其他(电源和定时线) CLK 时钟信号(输入):同步所有

8086 的时钟信号,由 8284 时钟发生器输出

Vcc电源(输入): +5V~10% GND 地线(输入):两条( 1 和 20

脚)

Page 34: 第 2 章  8086 微处理器

2.2.2 8086与 8088 引脚的区别

8086 AD15~AD0: 16

位复用 M/IO- BHE-/S7 :与 A0 组合来区分高 8 位,低8 位还是 1 个字。

8088 (准 16 位处理器) AD7~AD0: 8 位复用;

A15~A8 单用 IO/M- SS0 :最小方式下等效于

8086的DEN- (或最大方式下的 S0 ),与 DT/R-、IO/M- 组合确定当前的总线周期,见表 2-7 。最大方式下为高电平。

Page 35: 第 2 章  8086 微处理器

8086 微处理器的系统配置 一、 8086 基本系统概念 8086 只有 40 引脚,所以采用以下系统结构: 1 )地址线和数据线采用分时复用; 2 )地址锁存器( 74LS373、 273或 INTEL 8282/8283 )记录地址,防止丢失 。 8086把地址送上总线时,使ALE=1 。 20 位地址加 BHE-用 3片。 8086的 ALE接 74LS的 G(或 8282的 STB );当 OE-=0 时送出数据; 3 )数据总线收发器( 74LS245或 8286/8287 )提供缓冲和驱动,并控制数据传送和接收的方向。 2片,最小系统可不用, 8088用 1片。

Page 36: 第 2 章  8086 微处理器

8086 基本系统概念 8086的DT/R-接 74LS245的DIR (或 8286的 T,=1 输入;=0 输出); 8086的DEN-接 74LS245的G- (或 8286的OE- )。 T2 后开始工作。 4 )时钟信号发生器( 8284A ):产生时钟脉冲频率是振荡源频率的 1/3 。提供: CLK , 接 8086CPU的 CLK; PCLK 外部设备时钟,频率是 CLK 频率的 1/2;READY等待状态请求,要求同步增加 TW周期;RESET复位,和 8086的 RESET 同步。

Page 37: 第 2 章  8086 微处理器

9-2

Page 38: 第 2 章  8086 微处理器

8086 基本系统概念 5 )复位:当 8086 接受复位时,有关寄存器初始化,多路转换总线信号线浮空,其它可浮空的进入三态或不作用状态。

Page 39: 第 2 章  8086 微处理器

二、最小方式 MN/MX=+5V ,构成单处理机系统,系统配

置图如图 9-1 。状态译码和命令输出: M/IO- RD- WR- 总线周期(命令) 0 0 1 I/O读( IOR ) 0 1 0 I/O写( IOW ) 1 0 1 M读( MRD ) 1 1 0 M写( MWT )

Page 40: 第 2 章  8086 微处理器

9-1

Page 41: 第 2 章  8086 微处理器

三、最大方式 MN/MX=0 ,构成多处理机和协处理机系统,系

统配置图如图 9-3 ,比最小方式系统增加一个转换控制信号的 8288 总线控制器(图 9-4 )和中断优先权管理器 8259A 。

1 、总线控制器 8288 ( 1 )状态译码和命令输出: 见表 9-1 ( 2 )控制逻辑 1 ) IOB (输入输出总线方式): IOB=0, 8288 处于系统总线方式,总线仲裁逻辑发 AEN=0 ,表示总线可供使用。用于多处理器共用一组总线系统。

Page 42: 第 2 章  8086 微处理器

9-3

Page 43: 第 2 章  8086 微处理器

9-4

Page 44: 第 2 章  8086 微处理器

最大方式 IOB=1, 8288 处于 I/O 总线方式工作,与 AEN-

状态无关。此时,对 M 访问的命令无效。允许8288 管理两组外部总线:访问 I/O 总线无需等待;访问 M 之前需 AEN-=0 。用于多处理器系统而外设不共享的系统。 2 ) AEN- (地址使能): =1, 8288各种命令无效,高阻。 =0 ,对系统总线方式,在 115ns后8288才输出命令,在这段时间进行总线切换;对I/O 总线方式,不起作用,不影响 I/O命令的发出。

Page 45: 第 2 章  8086 微处理器

最大方式 3 ) CEN命令使能: =1 ,命令有效; =0 ,各命令和DEN、 PDEN-等输出无效。 4 ) CLK时钟:同步 8288产生命令和控制信号。( 3 )控制信号发生器 提供ALE、DEN、DT/R- (作用同最小方式,但DEN相位相反)和 MCE/PDEN- 。 MCE/PDEN- 主设备使能 / 外设数据允许: 当 IOB=0 ,为 MCE(输出,高电平有效),接 8259A ,允许设备级联,MCE锁存级联地址;无 8259 ,浮空。而用 DEN 控制总线收发器使局部数据总线接通系统数据总线。

Page 46: 第 2 章  8086 微处理器

最大方式 当 IOB=1 ,为 PDEN - (输出,低电平有效),

作用同 DEN ,做总线收发器的开启信号,用于多总线结构的多处理机系统。

CEN、 AEN-、 IOB 供多处理机系统用。 2 、其他信号 RQ/GT0-同 8087 (协处理器)连; RQ/GT1-同 8089( I/O 处理器即双通道处理器)连。 INTA- :

当系统是两个以上主 CPU 的多处理器系统,要接到总线仲裁器 8289 ,再与 DEN 与非后接74LS245的 G- (或 8286的 OE- )。

Page 47: 第 2 章  8086 微处理器

2.3 8086 微处理器的基本时序 2.3.1 指令周期、总线周期和时钟周期

指令周期:执行一条指令所需时间 总线周期:取指令和数据传送,由 CPU的BIU 执行所需时间 时钟周期:同步所有操作的时钟脉冲周期 时钟周期=1/ 主频

一个指令周期由一个或几个总线周期组成 基本总线周期由 4 个时钟周期组成,分别叫

T1、 T2、 T3、 T4 状态。

Page 48: 第 2 章  8086 微处理器

8

Page 49: 第 2 章  8086 微处理器

指令周期、总线周期和时钟周期 若外设或存储器速度较慢,在 T3 之前发出“数

据未准备就绪”信号( READY=0 ), CPU在T3 下降沿采样 READY ,若 READY =0则在T3 之后插入 1 个或多个 Tw ,在 Tw 下降沿,采样 READY ,当 READY =1 ,则结束 Tw 进入 T4。 Tw和 T3 总线控制信号一样。

若一个总线周期后不执行下一个总线周期,执行空闲周期 Ti。 EU仍执行, BIU等待,此时, AB 线高 4 位 仍驱动状态信息; 低 16 位 在写周期,驱动数据信息;在读周期,高阻。

Page 50: 第 2 章  8086 微处理器

2.3.2几种基本时序的分析 8086CPU 的操作:内操作,与用户无关;外操作,系统对 CPU 控制或 CPU对系统的控制。

Page 51: 第 2 章  8086 微处理器

8086CPU 的外部操作 存储器读 /写 I/O 端口读 /写 总线操作 中断响应 总线保持与响应 总线请求 /允许(最大方式) 复位和启动 暂停

Page 52: 第 2 章  8086 微处理器

1 、总线读操作 从存储器或 I/O 端口读取数据时序如图 2-9 M/IO- 有效 T1时 ,A19~A16、 AD15~AD0、 BHE-/S7由 ALE锁存,地址撤消后一段时间为高阻, T3开始数据有效;

T2开始 RD-=0 ,若用数据总线收发器,则DT/R-=0,DEN-=0;

Page 53: 第 2 章  8086 微处理器
Page 54: 第 2 章  8086 微处理器

2 、总线写操作 往存储器或 I/O 端口写入数据时序如图

2-10 地址等基本与读操作相同,只是地址有效撤消后马上 AD15~AD0 数据有效,并保持到 T4,WR-=0, DT/R-=1 。

Page 55: 第 2 章  8086 微处理器

10

Page 56: 第 2 章  8086 微处理器

3 、中断响应操作 当 INTR=1且 IF=1, CPU 执行两个中

断响应周期 第一个的 T2~T4, INTA-=0 第二个的 T2~T4, INTA-=0 通知外

设送中断类型号到数据总线低 8 位AD7~AD0

两个中断响应周期间插入 3 个 Ti

Page 57: 第 2 章  8086 微处理器

12

Page 58: 第 2 章  8086 微处理器

4 、总线保持与响应 其它总线主设备(如 DMAC )请求

HOLD=1 T4 或下一个 Ti 的后沿 HLDA=1 DMA 传送结束 HOLD=0 下一个 T下降沿 HLDA=0

Page 59: 第 2 章  8086 微处理器

13

Page 60: 第 2 章  8086 微处理器

5 、系统复位 外部 RESET 引脚 =1 后,在 T 上升沿,

内部 RESET=1 总线先变高后浮空,驱动输出为无效状态

Page 61: 第 2 章  8086 微处理器

最大方式时序与最小方式时序的区别

1 、最大方式下的总线读操作 和最小方式相同,但要考虑 CPU 和总线控

制器产生的信号。 由于 ALE、MRDC-或 IORC-、 DT/

R-、 DEN由 S2-~S0-经总线控制器 8288产生的,所以在 T1~T3间 S2-~S0- 有效,在 T3~T4 无效,以便于启动新总线周期

DEN是高电平(要经与非后接 OE- ) 不用 M/IO-和 RD- ,而用 MRDC-/IORC-

Page 62: 第 2 章  8086 微处理器

14

Page 63: 第 2 章  8086 微处理器

CPU子系统 以 IBM PC/XT 为例 一、 8288 必须工作于系统总线方式,即

IOB-=0、 CEN=1、 AEN-=0 。(因带协处理器,且允许处理器之间进行存储器和设备共享)

二、 CPU子系统构成 8088(或加 8087 ) 工作于最大方式 8284A 、 8288 数据收发器 74LS245 地址锁存器 74LS373