第三章 8086微处理器

时间:2024-03-21 11:38:07

目录

第三章 8086微处理器... 2

3.2 8086的存储器组织... 2

3.2.1寻址空间和数据存储格式... 2

3.2.2存储器的分段结构和物理地址形成... 3

3.3 8086微处理器的内部结构... 4

3.3.1、8086CPU的内部结构... 4

3.4 8086总线的工作周期... 7

3.5 8086中断系统... 7

3.5.1 中断... 7

3.5.2 中断向量与中断向量表... 9

3.5.3 中断处理过程... 10

3.6 8086微处理器外部基本引脚与工作模式... 11

3.6.1 8086系统总线结构... 11

3.6.2 两种模式下公用的引脚信号... 12

3.6.3 最小模式... 15

3.7 8086微处理器的时序... 18

3.7.1系统的复位与启动... 18

3.7.2最小模式系统总线周期时序... 19

附录 第三章思维导图... 22

 

 

 

 

第三章 8086微处理器

3.2 8086的存储器组织

3.2.1寻址空间和数据存储格式

1、寻址空间

当存储器按字节编址时,若地址总线为n位,CPU寻址范围是2n字节

第三章 8086微处理器

28086存储器的组织及寻址

18086地址总线为20位,寻址能力为1MB,每个字节用唯一的一个地址码标识。即地址范围为0-220-1(0-1048575),采用十六进制表示为00000H-FFFFFH

 

2)虽然按照字节编址,但是实际一个变量可以是字节、字或者双字类型。

①字节数据(BYTE

字节数据为8位,分为奇地址、偶地址。

②字数据(WORD

字数据16位,存放在两个连续的字节单元中。

第三章 8086微处理器

 

③双字数据(DOUBLE WORD

双字数据占用4个连续字节单元,并规定最低字节地址为双字的地址

 

第三章 8086微处理器

38086系统把1MB的内存分为两个块,每个块分别为512KB,其中和数据总线D15-D8相连的块是高位地址块,有所有的奇地址单元组成(00001 00003 00005 …. FFFFF,奇地址块),其中和数据总线D7-D0相连的块是低位地址块,有所有的偶地址单元组成(00000 00002 00004 …. FFFFE,偶地址快)。

第三章 8086微处理器

第三章 8086微处理器

 

 

3.2.2存储器的分段结构和物理地址形成

1、存储器的分段结构

1)由于8086中的地址寄存器都是16位的,用户不能直接使用20位的物理地址,编程时需要使用逻辑地址来寻址存储单元。一般的逻辑地址有两个16位数构成,形式为:

段的起始地址 :段内的偏移地址

16位段地址):(16位偏移量)

第三章 8086微处理器

21MB最多可以分为16个不重叠的段,每段长度为216=64KB,段内偏移量也是16位数表示。

 

2、物理地址的形成

每个存储单元都有一个唯一物理地址(00000HFFFFFH),20位二进制数,该地址在指令执行时由地址加法器形成,并进行硬件寻址。地址加法器的具体做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。

第三章 8086微处理器

3、按照信息特征分段存储

存储器可以划分为:程序区、数据区、堆栈区

程序段中存储程序的指令代码;数据段和附加段中存储数据、中间结果和最后结果;堆栈段存储压入堆栈的数据或状态信息。

3.3 8086微处理器的内部结构

3.3.18086CPU的内部结构

       8086CPU的内部结构包括总线接口部件BIU和执行部件EU

       总线接口部件(BIU):完成CPU与主存储器或I/O端口间信息的传送,主要功能包括预取指令序列、存取数据、将访问主存的逻辑地址转换为实际的物理地址;其组成包括一个20位地址加法器、416位段寄存器、一个16位指令指针IP、一个6字节的指令队列缓冲器,以及总线控制逻辑电路等。

       执行部件(EU):负责进行所有指令的解释和执行,同时管理EU中相关的寄存器,主要功能是从指令队列中取出指令,完成指令译码与指令的执行;其组成包括控制器、算术逻辑单元、标志寄存器、通用寄存器组。

       BIUEU是同时工作的,一条指令在EU中执行的同时,BIU就可以提前取出下一条(或多条)执行放在指令队列中排队。EUBIU的并行操作提高了CPU和总线的利用率,加快了程序的运行速度。

3.3.28086CPU的寄存器结构

8086CPU的内部寄存器如图所示:

 

第三章 8086微处理器

       8086微处理器内部共有1416位寄存器,按用途可分为数据寄存器、段寄存器、地址寄存器与变址寄存器、控制寄存器。

  1. 数据寄存器

8086包含416位数据寄存器,又可分为88位数据寄存器,如图所示:

 

第三章 8086微处理器

       其中累加器AX多用于存放中间运算结果,所有I/O指令都使用AX寄存器与外部设备传送信息;

基址寄存器BX 常用于存放访问内存时的偏移地址;

计数寄存器CX用于在循环或串操作指令中存放循环次数或重复次数;

数据寄存器DX32位乘除法运算时,存放高16位数;在间接寻址的I/O指令中存放I/O端口地址。

  1. 段寄存器

8086包含416位段寄存器,分别为:

代码段寄存器CS:管理程序段;

数据段寄存器DS:管理数据段;

堆栈寄存器SS:存放当前堆栈段的段地址,管理堆栈段;

附加段寄存器ES:存放当前程序使用附加段的段地址,管理扩展段。

  1. 地址指针与变址寄存器

8086包含416位地址指针与变址寄存器,分别为:

堆栈指针急窜起SP:指出堆栈段中栈顶的偏移地址;

基址指针寄存器BP:指出要处理的数据在堆栈段中的起始地址;

源变址寄存器SI和目的变址寄存器DI:常用于指令的简介寻址或变址寻址。

其中,BXBP在应用上的区别是:

作为通用寄存器时,二者皆可存放数据;

作为基址寄存器时,BX通常用于数据段,一般与DSES搭配使用;BP则通常用于堆栈段,与SS搭配使用。

  1. 控制寄存器

控制寄存器包括指令指针寄存器IP和标志寄存器FLAGS

指针指令寄存器IP:用来存放下一条将要执行的指令在代码中的偏移地址,程序员不可以直接使用,但程序控制类指令会用到。

标志寄存器FLAGS:存放该处理器的程序状态字,共16位,其中7位没有意义,其余9位分成两类:

  1. 状态标志:反映当前运算和操作结果的状态条件,可作为程序控制转移与否的依据,分别时CFPFAFZFSFOF
  2. 控制标志:由指令进行置位和复位,用来控制CPU的操作,包括DFIFTF

其主要功能如图所示:

 

第三章 8086微处理器

3.4 8086总线的工作周期

       主频:CPU的工作频率;

       时钟周期:对主频进行分频后的工作时钟;

       总线周期:完成一次总线操作所需的时间。一个基本的总线周期由4个时钟周期(T1~T4)组成。

       指令周期:一条指令从开始取值到最后执行完毕所需的时间。

       空闲周期Ti:一个总线周期后不立即执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态。

       等待周期Tw

       总线周期时序如图所示:

第三章 8086微处理器

 

3.5 8086中断系统

3.5.1 中断

       根据中断的产生原因,8086中断系统将256个不同的中断源分为硬件中断与软件中断两类。

  1. 硬件中断(外部中断)

指由处理器外部的硬件、外围设备的请求而引起的中断。8086有两条硬件中断请求信号线:NMI(非屏蔽中断)和INTR(可屏蔽中断)。

外围设备通过中断请求线向CPU提出中断请求。

如图所示:

第三章 8086微处理器

 

  1. 可屏蔽中断

INTR线上的中断请求信号引起的中断。电平触发。

受到中断允许标志IF控制,IF=1(指令STI),开中断,允许响应INTR中断;IF=0(指令CLI),关中断,禁止响应INTR中断。

  1. 不可屏蔽中断

NMI线上的中断请求信号引起的中断。上升沿触发。

非屏蔽中断的中断类型码为2

不受中断允许标志IF的控制与影响,一旦NMI引脚出现中断请求,CPU在当前指令执行完后,必须立即响应。

非屏蔽中断具有比可屏蔽中断更高的优先权。

  1. 软件中断(内部中断)

指由处理器内部事件产生的中断,主要由指令驱动或由指令通过CPU状态简介驱动来引起中断。主要有以下5种类型,可分为3类:

  1. 处理运算过程中某些错误的中断
  1. 除法错中断:中断类型码为0;当执行DIVIDIV指令时,若用零作除数,或者商超过了寄存器所能表达的范围,则无条件产生该中断。
  2. 溢出中断:中断类型码为4;在算术运算程序中,若在算术运算之后加入一条INTO指令,则INTO指令将测试溢出标志OF。当OF=1(表示有算术运算溢出)时,该中断发生。
  1. 为调试程序设置的中断
  1. 单步中断:中断类型码为1;当设定标志寄存器中陷阱标志TF=1时,CPU每执行一条指令就产生该中断。若TF=0,则处理器按正常方式连续执行指令。
  2. 断点中断:中断类型码为3;设置断点或执行INT 3指令可产生该中断。
  1. 中断指令INT n引起的中断:中断类型码为n。用户可用中断指令INT n产生指定类型n的任何中断。
  1. 中断优先权

8086中规定中断优先权从高到低的顺序为除法错、溢出中断指令INTO、中断指令INT n;非屏蔽中断NMI;可屏蔽中断INTR;单步中断。

中断嵌套:对不同时发生的中断,允许低优先级别的中断处理程序被高优先级别的中断源所中断。

3.5.2 中断向量与中断向量表

       中断类型码:不同的中断源都有唯一标识的中断类型码;

     向量中断:由中断类型码来查找中断入口地址进而转向中断服务程序的方法;

       中断向量:即中断服务程序的入口地址,包括段地址(高字节单元)和偏移地址(低字单元)。

       每一个中断处理程序都有一个唯一的中断向量。

       中断向量表:把系统中每一个中断源的中断服务程序入口地址集中起来,按中断类型码的顺序存放在某一连续排列的存储区域内。主要为:

  1. 按中断类型码从小到大顺序依次存放各类中断(256种)的中断向量(中断服务程序入口地址)。
  2. 在内存的00000H~003FFH的地址范围内,大小为1KB
  3. 每个中断向量占用4Bytes,低字为段内偏移地址(IP),高字为段基址(CS)。
  4. 中断类型码与中断向量地址的关系:设某类中断的中断类型码为n

中断向量在IVT中的存放地址(向量地址)=4×n

 

3.5.3 中断处理过程

       中断处理过程包括:中断请求、中断排队、中断响应、中断处理、中断返回等全过程。

  1. 可屏蔽中断的中断过程
  1. CPU响应可屏蔽中断的条件
  1. 外设提出中断申请
  2. 本中断未被中断控制器屏蔽
  3. 本中断优先级最高
  4. CPU允许中断
  1. CPU响应可屏蔽中断的过程

CPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,CPU响应中断;

  1. 非屏蔽中断和软件中断的执行过程

非屏蔽中断和软件中断的中断响应、中断处理及中断返回等过程,与可屏蔽中断基本相同,仅在中断请求和中断响应的条件上有所区别。

8086的系统中断流程如图所示:

第三章 8086微处理器

 

  1. 中断类型码的形成

中断入口地址依赖中断类型号,中断型号获取方法:

  1. 对于专用中断:除法出错、单步中断、不可屏蔽中断、断点中断和溢出中断,由CPU分别提供中断类型号0~4(内部形成)。
  2. 对于用户自己确定的软件中断INT n类型由n决定;
  3. 对于INTR引脚上的中断:由硬件电路设计产生中断类型号;可用8259A获取中断类型号。

 

3.6 8086微处理器外部基本引脚与工作模式

3.6.1 8086系统总线结构

一、最大模式和最小模式

最小模式:用于8086单一微处理器构成的小型系统。所有的总线控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最少。

最大模式:用于大型(中型)8086系统中。系统总是包含有两个或多个微处理器,其中一个主处理器就是8086,还有协处理器80878089等,实现多处理机系统。通常由专门的总线控制器(8288)产生总线控制信号。

二、8086微处理器外部基本引脚与工作模式

1.为了减少芯片引脚个数,部分8086CPU的外部引脚采用了复用技术。复用引脚分为按时序复用和按模式复用。

时序复用:当CPU工作在不同的T周期时,这些引脚传递不同的信息;

模式复用:当CPU处于不同的工作模式时,这些引脚具有不同的功能含义。

2. 8086采用双列直插式(Double In linePackageDIP)封装,具有40条引脚,使用+5V电源供电。时钟频率有3: 5MHz8086)、8MHz8086-1)和10MHz8086-2)。其引脚信号如图3.13所示,括号内为最大模式时的引脚名称。

3.8086引脚信号定义

第三章 8086微处理器第三章 8086微处理器

 

3.6.2 两种模式下公用的引脚信号

一、两种模式下公用的引脚信号

两种模式下公用的引脚信号包括地址总线、数据总线、状态信号、控制总线、其他信号(CLKVccGND

 

二、地址总线、数据总线、状态信号

数据总线:在CPU与内存储器或者I/O设备之间交换信息,为双向、三态信号;808616根数据总线。

地址总线:地址总线由CPU发出,用来确定CPU要访问的内存单元或者I/O端口的地址信号,为输出、三态信号。808620根地址总线。

在总线周期上,由于地址信息和数据信息在时间上不重叠,因此部分地址线和数据线公用一组引脚。状态信号用来指示CPU的状态信息,其中S6-S3和地址总线的高4位分时复用,S7BHE分时复用。

 

1AD15AD02~1639

分时地址/数据复用总线;为双向、三态信号;

分时输出低16位地址信号及进行数据信号的输入/输出。在每个总线周期的第一个时钟周期T1中,AD15-AD0作为地址总线的低16A15-A0,给出内存单或者I/0端口的地址;在总线周期的其余时间(T2T3TwT4),AD15-AD0作为数据总线D15-D0使用。

A15-A0T1输出访问存储器或I/O的地址信息。

D15-D0T2-T4输出与存储器和I/O设备交换数据信息。

(2) A19/S6A16/S3 (35~38)

分时地址/状态复用线;为输出、三态信号;

分时输出地址的高4位及状态信息。在每个总线周期的第一个时钟周期T1中,A19/S6A16/S3作为地址总线的高4A19-A16,给出内存单元的高4位地址,同时如果访问I/0端口的地址则4个位置均为低电平;在总线周期的其余时间(T2T3TwT4),这四条信号线指示CPU的状态信息S6-S3S6恒为低电平(8086CPU此时正在和总线连着),S5反映标志寄存器中中断允许标志IF的当前值,S4S3组合指示当前正在使用的是哪个段寄存器。

第三章 8086微处理器

 

A19-A16T1输出访问存储器的20位地址的高4位地址A19-A16

S6-S3T2-T4输出CPU的工作状态。

(3)BHE/S734

8位数据总线有效/状态复用引脚,时分复用;三态输出;

T1状态,表示高8位数据线D15D8上的数据有效和S7 状态信号;

T2-T4状态输出S7状态信号。8086中无定义。

偶地址单元数据通过数据总线低8位传输。奇地址单元数据通过数据总线高8位传输。

第三章 8086微处理器

 

三、控制总线(16根引脚)

仅介绍公用的8根引脚

1RD (32)

读信号;三态输出;低电平有效;

RD = 0,表示CPU正在读存储器或I/O端口,具体是哪一个要看M/IO

(2) READY(22)

准备就绪信号;输入;高电平有效。

READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止,才进入T4时钟周期完成数据传输。

(3) TEST (23)

测试信号,输入,实现构成多处理器系统。

CPU执行WAIT指令时(是WAIT指令结束与否的条件),CPU每隔5T状态进行一次测试;当测试到TEST=1,则CPU 重复执行WAIT指令,即CPU处于空闲等待状态,直到测试到TEST=0时,等待状态结束,CPU继续执行后续指令。

(4) RESET (21)

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

复位时:标志寄存器FLAGSIPDSSSES0CS=FFFFH,复位后CPU

FFFF0H处开始执行。

(4) INTR (18)

可屏蔽中断请求信号;输入,高电平有效。

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

(5) NMI (17)

不可屏蔽中断请求信号,输入,上升沿触发。

该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断,进入非屏蔽中断处理子程序。

(6) MN/MX (33)

工作模式选择信号;输入。

MN/MX=1,表示CPU工作在最小模式系统;

MN/MX =0,表示CPU工作在最大模式系统。

 

四、其他信号

1VCC40  GND120

电源、接地引脚;输入;

8086采用单一的+5V电源;但有两个接地引脚。

(2) CLK19

时钟信号输入引脚,为处理器提供基本的定时脉冲和内部的工作频率。

要求时钟信号的占空比为33%,即1/3周期为高电平,2/3周期为低电平。

3.6.3 最小模式

一、基本知识

1.最小模式——仅支持单处理器,MN/MX引脚接+5V电源。

2.主要需解决:地址与数据的分离和地址锁存

3.电路实现方案:用38位的锁存器8282实现地址锁存。ALE为锁存控制信号,OE#≡0使锁存的地址直接输出;用2片双向三态门8286用作数据总线驱动和隔离,DT//R作为方向控制,/DEN作为开门信号;其他控制信号由8086直接产生。

 

二、8086最小工作模式下控制核心单元的组成

第三章 8086微处理器

 

1)时钟发生器

8086内没有时钟发生电路,8284是供8086系列使用的单片时钟发生器。它由时钟电路、复位电路、准备就绪电路3部分组成。8284A的功能:产生恒定的时钟信号,对准备好信号和复位信号进行同步;外界控制信号RDYRES可以在任何时候到来,8284A把它们同步在时钟下降沿时输出READYRESET信号到CPU

①时钟发生电路

第三章 8086微处理器

X1,X2:外接石英晶体连接端

F/C:使用外振源还是由X1, X2端外接晶体振荡器,低电平时外接晶体振荡器。

CLK:时钟信号输出端,为振荡信号经3分频后产生。

PLCK:对CLK时钟信号二分频产生,占空比为1/2,供定时/计数器使用。

CSYNC:时钟同步输入,为多个8284同步工作而设置

EFI:外振源输入端

OSC:晶振频率输出端,供显示器用

②时钟发生电路

RES:输入信号,用于产生使系统复位的输出信RESET,一般来自电源电路。

RESET:输出信号,到CPURESET

③准备就绪电路

RDY1,RDY2:准备就绪输入信号,

AEN1,AEN2:用来决定对应的RDY信号生效与否,若有效使RDY1RDY2产生REDAY信号,否则使CPU产生等待周期

ASYNC:准备就绪输入信号和时钟信号进行同步的方式选择输入端

REDAY:输出到CPU的准备就绪信号

(2) 地址锁存器:(Intel828274LS373

第三章 8086微处理器

当地址锁存允许信号ALE被送到373的选通端G上时,373就锁存送到它的数据输入端的数据。

当把一个低电平有效的信号送给输出允许端OC(OE)时,373就把锁存的数据从数据输出端输出。

 

 

 

(3) 双向总线驱动器

G:控制驱动器A端和B端何时接通

DIR:当DIR输入高电平时。数据从A传到B;当DIR输入低电平时。数据从B传到A

第三章 8086微处理器

 

 

三、最小模式下的引脚信号

1INTA 24

中断响应信号;输出;低电平有效;

在两个连续的总线周期输出两个·低电平信号,第一个低电平用来通知外设CPU,准备响应它的中断请求,在第二个低电平期间,外设通过数据总线送入它的中断类型码,并由CPU读取,以便取得相应中断服务程序的入口地址;当CPU响应INTR时,INTA =0,表示响应中断。

2ALE25

地址锁存允许信号;输出;高电平有效;ALE不能浮空。

在任一总线周期的T1期间输出一个正脉冲,用于输出地址锁存信号。

3DEN(26)

数据允许信号;三态、输出;低电平有效。

DEN通常作为数据收发器的选通信号;仅当DEN=0时,才允许收发器收发数据。

(4) DT/R (27)

数据发送/接收信号;三态、输出。

DT/R控制数据收发器的数据传送方向。

DT/R=1时,表示CPU输出(发送)数据;

DT/R=0时,表示CPU输入(接收)数据。

(5) M/IO (28)

存储器或IO端口访问信号;三态、输出;

M/IO=1时,表示CPU当前正在访问存储器;

M/IO=0时,表示CPU当前正在访问I/O端口。

(6) WR (29)

写信号;输出、三态;低电平有效。

WR=0,表示CPU当前正在写存储器或I/O 端口。

(7) HOLD (31)

总线请求信号;输入;高电平有效;

用于其它主控器(处理器、DMA等)向本CPU 请求占用总线,CPU让出总线控制权直到这个信号撤销后才恢复对总线的控制权。

(8) HLDA (30)

总线请求响应,输出;高电平有效;

表示CPU认可其他总线部件提出的总线占用请求,准备让出总线控制权。

 

最小模式下,信号M/IORD,和WR组合起来决定了系统中数据传输的方式。

 

第三章 8086微处理器

3.7 8086微处理器的时序

3.7.1系统的复位与启动

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

次加电引起的复位,则要求维持不小于50us的高电平。

CPU复位:PSWDSESSSIP等寄存器,指令队列被清零。CS寄存器设置为FFFFH。注:由于复位后,IF=0,处关中断状态,所以在初始化程序中应开中断,使CPU可响应中断请求。

CPU重启:复位信号RESET从高电平到低电平的跳变会触发CPU内部的复位逻辑

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

复位操作时序图

第三章 8086微处理器

 

复位时总线状态

地址线为高阻态,直到RESET变为低电平,开始从FFFF0H单元取指令;

ALEHLDA等信号为低电平(无效);

一些信号呈高阻态。

3.7.2最小模式系统总线周期时序

1. 8086最小模式存储器和I/O读总线周期

第三章 8086微处理器

 

T1状态。M/IO信号在T1状态变为有效,若为高电平则为从存储器读取,反之为从I/O端口读取,而且这个有效电平保持到T4状态结束。同时CPUT1时通过A19/S6A16/S3AD15~AD0发出访问外设或者存储器的20位地址信息,并输出BHE有效信号,表明高八位数据线上的信息可以使用。总线上的地址信息在T1状态结束之前必须进行锁存,地址锁存器ALE作为它的锁存允许信号,所以T1状态CPU发出一个ALE正脉冲信号,地址锁存器利用ALE的下降沿锁存地址信息。

 

T2状态。总线上撤销地址信息A19/S6A16/S3,引脚输出状态信息S6~S3AD15~AD0呈现高阻态,为数据传输做准备。若进行读操作,则CPUT2状态输出RD低电平有效信号,否则进行写操作,输出WR低电平有效信号。DEN信号也在T2变为低电平有效状态,选通总线收发器工作。

 

2. 8086最小模式存储器和I/O写总线周期

第三章 8086微处理器

 

 

 

 

 

3.总线保持请求和总线授权时序

当系统中CPU之外的总线主设备(例如DMA)需要占用总线时,向CPU发出一个总线保持请求信号HOLD,该信号可能与时钟信号不同步。

CPU在每个时钟周期的上升沿检测到该信号时,在当前总线周期的T4后或下一个总线周期的T1后,CPU发出HLDA信号,并让出总线。

第三章 8086微处理器

 

 

附录 第三章思维导图

 

第三章 8086微处理器