78
第2第 16 第第第第第 8086

第 2 章 16 位微处理器 8086

Embed Size (px)

DESCRIPTION

第 2 章 16 位微处理器 8086. 第 2 章 16 位微处理器 8086. 教学重点 寄存器的结构 存储器组织 逻辑地址到物理地址的变换 8086 的两种工作模式及其配置. 教学难点 8086CPU 在最小模式和最大模式下的引脚功能. 2.1 8086CPU 的内部结构. 一、 8086CPU 内部结构   从功能上看,可以分为两大部分: 1. 总线接口部件 BIU (Bus Interface Unit) 2. 执行部件 EU (Execution Unit) 。 8086CPU 内部结构框图见图 2-1 所示。. - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章   16 位微处理器 8086

第 2 章 16 位微处理器 8086

Page 2: 第 2 章   16 位微处理器 8086

第 2 章 16 位微处理器 8086

教学重点 寄存器的结构 存储器组织 逻辑地址到物理地址的变换 8086 的两种工作模式及其配置

Page 3: 第 2 章   16 位微处理器 8086

教学难点

8086CPU 在最小模式和最大模式下的引脚功能

Page 4: 第 2 章   16 位微处理器 8086

2.1 8086CPU 的内部结构

一、 8086CPU 内部结构        从功能上看,可以分为两大部分:  从功能上看,可以分为两大部分:   1.1. 总线接口部件总线接口部件 BIU (Bus Interface UniBIU (Bus Interface Uni

t) t)    2. 2. 执行部件执行部件 EU (Execution Unit)EU (Execution Unit) 。 。 8086CPU8086CPU 内部结构框图见图内部结构框图见图 2-12-1 所示。 所示。

Page 5: 第 2 章   16 位微处理器 8086
Page 6: 第 2 章   16 位微处理器 8086

总线接口单元 BIU:

 主要负责物理地址的形成、预取指令、指令队列排队、读 / 写操作数和总线控制。

执行单元 EU:

 主要负责指令译码和执行

Page 7: 第 2 章   16 位微处理器 8086

二、 8086CPU 内部寄存器结构

  8086 内部寄存器有: 执行单元 EU 8 个通用寄存器 1 个指令指针寄存器 1 个标志寄存器 4 个段寄存器

Page 8: 第 2 章   16 位微处理器 8086

1. 8086 的通用寄存器 8086 的 16 位通用寄存器是:

AX BX CX DXSI DI BP SP

其中前 4 个数据寄存器可以分成高 8 位和低8 位两个独立的寄存器

8086 的 8 位通用寄存器是:AH BH CH DHAL BL CL DL

对其中某 8 位的操作,并不影响另外对应 8位的数据

Page 9: 第 2 章   16 位微处理器 8086

数据寄存器 数据寄存器用来存放计算的结果和操作数,也可以

存放地址 每个寄存器又有它们各自的专用目的

AX --累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;

BX --基址寄存器,常用存放存储器地址; CX --计数器,作为循环和串操作等指令中的

隐含计数器; DX --数据寄存器,常用来存放双字长数据的

高 16 位,或存放外设端口地址。

Page 10: 第 2 章   16 位微处理器 8086

变址寄存器

变址寄存器常用于存储器寻址时提供地址 SI 是源变址寄存器 DI 是目的变址寄存器

串操作类指令中, SI 和 DI 具有特别的功能

Page 11: 第 2 章   16 位微处理器 8086

指针寄存器 指针寄存器用于寻址内存的数据 SP 为堆栈指针寄存器,指示栈顶的偏移

地址 SP 不能再用于其他目的,具有专用目的 BP 为基址指针寄存器,表示数据在堆栈

段中的基地址 SP 和 BP 寄存器与 SS 段寄存器联合使

用以确定堆栈段中的存储单元地址

Page 12: 第 2 章   16 位微处理器 8086

2. 段寄存器DS 数据段寄存器 (Data Segment)

CS 代码段寄存器 (Code Segment)

ES 附加段寄存器 (Extra Segment)

SS 堆栈段寄存器 (Stack Segment) 这些段寄存器的内容与有效的地址一起,用于确定内存的物理地址。通常用 CS 、 DS 、 ES 以及 SS 用于确定代码段、数据段、附加段以及堆栈段的基地址。

Page 13: 第 2 章   16 位微处理器 8086

3. 指令指针 IP

指令指针寄存器 IP ,指示代码段中指令的偏移地址

它与代码段寄存器 CS 联用,确定下一条指令的物理地址

计算机通过 CS : IP 寄存器来控制指令序列的执行流程

IP 寄存器是一个专用寄存器

Page 14: 第 2 章   16 位微处理器 8086

4. 标志寄存器 标志( Flag )用于反映指令执行结果

或控制指令执行形式 8086 处理器的各种标志形成了一个 1

6 位的标志寄存器 FLAGS (程序状态字 PSW 寄存器)

OF

1115 12

DF

10

IF

9

TF

8

SF

7

ZF

6 5

AF

4 3

PF

2 1

CF

0

程序设计需要利用标志的状态

Page 15: 第 2 章   16 位微处理器 8086

标志的分类 状态标志:用来记录程序运行结果的状

态信息,许多指令的执行都将相应地设置它CF ZF SF PF OF AF

控制标志:可由程序根据需要用指令设置,用于控制处理器执行指令的方式DF IF TF

Page 16: 第 2 章   16 位微处理器 8086

进位标志 CF ( Carry Flag )

当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置 1 ,即 CF = 1 ;否则 CF = 0 。

49H + 6DH= B6H ,   没有进位: CF = 0BBH + 6AH=( 1 ) 25H ,有进位: CF = 1

Page 17: 第 2 章   16 位微处理器 8086

零标志 ZF ( Zero Flag )若运算结果为 0 ,则ZF = 1 ;否则ZF = 0

49H + 6DH= B6H ,结果不是零: ZF = 0

75H + 8BH=( 1 ) 00H ,结果是零: ZF =

1

注意: ZF 为 1 表示的结果是 0

Page 18: 第 2 章   16 位微处理器 8086

符号标志 SF ( Sign Flag )

运算结果最高位为 1 ,则 SF = 1 ;否则 SF = 0

有符号数据用最高有效位表示数据的符号所以,最高有效位就是符号标志的状态

49H + 6DH= B6H ,结果不是零: SF = 1

75H + 8BH=( 1 ) 00H ,结果是零: SF =

0

Page 19: 第 2 章   16 位微处理器 8086

奇偶标志 PF ( Parity Flag )

当运算结果最低字节中“ 1”的个数为零或偶数时, PF = 1 ;否则 PF = 0

3AH + 7CH= B6H= 10110110B

结果中有 5 个 1 ,是奇数: PF = 0

PF 标 志 仅 反 映 最 低 8 位 中 “ 1” 的 个 数 是偶或奇,即使是进行 16 位字操作

Page 20: 第 2 章   16 位微处理器 8086

溢出标志 OF ( Overflow Flag )

若算术运算的结果有溢出,则OF= 1 ;否则 OF= 0

49H + 6DH =B6H ,产生溢出: OF = 1

75H + 8BH =( 1 ) 26H ,没有溢出: OF = 0

Page 21: 第 2 章   16 位微处理器 8086

什么是溢出?处理器内部以补码表示有符号数8 位表达的整数范围是: - 128 ~ + 12716 位表达的范围是: - 32768 ~ + 32767如果运算结果超出这个范围,就产生了溢出有溢出,说明有符号数的运算结果不正确

49H+ 6DH= B6H ,就是 73+ 109= 182 ,已经超出- 128~+ 127范围,产生溢出,故 OF=1 ;另一方面,补码 B6H 表达真值是 -74 ,显然运算结果也不正确

Page 22: 第 2 章   16 位微处理器 8086

溢出和进位 溢出标志 OF 和进位标志 CF 是两个意义不同的标志

进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;

溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。

请看例子请看例子

Page 23: 第 2 章   16 位微处理器 8086

溢出和进位的对比例 1 : 49H + 6DH= B6H无符号数运算: 73+ 109 = 182

范围内,无进位有符号数运算: 73+ 109 = 182

范围外,有溢出

例 2 : BBH + 6AH=( 1 ) 25H无符号数运算: 187+ 106= 293

范围外,有进位有符号数运算: - 69+ 106= 37

范围内,无溢出

Page 24: 第 2 章   16 位微处理器 8086

溢出的判断 判断运算结果是否溢出有一个简单的规则:

只有当两个相同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确

其他情况下,则不会产生溢出

Page 25: 第 2 章   16 位微处理器 8086

例 请指出执行了下列的加法操作后各标志位的状态。

 

1010 0100 0011 1001

+ 0100 0101 0110 1010

1110 1001 1010 0011

执行以上操作后,各状态标志的状态应为:

CF=0 , AF=1 , PF=1 , ZF=0 , SF=1 , OF=0 。

Page 26: 第 2 章   16 位微处理器 8086

辅助进位标志 AF ( Auxiliary Carry Flag )

49H + 6DH= B6H , D3 有进位: AF = 1

运算时 D3 位(低半字节)有进位或借位时, AF = 1 ;否则 AF = 0 。

 这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心

Page 27: 第 2 章   16 位微处理器 8086

方向标志 DF ( Direction Flag )

用于串操作指令中,控制地址的变化方向:

设置 DF= 0 ,存储器地址自动增加;设置 DF= 1 ,存储器地址自动减少。

CLD 指令复位方向标志: DF= 0STD 指令置位方向标志: DF= 1

Page 28: 第 2 章   16 位微处理器 8086

中断允许标志 IF ( Interrupt-enable Flag )

用于控制外部可屏蔽中断是否可以被处理器响应:

设置 IF= 1 ,则允许中断;设置 IF= 0 ,则禁止中断。

CLI 指令复位中断标志: IF= 0STI 指令置位中断标志: IF= 1

Page 29: 第 2 章   16 位微处理器 8086

陷阱标志 TF ( Trap Flag )

用于控制处理器进入单步操作方式:设置 TF= 0 ,处理器正常工作;设置 TF= 1 ,处理器单步执行指令。

单步执行指令——处理器在每条指令执行结束时,便产生一个编号为 1 的内部中断

这种内部中断称为单步中断 所以 TF 也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试

Page 30: 第 2 章   16 位微处理器 8086

DEBUG 中各标志位的符号表示

标志位名 置位符号 (=1) 复位符号 (=0)

溢出标志 OF OV NV

方向标志 DF DN UP

中断标志 IF EI DI

符号标志 SF NG PL

零标志 ZF ZR NZ

辅助标志 AF AC NA

奇偶标志 PF PE PO

进位标志 CF CY NC

Page 31: 第 2 章   16 位微处理器 8086

2.2 8086 对主存储器的分段管理一、 主存储器的分段机构

8086CPU 有 20 条地址线最大可寻址空间为 220= 1MB物理地址范围从 00000H~ FFFFFH

8086CPU 将 1MB空间分成许多逻辑段( Segment )

每个段最大限制为 64KB段地址的低 4 位为 0000B

这样,一个存储单元除具有一个唯一的物理地址外,还具有多个逻辑地址

Page 32: 第 2 章   16 位微处理器 8086
Page 33: 第 2 章   16 位微处理器 8086

物理地址和逻辑地址对应每个物理存储单元都有一个唯一

的 20 位编号,就是物理地址,从 00000H~ FFFFFH 。

分段后在用户编程时,采用逻辑地址,其形式为:

段基地址 : 段内偏移地址

分隔符

Page 34: 第 2 章   16 位微处理器 8086

逻辑地址 段基地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模 16 地址: xxxx0H 省略低 4 位 0000B ,段地址就可以用 16 位数

据表示,就能用 16 位段寄存器表达段地址 偏移地址说明主存单元距离段起始位置的偏移量

每段不超过 64KB ,偏移地址也可用 16 位数据表示

Page 35: 第 2 章   16 位微处理器 8086

物理地址和逻辑地址的转换将逻辑地址中的段地址左移 4 位,加

上偏移地址就得到 20 位物理地址一个物理地址可以有多个逻辑地址

逻辑地址 1460:100 、 1380:F00物理地址 14700H 14700H

14600H+ 100H14700H

13800H+ F00H14700H

段地址左移 4 位段地址左移 4 位加上偏移地址加上偏移地址

得到物理地址得到物理地址

Page 36: 第 2 章   16 位微处理器 8086

例 系统刚复位时,除了 CS=FFFFH 外, 8086CPU 的其他内部寄存器的值均为 0 ,指令的物理地址应为 CS 的值乘以 16 ,再加上 IP 的值 ,所以,复位后执行的第一条指令的物理地址为:

FFFF0H

+ 0000H

FFFF0H

Page 37: 第 2 章   16 位微处理器 8086

8086 对存储器的访问(图 2 -6 )

Page 38: 第 2 章   16 位微处理器 8086

二、 8086 存储器的结构

   8086 的 1MB 存储空间分成两个存储体。偶地址存储体和奇地址存储体,各为 512K字节,如图 2-7所示。 CPU 用 A0 来区分两个存储体,并提供两条信号线和 A0 ,来决定是访问偶地址 ( 低字节 ) ,还是奇地址 ( 高地址 ) 或是整个字。

Page 39: 第 2 章   16 位微处理器 8086
Page 40: 第 2 章   16 位微处理器 8086

 当 A0=0 时,选择偶地址存储体。偶地址存储体与数据总线的低 8 位 (D7 ~ D0) 相连,所以从低 8 位数据总线读 / 写一个字节。当 BHE=0 时,选择访问奇地址存储体,奇地址存储体与数据总线高 8 位 (D15~ D8)相连,所以由高 8 位数据总线读 / 写一个字节。当 A0=0 , BHE =0 时,访问两个存储体,读 / 写一个字。 BHE 与 A0 的组合功能如教材表 2-2 所示。

Page 41: 第 2 章   16 位微处理器 8086

表 2-2 BHE 和 A0 组合功能

BHE A0 读写的字节 BHE A0 读写的字节

0 0 同时读写高低两个字节

1 0 只 读 写 偶 数 地址的低字节

0 1 只读写奇数地址的高字节

1 1 不传送

Page 42: 第 2 章   16 位微处理器 8086

1 8086 处理器分几大功能块,作用?

2 什么是物理地址和逻辑地址,如何从逻辑地址转换为物理地址

3 如何确定指令所在的物理地址?

3 标志寄存器包括那些位?各位的作用?

请指出执行了下列的加法操作后各标志位的状态。

1010 0100 0011 1001

+ 0100 0101 0110 1010

1110 1001 1010 0011

执行以上操作后,各状态标志的状态应为:

Page 43: 第 2 章   16 位微处理器 8086

存储器解决数据或程序如何放,如何取的问题,同时还要考虑尽量减少内存访问时间,节省内存空间。

关于存储器的组织

Page 44: 第 2 章   16 位微处理器 8086

•存储器按字节编址•若存放的信息是 8 位的字节,则按顺序存放;若为 16 位的字,低位字节放在低地址,高位字节放在高地址•若存放双字( 4 字节),则低位字是偏移量,高位字是段地址值

Page 45: 第 2 章   16 位微处理器 8086

非规则存放:对存放的字,其低位字节从奇数地址开始存放

非规则字:按非规则存放的字

规则存放:对存放的字,其低位字节从偶数地址开始存放

规则字:按规则存放的字

规则字的读写可在一个周期完成,而非规则字的读写则需要两个周期,而且还要对所需的两个半字进行调整,如图 3-11 所示

Page 46: 第 2 章   16 位微处理器 8086

从存储器的偶数地址和奇数地址读字节和字

Page 47: 第 2 章   16 位微处理器 8086

如:物理地址 11245H 对应两个逻辑地址:

11230H+ 15H

11240H+ 05H

Page 48: 第 2 章   16 位微处理器 8086

2.3 8086 微处理器的引脚及工作模式一、 8086CPU 的引脚及其功能

   8086CPU 的 40 条引脚信号可按功能分可分为四类,它们是:

 地址总线

 数据总线

 控制总线

 其它 ( 时钟与电源 ) 。

Page 49: 第 2 章   16 位微处理器 8086

1. 最小模式和最大模式概念

(1) 最小模式 :

 在系统中只有一个微处理器。

(2) 最大模式:

 两个或多个微处理器(主处理器、协处理器)

Page 50: 第 2 章   16 位微处理器 8086

2.8086 的引脚信号

( 1 )最小模式( MN/MX 接+ 5V)

① AD15~ AD0 ,地址 / 数据总线 ② A19/S6~ A16/S3 ,地址 / 状态总线 ③ BHE/ S7 ,高 8 位数据允许 / 状态线 ④MN/MX ,最小 / 最大模式控制信号,输入 ⑤RD ,读信号 ⑥WR,写信号 ⑦M/IO,存储器 /输入输出控制信号

Page 51: 第 2 章   16 位微处理器 8086

⑧ALE ,地址锁存允许信号⑨READY(Ready) ,准备就绪信号⑩INTR,可屏蔽中断请求信号⑪INTA ,中断响应信号 ⑫NMI ,非屏蔽中断请求信号⑬RESET,系统复位信号 ⑭DEN,数据允许信号 ⑮DT/R,数据发送 / 接收控制信号

Page 52: 第 2 章   16 位微处理器 8086

⑯HOLD ,总线保持请求信号输入 ⑰HLDA ,总线保持响应信号 ⑱TEST,测试信号 ⑲CLK,时钟输入信号 ⑳VCC(+5V) , GND

Page 53: 第 2 章   16 位微处理器 8086

8086 对存储器的读 / 写时序

Page 54: 第 2 章   16 位微处理器 8086

•首先是 ALE 在 T1 有效,将地址锁存 1-3步•BHE 和 A0 信号共同确定当前是读一个字节还是一个字 4•M/IO 在 T1 状态为高电平,并持续到本周期结束 5•T2 状态时,地址信号消失, CPU 一端的总线驱动器进入高阻状态 6 , CPU发出 RD 信号 7•T3 状态, AD15~ AD0出现有效的数据 8 ,同时,存储器向 CPU发出 READY 信号 9 ,CPU 可以读取•T4 时, RD回到高电平 10

说明

Page 55: 第 2 章   16 位微处理器 8086

AD15~ AD0 ,地址 / 数据总线

•16 个引脚即可作为地址线又是数据线,在读写周期过程中分时使用,8088只使用 AD7~ AD0 作为数据线•在 T1 状态输出地址数据, T2 时高阻, T3 时传送数据, T4周期结束

Page 56: 第 2 章   16 位微处理器 8086

A19/S6~ A16/S3 ,地址 / 状态总线

•分时输出, T1 状态输出地址的最高 4位到地址锁存器( 8282 ), T2~ T4输出状态信息•访问 I/O 端口时,不用, A19~ A16= 0

•S6= 0 指示 8086/8088当前与总线相连•S5 表示中断允许标志位 IF 的当前设置•S4,S3 指示当前正在使用哪个段寄存器

Page 57: 第 2 章   16 位微处理器 8086

BHE/ S7 ,高 8 位数据允许 / 状态线•BHE/S7 :高 8未数据总线允许 / 状态复用引

脚•BHE 在 T1 时输出, S7 在 T2~ T4 时输出•在 8086 中, BHE 表示高 8 位 AD15~ AD8上的数据有效•在 8088 中,对应的引脚作用不同,在最小方式时,为 SS0 ,和 DT/R 、 M/IO 一起决定当前总线周期的读写动作;在最大方式时,恒为高电平。

Page 58: 第 2 章   16 位微处理器 8086

s4 s3 使用段寄存器情况 0 0 正在使用附加段 ES 0 1 正在使用堆栈段 SS 1 0 正在使用代码段 CS 或未

使用任何段寄存器 1 1 正在使用数据段 DS

S5反映标志寄存器中断允许位 IF 的当前值

S6 表示 8086当前连接在总线上

S7未定义,备用信号线

Page 59: 第 2 章   16 位微处理器 8086

•RD :读控制信号, RD=0 ,与 M/IO( 8086 )或 M/IO ( 8088 )一起对存储器或 I/O 端口进行读操作; RD 在 T2 、 T3 和 Tw 状态均为低电平;在总线进入“保持响应”期间,被浮空。•READY : “准备好”输入信号,来自存储器或 I/O 端口的响应信号, CPU 在 T3状态开始对 READY 信号采样,若 READY= 0 ,则插入一个等待周期 Tw ,直到READY= 1 ,进入 T4 ,完成数据传送。

Page 60: 第 2 章   16 位微处理器 8086

•TEST :等待测试信号,多处理器系统中使用,CPU 执行 WAIT 指令时, CPU 的内部硬件检测该引脚,若为低电平,则继续执行下面的指令,这时, WAIT相当与 NOP ;若为高电平,则 CPU 在每个时钟等待,不再执行下面的指令,直到该信号为低电平•INTR :可屏蔽中断请求信号, INTR= 1 表示外设有中断请求信号, CPU 在每个指令周期的最后一个周期采样该信号,若 IF=1 ,则 CPU 响应该中断请求,中断现行程序的执行,转入中断服务程序 IF= 0 ,不响应。•NMI :非屏蔽中断请求,上升沿触发,不受 IF的影响,也不能用软件屏蔽。

Page 61: 第 2 章   16 位微处理器 8086

•RESET :复位信号,高电平有效,与 8284A 的复位输出端相连,复位后内部寄存器的值为: FR=0 , IP=0000H , CS=FFFFH ,DS=0000H , SS=0000H , ES=0000H ,并清除指令缓冲器 , CPU 的所以三态输出信号线均为高阻状态,使所以的输出控制信号均无效;当 RESET启动后,由 CS 和 IP共同产生的复位地址为 FFFF0H 。•CLK :系统时钟,与 8284A 时钟发生器的时钟输出端相连

Page 62: 第 2 章   16 位微处理器 8086

•INTRA ( Interrupt Acknowledge ):中断响应信号输出,,它提供两个连续的负脉冲,第一个脉冲告知外设中断请求得到允许,在第二个脉冲期间,对应的中断类型码放到数据总线。•ALE ( Address Latch Enable ):地址锁存信号输出,在总线周期的 T1 状态, ALE向地址锁存器 8282输出高电平,锁存地址。•DEN ( Data Enable ):数据允许信号,为8286数据收发器的 OE 端提供一个控制信号,以确定是否允许数据通过它,低电平时,允许通过;在 DMA方式时,浮置为高阻状态

Page 63: 第 2 章   16 位微处理器 8086

•DT/R ( Data Transmit/Receive ):数据收发输出,通过 8286控制数据的传送方向,高电平时,为数据发送;低电平时,数据接收。•M/IO ( Memory/IO ):该信号为高电平时, CPU访问存储器,低电平时,表示 CPU访问 I/O 端口,一般在前一周期的 T4 状态, M/IO就产生有效电平并保持,直到本周期的 T4 状态为止; DMA方式时,该引脚浮置为高阻态•WR ( Write ):对存储器或 I/O进行写操,与 M/IO 配合工作, WR 在 T2 、 T3 、 Tw期间有效; DMA方式时,该引脚浮置为高阻态。

Page 64: 第 2 章   16 位微处理器 8086

•HOLD ( Hold Request ):总线保持请求信号输入,当 CPU之外的模块(如 DMA )申请使用总线时,向 CPU发次信号,若 CPU同意让出总线,则在 T4 状态由引脚 HLDA发出一个回答信号,同时 CPU的总线引脚处于浮空状态,请求总线的模块接管总线,这时 HOLD 和 HLDA均为高电平,模块使用总线完毕,把 HOLD 变低,CPU 也将 HLDA 变低, CPU重获总线使用权•HLDA ( HOLD Acknowledge )见上

Page 65: 第 2 章   16 位微处理器 8086

( 2 )最大模式( MN/MX 接地)

8086 CPU 工作在最大模式时,其 24 ~ 31 引脚需重新定义,如表 2-4 所示。

Page 66: 第 2 章   16 位微处理器 8086

①QS1/QS0 ,指令队列状态信号,供外部对指令队列的跟踪

②S2 、 S1 、 S0 ,总线周期状态信号

③LOCK ,总线封锁信号总线封锁信号输出,为 0 时,系统中其他部件就不能占有总线,该信号是由指令前缀 LOCK产生的。

④ RQ/GT1 和 RQ/GT0 ,总线请求信号输入 / 总线请求信号允许输出

Page 67: 第 2 章   16 位微处理器 8086

QS1 QS0 说明

0 0 空操作

0 1 从指令队列中取走第一个字节

1 0 队列为空

1 1 从指令队列中取走后继字节

表 2-5 、编码及其功能

Page 68: 第 2 章   16 位微处理器 8086

S2 S1 S0 操作类型 S2 S1 S0 操作类型

000 发中断信号 100 取指令

001 读 I/O 端口 101 读存储器

010 写 I/O 端口 110 写存储器

011 暂停 111 无源状态

表 2-6 S2 S1 S0 状态编码表

Page 69: 第 2 章   16 位微处理器 8086

RQ/GT1 、 RG/GT0 ( Request/Grant ):总线请求信号输入 / 总线请求允许信号输出,双向信号。可供 CPU 以外的两个处理器用来发出使用总线的请求和接收 CPU 对总线请求信号的回答信号, RG/GT0比 RQ/GT1优先级高。

Page 70: 第 2 章   16 位微处理器 8086

二、 8086 在最小和最大模式下的典型配置

1.8086 最小工作模式的典型配置

Page 71: 第 2 章   16 位微处理器 8086

在最小工作模式系统配置中,除了 8086CPU 外,还需要在外围电路中加入:

    1片 8284A ,作为时钟发生器。

   3 片 8282(8 位锁存器 ) 或 74LS373 ,作为地址锁存器。

   2片 8286/8287 或 74LS245 ,作为双向总线收发器,以增加数据总线的驱动能力。

Page 72: 第 2 章   16 位微处理器 8086

2.8086 最大工作模式的典型配置

Page 73: 第 2 章   16 位微处理器 8086

从图 2-9和图 2-10 中可以看出, 8086CPU 在最大模式和最小模式之间的主要区别是:在最大模式下,需要增加一个转换控制信号的电路,用来对 CPU发出的控制信号进行变换和组合,即8288 总线控制器。8288 接受 8086CPU 的状态信号 S2 、 S1 和 S0 ,经过变换和组合,由 8288产生并发出对存储器或 I/O端口的读 / 写信号,产生和发出对地址锁存器 8282 及总线收发器 8286 的控制信号等。

Page 74: 第 2 章   16 位微处理器 8086

•8288芯片产生的几个信号意义:MRDC ( Memory Read Command )MWTC ( Memory Write Command )IORC ( I/O Read Command )IOWC ( I/O Write Command )INTA

AMWC

AIOWC

Page 75: 第 2 章   16 位微处理器 8086

第 2 章 教学要求 1. 掌握 8086CPU 的内部结构 2.掌握 8086CPU 对存储器的分段管理的

基本概念 3. 掌握 8086 的寄存器组和存储器组织 4. 掌握 8086CPU 的两种工作模式 习题 2  2.1 2.3 2.4 2.6 2.7 2.8   2.9

Page 76: 第 2 章   16 位微处理器 8086

习 题

1 . 8086CPU 由哪两部分组成?它们的主要功能各是什么?

2 . 8086/8088 CPU 中有哪些寄存器?各有什么用途?标志寄存器 FLAGS 有哪些标志位?在什么情况下置位?

3 .什么是逻辑地址?什么是物理地址?如何将逻辑地址转换为物理地址?

4 .设 X=35H , Y=76H ,进行 X+Y 和 X-Y 运算后,标志寄存器 FLAGS 的状态标志位各是什么?

Page 77: 第 2 章   16 位微处理器 8086

5 . 8086 有哪 4 个逻辑段?各种逻辑段分别是什么用途?

6 .请将如下逻辑地址用物理地址表示:

( 1 ) FFFFH : 0000H ( 2 ) 0045H : 0018H ( 3 ) 2000H : 4600H ( 4 ) B821H : 3456H

7 .若 8086CPU 工作于最小模式,试指出当 CPU 将AH 的内容送到物理地址为 91001H 的存储单元时,以下哪些信号应为低电平: M/IO 、 RD 、 WR 、 BHE/S7 、 DT/R 。若 CPU 完成的是将物理地址 91000H单元的内容读到 AL 中时,则上述哪些信号应为低电平?

Page 78: 第 2 章   16 位微处理器 8086

8 .什么是引脚的分时复用?请说出 8086CPU 有哪些引脚是分时复用引脚?如何分时复用?

9 .试说明 8086CPU 工作在最大和最小模式下系统基本配置的差异。

10 .分析 8086CPU 两个中断输入引脚的区别,以及各自的使用场合。