1、封面8086微处理器第2章 Intel 8086微处理器的结构微处理器的结构 Intel8086CPUIntel8086CPU的总线周期与的总线周期与 时序时序 掌握掌握Intel 8086系统的构成和工作原理系统的构成和工作原理 重点掌握重点掌握Intel 8086微处理器的结构微处理器的结构 掌握时序的概念掌握时序的概念 掌握基本的总线周期时序掌握基本的总线周期时序2.1 8086微处理器的结构微处理器的结构 8086CPU是采用是采用HMOS工艺工艺Intel系列系列16位位微处理器,微处理器,其基本特性如下:其基本特性如下:双列直插、双列直插、40引脚引脚 单一单一+5V电源、电源、时
2、钟时钟频率频率:5MHz10MHz 16位位外部数据总线、外部数据总线、20位位外部地址总线,可寻址外部地址总线,可寻址1MB地址空间地址空间 并行流水线处理并行流水线处理结构结构 8086CPU支持支持多处理器多处理器系统,可以与数值协处理系统,可以与数值协处理器器8087或其他或其他协处理器协处理器一起,方便地构成多处理器系统。一起,方便地构成多处理器系统。20位AH ALBH BLCH CLDH DLSPBPDISIALU运算寄存器标志执行部件控制电路16位CS DS SS ESIP 内部暂存器8位1 2 3 4 5 6执行部件 (EU)输入/输出控制电路16位 外部总线 指令队列缓冲器
3、总线接口部件(BIU)通用寄存器地址加法器2.1.1 8086的功能结构的功能结构8086CPU的结构框图8086从功能结构来讲,分为两大部分,即总线接口部件总线接口部件BIU(Bus Interface Unit)和执行执行部件部件EU(Execution Unit)。1.BIU部件部件由段寄存器段寄存器、指令指针指令指针、地址加法器地址加法器、指令队列缓冲器指令队列缓冲器和控制电路控制电路等部分组成。(1)4个个16位段地址寄存器及一个位段地址寄存器及一个20位物位物理地址加法器理地址加法器 8086CPU有20位位外部地址总线,对应的存储器地址空间范围是1MB。CPU寻找某个地址单元时,
4、需要给出该单元的20位地址位地址,该地址称为存储器的物理地址物理地址。由于CPU内部的所有寄存器,包括段寄存器,都是16位位的,用它们作地址寄存器时,只能直接寻址到64KB地址范围。故在8086CPU中采用了分段技术对存储空间进行管理。采用了分段技术对存储空间进行管理。CPUCPU将将lMBlMB的存储空间分成的存储空间分成若干若干个逻辑段,每个逻个逻辑段,每个逻辑段对应一片连续的存储空间,其长度任意,但辑段对应一片连续的存储空间,其长度任意,但最大不超过最大不超过64KB64KB。当要访问逻辑段内的某一单元时,只要给出当要访问逻辑段内的某一单元时,只要给出逻辑逻辑段的起始地址段的起始地址以及
5、该单元与起始地址之间的以及该单元与起始地址之间的距离距离(又称偏移量,或偏移地址,以字节数计量),(又称偏移量,或偏移地址,以字节数计量),即可即可确定确定其物理地址。其物理地址。.图2.2 逻辑段与段内寻址 逻辑段可在整个逻辑段可在整个lMBlMB存储空间内存储空间内浮动浮动,即可重定位在不同,即可重定位在不同的位置,但逻辑段的起始地址必须能被的位置,但逻辑段的起始地址必须能被1616整除,即段起始整除,即段起始地址必须是地址必须是XXXX0HXXXX0H的形式。的形式。段起始地址的高段起始地址的高1616位称为位称为段基址段基址,它在访问存储器,它在访问存储器之前之前被被置于某个段地址寄存
6、器中。置于某个段地址寄存器中。CPUCPU访问存储器时,根据所执行的操作,选择某个访问存储器时,根据所执行的操作,选择某个段寄存段寄存器器,将其中的内容,将其中的内容左移左移4 4位位形成形成2020位地址的高位地址的高1616位(低位(低4 4位位自动添自动添0 0););然后通过然后通过2020位地址加法器再与位地址加法器再与1616位偏移量位偏移量相加相加,形成对应,形成对应的的物理地址物理地址,如图,如图2.32.3所示。所示。图2.3 8086物理地址的形成 段寄存器值 0 0 0 0 20位物理地址19 0 15 015 0偏移地址加法器16 位 4位 按不同的用途,段地址寄存器可
7、分为代码段寄存器按不同的用途,段地址寄存器可分为代码段寄存器CSCS、数据段寄存器、数据段寄存器DSDS、附加段寄存器、附加段寄存器ESES和堆栈段寄和堆栈段寄存器存器SSSS,它们分别用于存放当前,它们分别用于存放当前代码段代码段、数据段数据段、附加段附加段和和堆栈段堆栈段的段基址。的段基址。存储器采用存储器采用分段结构,方便分段结构,方便了了CPUCPU对存储器的访问。对存储器的访问。当所访问的存储器处于同一逻辑段时,可以不改变当所访问的存储器处于同一逻辑段时,可以不改变段寄存器的值,只需改变段内的段寄存器的值,只需改变段内的偏移地址偏移地址,此即为,此即为段内寻址段内寻址。当需要改变段寄
8、存器的值寻找新的地址时,称为当需要改变段寄存器的值寻找新的地址时,称为 段间寻址段间寻址 (2)16位指令指针IP IPIP用于存放下一条要从内存中用于存放下一条要从内存中取出来取出来的指令的的指令的有效地址有效地址EAEA(即偏移地址即偏移地址);在取出指令时通常进行在取出指令时通常进行IP+1IPIP+1IP的操作,但在执行转移指的操作,但在执行转移指令、调用指令时,装入令、调用指令时,装入IPIP中的是相应的中的是相应的转移目的地址转移目的地址。由段基址和偏移地址两部分构成了存储器的逻辑地址,如:由段基址和偏移地址两部分构成了存储器的逻辑地址,如:取指令时取指令时CS:IP=3000:2
9、000HCS:IP=3000:2000H,或,或CS:IP=3100:1000HCS:IP=3100:1000H等,等,这两个不同的逻辑地址对应的物理地址这两个不同的逻辑地址对应的物理地址都是都是32000H32000H。由此可见:由此可见:不同的逻辑地址可能对应同一个物理地址不同的逻辑地址可能对应同一个物理地址。用于按用于按先后次序存放先后次序存放待执行的指令,供待执行的指令,供EUEU按顺序取去按顺序取去执行执行。(4)总线控制逻辑 总线控制逻辑负责总线控制逻辑负责产生并发出总线控制信产生并发出总线控制信号号,实现对存储器和,实现对存储器和I/OI/O端口的端口的读写操作。读写操作。(3)
10、6字节的指令队列 2.执行部件EU EUEU的主要功能是的主要功能是执行指令执行指令,EUEU由以下几个部分组成:由以下几个部分组成:(1 1)算术逻辑单元)算术逻辑单元ALUALU ALU ALU用于完成用于完成1616位或位或8 8位的二进制数的位的二进制数的算术逻辑运算算术逻辑运算 (2 2)标志寄存器)标志寄存器FRFR FR FR用来反映最近一次用来反映最近一次运算结果的状态以及存放控制标志运算结果的状态以及存放控制标志 (3 3)通用寄存器组)通用寄存器组 包括包括4 4个数据寄存器个数据寄存器AXAX、BXBX、CXCX、DXDX,4 4个专用寄存器个专用寄存器SPSP、BPBP
11、、DIDI、SISI。(4 4)EUEU控制器控制器 从从BIUBIU中的指令队列获取指令,经过指令译码电路形成中的指令队列获取指令,经过指令译码电路形成各种各种定时控制信号定时控制信号,向各功能部件发送相应的控制命令,向各功能部件发送相应的控制命令,以以完成每条指令所规定的操作。完成每条指令所规定的操作。3.BIU和EU的协调动作 8086CPU中,中,BIU和和EU是是同时工作,不完全同步同时工作,不完全同步。BIU负责从内存中取出指令,送到指令队列供负责从内存中取出指令,送到指令队列供EU执行执行 BIU必须保证指令队列必须保证指令队列始终始终有指令可供执行,有指令可供执行,当指令队列有
12、当指令队列有2个字节的空余时,个字节的空余时,BIU将将自动取指令自动取指令到到指令队列。指令队列。EU直接从指令队列中取指令执行,直接从指令队列中取指令执行,由于指令队列中至少有一个以上的指令字节,由于指令队列中至少有一个以上的指令字节,EU就可就可以以节省节省因取指令而访问内存的因取指令而访问内存的等待时间等待时间。8086与传统微处理器指令执行过程比较与传统微处理器指令执行过程比较取指3执行3取指4执行2取指2执行1取指1 传统微处理器的执行方式传统微处理器取指与执行传统微处理器取指与执行串行串行进行,进行,CPU的工作效率低。的工作效率低。取数据取指5取指4取指3取指2取指1BIU执行
13、4执行3执行2执行1等待EU 8086的指令执行方式8086CPU取指与执行取指与执行并行并行进行,大大进行,大大减少了等待取指令所需时间,提高了减少了等待取指令所需时间,提高了CPU的的工作效率工作效率。2.1.2 8086CPU的寄存器结构 8086CPU 内部寄存器DLDHCLCHBLBHALAH通用寄存器AXBXCXDXSPBP SI DI数据寄存器CSDSSSESIPFLAG变址寄存器指针寄存器堆栈指针基数指针源变址目的变址指令指针状态标志代码段数据段堆栈段附加段段寄存器控制寄存器1.1.通用寄存器组通用寄存器组(1 1)数据寄存器)数据寄存器 数据寄存器包括数据寄存器包括AXAX、
14、BXBX、CXCX、DXDX等等4 4个个1616位位寄存器,寄存器,主要用来保存算术、逻辑运算的操作数、中间结果或主要用来保存算术、逻辑运算的操作数、中间结果或地址。地址。也可以将每个寄存器高字节和低字节分开作为也可以将每个寄存器高字节和低字节分开作为两个独两个独立的立的8 8位位寄存器使用,寄存器使用,从而得到从而得到8 8个个8 8位位寄存器寄存器ALAL、BLBL、CLCL、DLDL、AHAH、BHBH、CHCH、DHDH等,可用于等,可用于8 8位数据的运算和处理位数据的运算和处理。(2)指针寄存器 堆栈指针堆栈指针SPSP中存放的是中存放的是当前当前堆栈段中堆栈段中栈顶栈顶的的偏移
15、地址;偏移地址;BPBP是访问堆栈时的是访问堆栈时的基址基址寄存器,存放的是寄存器,存放的是堆栈堆栈中某一存中某一存储单元的偏移地址;储单元的偏移地址;SISI和和DIDI是是变址变址寄存器,分别为访问寄存器,分别为访问数据段数据段提供操作数的提供操作数的偏移地址;偏移地址;在串操作指令中规定:在串操作指令中规定:SISI存放源操作数存放源操作数(即即源串源串)的偏移地址,故称之为的偏移地址,故称之为源源变址寄存器变址寄存器;DIDI存放目的操作数存放目的操作数(目的串目的串)的偏移地址,故称之为的偏移地址,故称之为目的变址寄存器目的变址寄存器,二者不能混用。,二者不能混用。以上以上8个个16
16、位通用寄存器都具有位通用寄存器都具有通用性通用性,但是为了但是为了缩短缩短指令代码的长度,某些通用寄存器又规定了指令代码的长度,某些通用寄存器又规定了专门的用途专门的用途。例如,在字符串处理指令中约定必须用例如,在字符串处理指令中约定必须用CX作为计数器存作为计数器存放串的长度。放串的长度。隐含寻址:隐含寻址:即在指令中使用了一些规定的通用寄存器,且即在指令中使用了一些规定的通用寄存器,且这些通用寄存器不直接在指令中这些通用寄存器不直接在指令中体现体现出来。出来。表表2.12.1列出了列出了8086CPU8086CPU中各通用寄存器的中各通用寄存器的专门用途和隐含性质专门用途和隐含性质AXAL
17、16位、8位的累加器累加器;在I/O指令中作数据寄存器数据寄存器;不能隐含乘法指令中存放被乘数被乘数和乘积乘积;除法指令中存放被除数被除数和商商隐含AH在LAHF指令中,用作目标目标寄存器隐含AL在XLAT指令中用作累加器累加器隐含BX在间接寻址中用作基址基址寄存器不能隐含在XLAT中用作基址基址寄存器隐含CX在串操作指令和LOOP指令中用作计数器计数器隐含CL在移位指令中用作移位计数器移位计数器不能隐含DX在字乘法除法指令中存放乘积高位乘积高位或被除数高位和余数被除数高位和余数隐含在间接寻址的I/O指令中用作地址寄存器地址寄存器不能隐含SI在字符串操作指令中用作源地址源地址寄存器隐含在一般的
18、间接寻址中作变址变址寄存器用不能隐含DI在字符串操作指令中用作目的地址目的地址寄存器隐含在一般的间接寻址中用作变址变址寄存器不能隐含BP在间接寻址中用作基址指针基址指针寄存器不能隐含SP在堆栈操作中用作堆栈指针堆栈指针寄存器隐含表表2.1 8086CPU中各通用寄存器的专门用途中各通用寄存器的专门用途 四个段寄存器分别用于四个段寄存器分别用于CPUCPU在访问内存时作为在访问内存时作为段基址段基址,但某次访问时究竟是取哪一个段寄存器的内容,则要但某次访问时究竟是取哪一个段寄存器的内容,则要取决取决于于CPUCPU当前执行当前执行什么操作什么操作:取指取指令,选取令,选取CSCS段寄存器(即访问
19、代码段)段寄存器(即访问代码段)存取存取数据,选取数据,选取DSDS段寄存器(即访问数据段)段寄存器(即访问数据段)压栈压栈和和弹栈弹栈,选取,选取SSSS段寄存器(即访问堆栈段)段寄存器(即访问堆栈段)目的串目的串操作,选取操作,选取ESES段寄存器(即访问附加数据段)段寄存器(即访问附加数据段)2.段寄存器组 上述各种操作的段寄存器上述各种操作的段寄存器选取规则选取规则称为称为基本段约定基本段约定,采用基本段约定的最大好处是,在指令中就不必给出采用基本段约定的最大好处是,在指令中就不必给出段寄存器名,可以段寄存器名,可以缩短缩短指令代码的长度,指令代码的长度,简化简化指令的指令的书写形式。
20、书写形式。80868086允许在某条指令中允许在某条指令中突破突破基本段约定,称为基本段约定,称为段超越段超越。80868086的基本段的基本段约定和允许约定和允许的段超越如表的段超越如表2.22.2所示所示。表2.2 8086的基本段约定和允许的段超越 CPUCPU执行的操作执行的操作基本段约定基本段约定允许修改的段允许修改的段偏移地址偏移地址取指令取指令CS不允许修改不允许修改IP压栈、弹栈压栈、弹栈SS不允许修改不允许修改SP源串源串DSCS、ES、SSSI目的串目的串ES不允许修改不允许修改DI通用数据读写通用数据读写DSCS、ES、SS有效地址有效地址EABP作间址寄存器作间址寄存器
21、SSCS、DS、ES有效地址有效地址EA3.控制寄存器控制寄存器(1)指令指针指令指针IP IP(Instruction Pointer)指令指针与指令指针与PC类似,但类似,但有区别:有区别:a.PC是指向下一条即将要执行的指令,而是指向下一条即将要执行的指令,而IP一般一般是指向下一次要取出的指令。是指向下一次要取出的指令。b.在在8086中中IP要与要与CS代码段寄存器的内容一起,代码段寄存器的内容一起,才能得到指令的实际地址才能得到指令的实际地址。TFSFZFAFPFOFDFIFCF15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 标志寄存器格式如下:a.6个
22、状态标志位个状态标志位,即CF、PF、AF、ZF、SF、OF 进位标志进位标志CF(Carry Flag):(2)标志寄存器标志寄存器FR当结果的最高位(字节当结果的最高位(字节D7,字,字D15)产生)产生进位进位(加法运算)或(加法运算)或借位借位(减法运算)时,(减法运算)时,CF=1;否则,否则,CF=0,移位和循环指令也移位和循环指令也影响影响CF。奇偶标志位奇偶标志位PF(Parity Flag):若结果中的低低8位位含有“1”的个数为偶数,则PF=1;否则,PF=0。辅助进位标志辅助进位标志AF(Auxitiary Carry Flag):在低半字节低半字节向高半字节有进位或借位
23、时AF=1;否则,AF=0。零标志零标志ZF(Zero Flag):当运算结果为结果为0时ZF=1;否则,ZF=0。符号标志符号标志SF(Sign Flag):SF等于等于最高位最高位,对于带符号数,对于带符号数,SF=1运算结果为负,运算结果为负,SF=0为正。为正。溢出标志溢出标志OF(Overflow Flag):带符号数运算结果超出其表达范围时:OF=1;否则,OF=0。(OFCs CS+1)例:F345H+3219H=255EH 6400H+7A3CH=DE3CHCF=1 PF=0 AF=0 ZF=0 SF=0 OF=0CF=0 PF=1 AF=0 ZF=0 SF=1 OF=1 b.
24、3个控制标志位个控制标志位中断允许标志中断允许标志IF(Interrupt-enable Flag):IF=1,允许CPU响应外部的可屏蔽中断可屏蔽中断请求;IF=0则禁止响应。IF对外部非屏蔽中断非屏蔽中断及及内部中断内部中断不起作用。追踪标志追踪标志TF(Trace Flag):TF=1 处理器进入单步方式,以便调试程序调试程序,CPU 每执行一条指令自动产生自动产生一个内部中断以利 于检查指令的执行情况;TF=0 为连续工作方式。方向标志方向标志DF(Direction Flag):用在串操作指令串操作指令中:DF=0时,变址指针(SI及DI)自动增量;DF=1时,则变址指针(SI及DI
25、)自动减量。2.2 8086的的引脚信号及工作模式引脚信号及工作模式 最小模式:即由最小模式:即由8086组成的单处理器系统,所组成的单处理器系统,所有的总线控制信号由有的总线控制信号由8086直接产生,系统中的总线控直接产生,系统中的总线控制逻辑电路被减到最少。制逻辑电路被减到最少。最大模式:即由最大模式:即由8086组成的中等规模或者大型组成的中等规模或者大型的系统。包含两个或多个微处理器,的系统。包含两个或多个微处理器,8086为主处理器,为主处理器,其它的为其它的为协处理器协处理器。80868086的两种工作模式的两种工作模式双列直插式封装;双列直插式封装;有有40个引脚;个引脚;部分
26、引脚传送两种总部分引脚传送两种总 线信号,采用线信号,采用分时复用技分时复用技术术。2.2.1 8086的引脚的引脚 及其功能及其功能 12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN
27、(S0)ALE(QS0)INTA(QS1)TESTREADYRESET8086CPU注:括号内为该引脚在最大模式下的名称1.最小模式下引脚信号及功能:最小模式下引脚信号及功能:(1)地址地址/数据总线数据总线AD15AD0(双向、三态双向、三态)在一个在一个总线周期总线周期的第一个的第一个时钟周期时钟周期用于传送低用于传送低16bit地址信息地址信息,并用地址锁存器锁存以免丢失,并用地址锁存器锁存以免丢失,其它时钟周期可用于传送其它时钟周期可用于传送数据信息数据信息,分时传送。,分时传送。当当8086执行执行中断响应周期中断响应周期、保持响应周期保持响应周期等等总线总线周周期期时,这些引脚处于
28、时,这些引脚处于高阻高阻状态。状态。(2)地址地址/状态信号线状态信号线A19/S6A16/S3(输出、三态输出、三态)在总线周期的第一个时钟周期(在总线周期的第一个时钟周期(T1)用于输出地)用于输出地址信号的址信号的最高最高4位位并锁存。并锁存。其它时钟周期中用来输出其它时钟周期中用来输出状态信号状态信号S6S3,其中:,其中:S6低电平,表示低电平,表示8086当前与总线相连。当前与总线相连。S5表示标志寄存器中表示标志寄存器中“中断允许位中断允许位”的状态的状态(IF)。S4,S3的组合指出了的组合指出了分段分段情况。如下表所示。情况。如下表所示。S4和S3的组合提供的分段信息表S4S
29、3意意 义义00110101当前正在使用当前正在使用ES附加段附加段当前正在使用当前正在使用SS堆栈段堆栈段当前正在使用当前正在使用CS或者未使用任何段寄存器或者未使用任何段寄存器当前正在使用当前正在使用DS数据段数据段 当当CPU处于处于“保持响应保持响应”状态时,状态时,A19/S6A16/S3置为高阻状态。置为高阻状态。若执行若执行I/O指令,则由于指令,则由于8086只访问只访问64K个端口,个端口,在在T1周期这周期这4个引脚为低电平。个引脚为低电平。(3)BHE/S7 高高8位数据总线允许位数据总线允许/状态线状态线(输出输出,三态三态)在T1状态,8086在BHE/S7引脚输出B
30、HE信号,表示高8位数据总线D15D8上的数据有效,与地址线A0一起产生存储器的选择逻辑信号。在其它时钟周期,输出为状态信号S7,但8086芯片,S7未定义。下面介绍引脚中的控制信号。下面介绍引脚中的控制信号。(4)MN/MX 最小最小/最大模式控制信息最大模式控制信息低电平 8086处于最大模式。高电平 8086处于最小模式。(5)RD 读信号读信号(输出,三态输出,三态)低电平有效。表示将对内存或I/O端口读操作。(6)M/IO,存储器,存储器/输入输出控制信息输入输出控制信息 (输出,三态输出,三态)用于区分CPU进行的是存储器还是访问I/O端口RDM/IO操操 作作1000读存储器数据
31、读存储器数据读读I/O端口数据端口数据 RD RD与与 M/IOM/IO的组合及对应的操作表的组合及对应的操作表(7)WR 写信号写信号(输出,三态输出,三态)1000CPU对存储器进行写操作对存储器进行写操作CPU对对I/O端口进行写操作端口进行写操作 WR WR与与 M/IO M/IO 的组合及对应的操作表的组合及对应的操作表操操 作作WRM/IO低电平有效。WR与M/IO的组合对应的操作如下表所示。(8)ALE 地址锁存允许信号地址锁存允许信号(输出输出)高电平有效高电平有效,此信号在T1状态有效,为地址码锁存的选通选通信号,连接到地址锁存器的触发脉冲端。(9)READY 准备就绪信号准
32、备就绪信号(输入输入)高电平有效高电平有效,来自存储器存储器或I/O电路电路的响应信号,用于解决CPU与慢速存储器或I/O电路的同步问题同步问题。CPU在T3周期开始采样READY线,若为低电平,则T3之后插入TW等待周期等待周期直到READY为高电平,进入T4完成数据传送。(10)INTR 可屏蔽中断请求信号可屏蔽中断请求信号(输入输入)高电平有效高电平有效,8086在每一个指令周期的最后一个T状态采样这条线,若为有效,且IF=1,则8086在执行完当前指令即响应中断。(11)INTA 中断响应信号中断响应信号(输出,三态输出,三态)低电平有效低电平有效,CPU响应外部可屏蔽中断可屏蔽中断请
33、求以后,便发出中断响应信号,作为对中断请求的回答。此信号在每一个中断响应周期的T2、T3和TW周期均有效,为中断矢量中断矢量的读选通读选通信号。(12)NMI 非屏蔽中断请求信号非屏蔽中断请求信号(输入输入)边沿触发边沿触发,该线上的中断请求信号不能用软件屏蔽,输入电平由低到高时,便在当前指令结束后引起中断。(13)RESET 系统复位信号系统复位信号(输入输入)高电平有效高电平有效,8086要求此信号起码维持4个时钟周期;若初次加电复位,持续时间不小于50 s。RESET为高电平时,8086立即结束现行操作,进入内部复位状态,CPU各内部寄存器被设置为初初值值:CS=FFFFH;Flag、I
34、P、DS、ES、SS及其它寄存器均初始化为0000H。(14)DT/R 数据收发控制信号数据收发控制信号(输出、三态输出、三态)为增强数据总线的驱动能力,8086可外接驱动器8286,DT/R即为8086输出给数据收发器8286的控制信号。DT/R高电平高电平,8086输出的数据经8286送到数据总线 DT/R低电平低电平,8286则数据总线上的数据传送到8086。系统工作在DMA方式时,DT/R为高阻状态。8086(82862)OE(选用)数据总线AD15AD0DENDT/RD15D0T 高电平有效高电平有效。系统中其他的总线主设备要获得对总线的控制系统中其他的总线主设备要获得对总线的控制权
35、时,向权时,向8086发出高电平的发出高电平的HOLD信号,信号,8086在每个时钟周期的上升沿对HOLD引脚信号进行检测,若为高电平,则在当前总线周期结束时,予以响应。(16)HOLD 保持请求信号保持请求信号(输入输入)(15)DEN 数据允许信号数据允许信号(输出,三态输出,三态)低电平有效低电平有效,也是8086控制外接的数据收发器,低电平时开启收发器,传送数据有效;高电平时,则禁止传送。(17)HLDA 保持响应信号保持响应信号 (输出输出)高电平有效。当当CPU响应保持请求响应保持请求HOLD时,便发出时,便发出HLDA高高电平的应答信号,电平的应答信号,从而将总线控制权让给让给发
36、出保持请求的设备,直到该设备又将HOLD信号变为低电平,CPU才收回收回总线控制权,将HLDA信号置为低电平。低电平有效。与WAIT等待指令结合使用,当CPU执行WAIT指令时,CPU处于空转状态空转状态进行等待直到检测到TEST信号有效时结束,CPU继续往下执执行指令行指令。(18)TEST测试信号测试信号(输入输入)(19)CLK系统时钟输入信号系统时钟输入信号 时钟信号为时钟信号为CPU和总线控制逻辑电路提供定和总线控制逻辑电路提供定时基准时基准。常用INTEL8284A时钟发生器提供CLK信号。2.最大模式下引脚信号及功能最大模式下引脚信号及功能若将8086的MN/MX引脚接地,便工作
37、在最大模式。此时仅2431引脚信号与最小模式不同,如下表所示。引脚编号引脚编号最小模式最小模式最大模式最大模式2425262728293031QS1QS0S0S1S2LOCKRQ/GT1RQ/GT0INTAALEDENDT/RM/IOWRHLDAHOLD 两种模式下8086的2431引脚信号表(1)QS1和和QS0指令队列状态信号指令队列状态信号(输出输出)QSQS1 1和和QSQS0 0编码与队列状态表编码与队列状态表QS1QS0 队列状态队列状态00110101空操作空操作取走指令的第一个字节取走指令的第一个字节队列空队列空从队列里取出的字节是指令的后续字节从队列里取出的字节是指令的后续字
38、节两信号编码和对应的队列状态如下表所示。两信号编码和对应的队列状态如下表所示。这三个状态信号组成的编码表示了当前当前总线周期是何种操作何种操作周期,如下表所示。2,1和和 0编码与总线周期表编码与总线周期表SSS发中断响应信号发中断响应信号读读I/O端口端口写写I/O端口端口暂停暂停取指令取指令读存储器读存储器写存储器写存储器 无源状态无源状态010101010000111100110011S总线周期总线周期2S10S(2)S2,S1和和 S0总线周期状态信号总线周期状态信号(输出,三态输出,三态)(3)LOCK总线封锁信号总线封锁信号(输出,三态输出,三态)低电平有效低电平有效。此信号有效时
39、,系统中其他总线主部件不能占有总线。此信号由前缀前缀指令LOCK使其有效,并保持到LOCK前缀后的一条指令执行完毕。另外8086在两个中断响应周期之间,LOCK信号也自动变为有效电平,以防其它部件占有总线。(4)RQ/GT1和和RQ/GT0 总线请求总线请求/允许信号允许信号(双向双向)供CPU以外的两个处理器用以发出发出使用总线的请求信号和接收接收CPU对总线请求信号的回答信号,请求与允许信号在同一引脚上传输,但方向相反。其中RQ/GT0优先级较高优先级较高。2.2.2 最小工作模式及其系统结构 8086CPU的最小工作模式,指的是微型计算机系统中只有8086或8088一个微处理器;在这个系
40、统中,所有的总线控制信号直接由CPU提供;将8086CPU的MN/引脚接5V即可使8086工作在最小模式下。工作在最小模式下8086的典型配置如右图所示。8086地址锁存器STB(82862)OE(选用)数据总线地址总线(82823)READYRESETMN/MXALEBHEA19A16AD15AD0DENDT/RM/IOWRRDHOLDHLDAINTRINTA(8284A)X1 X2CLKREADYRESET+5VBHEA19A0D15D0T 8284A与振荡源之间有两种两种连接方式 当采用脉冲发生器作为振荡源时,其输出端应与8284A 的EFI端相连,F/接高电平;当采用晶体振荡器作为振荡
41、源时,应连在8284A 的X1和X2两引脚之间,F/接电源地 无论采用哪种方法,8284A输出的时钟频率均为振荡源频率的三分之一三分之一。CC.图2.9 8284A与CPU的连接2.2.3 最大模式和系统组成 8086CPU的最大模式,是微机系统中包含有两个或多个微处理器,其中8086是主处理器,其余的是协助协助主处理器工作的协处理器,如数值运算协处理器(8087)和I/O协处理器(8089)等。图2.11是8086系统在最大模式下的典型配置典型配置结构框图 图2.11 8086在最大模式下的典型配置由图可以看出:由图可以看出:8086在最大与最小模式下的主要在最大与最小模式下的主要区别是增加
42、了一个区别是增加了一个8288总线总线控制器控制器。8288接受接受8086的状的状态信号态信号S2、S1和和S0经过变换和组合,由经过变换和组合,由8288发出对存储器和发出对存储器和I/O端端口的口的读读/写信号写信号、对、对锁存器锁存器8282及对及对总线收发器总线收发器8286的的控制信号。控制信号。图2.12 8288的连接8086CPU时钟发生器(8284A)8288CLKDENALEMN/MXSTBOEOETIORCIOWC数据总线MRDCMWTCBHE8282382862CLKREADYRESETBHES0S1S2S0S1S2DT/RA19A0D15D0INTAA19A16AD
43、15AD0 1READYRESET总线控制器地址总线注:注:最大模式下被替换替换的引脚信号:INTA、ALE、DEN、DT/R、M/IO、WR、HLDA、HOLD8086系统中的堆栈系统中的堆栈按“后进先出后进先出”原则,用作数据暂时存储的一组寄存器寄存器或存储单元存储单元称为堆栈。堆栈操作有两种:压入(压入(PUSH)和弹出()和弹出(POP),压入和弹出过程中压入和弹出过程中SP始终指向堆栈栈顶的新位置。1.堆栈的定义堆栈的定义堆栈中数据按“后进先出后进先出”的结构方式进行处理,即新入栈的依次堆放在原来数据之上,存放信息的最后一个单元叫做栈顶栈顶,用堆栈指针SP(Stack Pointer
44、)指示。2.2.构成堆栈的两种形式构成堆栈的两种形式 一一种是使用种是使用CPU内部的内部的一组寄存器一组寄存器作为堆栈。作为堆栈。优点优点:访问速度快。:访问速度快。缺点:缺点:寄存器数量有限。寄存器数量有限。另一种形式是在另一种形式是在随机存储器随机存储器RAM中开辟一个区中开辟一个区间供堆栈使用;间供堆栈使用;3.堆栈编址结构的两种形式堆栈编址结构的两种形式(1)向上生成向上生成每压入压入一个数据,堆栈指示器SP按增量增量修改;每弹出弹出一个数据,SP按减量减量修改。(2)向下生成向下生成每压入压入一个数据,SP按减量减量修改;每弹出弹出一个数据,SP按增量增量修改。堆栈操作示意图(向下
45、生成)M-3M-2M-1MXSP(a)M-3M-2M-1MXSP(b)AM-3M-2M-1MXSP(c)ABSPASPBSPC当前栈顶地址为当前栈顶地址为M,存内容存内容X信息信息B进栈:进栈:SP-1 SP,B SP指定的地址指定的地址信息信息A进栈分两步操作进栈分两步操作:SP-1 SP,A SP指定的地址单元指定的地址单元 堆栈操作示意图(向下生成)MM-3M-2M-1XSP(d)ABCM-3M-2M-1MXSP(f)ABCM-3M-2M-1MXSP(e)ACBSPDSPCSPB信息信息C进栈进栈信息信息C出栈分两步操作:出栈分两步操作:C指定的目的地指定的目的地,SP+1 SP信息信息
46、B出栈:出栈:B指定目的地指定目的地,SP+1 SP 堆栈操作示意图(向下生成)MM-3M-2M-1XSP(g)ADCM-3M-2M-1MXSP(i)ADCM-3M-2M-1MXSP(h)ACDSPDSPA信息信息D进栈:进栈:SP-1 SP,D SP指定的地址指定的地址信息信息D出栈出栈信息信息A出栈,栈顶地址仍出栈,栈顶地址仍为为M 由上图中可以看出,出栈操作并不会从由上图中可以看出,出栈操作并不会从堆栈中去掉信息,也不擦除它们,只是因堆栈中去掉信息,也不擦除它们,只是因SP的自动修改而改变了堆栈的栈顶。的自动修改而改变了堆栈的栈顶。堆栈主要用于中断控制,子程序调用以堆栈主要用于中断控制,
47、子程序调用以及数据暂时存储。及数据暂时存储。1.时钟周期时钟周期(T(T状态周期状态周期 Clock Cycle)Clock Cycle)2.3 8086总线周期与时序总线周期与时序是时钟频率是时钟频率(主频主频)的的倒数倒数(周期性周期性脉冲信号脉冲信号););是计算机系统中的时间是计算机系统中的时间基准基准和时序分析的基本单和时序分析的基本单 位,也是位,也是CPUCPU的一个的一个重要性能指标重要性能指标。若:若:80868086的主频为的主频为5MHz5MHz,时钟周期则为,时钟周期则为200ns200ns若:若:8086-18086-1的主频为的主频为10MHz10MHz,时钟周期则
48、为,时钟周期则为100ns100ns2.3.1 时钟周期、总线周期和指令周期2.机器周期(亦称为总线周期机器周期(亦称为总线周期 Bus Cycle)微机处理器BIU与外部电路之间进行一次一次数据传送操作所占用的时间,包含若干若干个时钟周期T。T1T2T3T4TIT1T2T3T4总线周期总线周期地址数据地址ADCLK数据3.指令周期指令周期(Instruction Cycle)执行执行一条指令一条指令所需要的时间,所需要的时间,由一至由一至若干个若干个机器周期组成。机器周期组成。2.3.2 总线操作与时序总线操作与时序 总线操作是CPU与外部进行信息交换信息交换的过程。8086CPU的总线操作
49、主要包括:总线读总线读/写写、总线保持或总线请求总线保持或总线请求/允许允许、中断响应中断响应、暂停暂停、系统复位和启动系统复位和启动 等操作。操作时序时序则是指CPU在操作过程中各种有效信号有效信号在总线上出现的先后次序先后次序。Intel 8086微处理器采用总线微处理器采用总线分时复用分时复用操作方式操作方式8086的的16位数据总线与地址总线的位数据总线与地址总线的低低16位共用位共用,典型的总线周期如下图:典型的总线周期如下图:T1T2T3T4TIT1T2T3T4总线周期总线周期地址数据地址ADCLK数据2.3.3 基本的总线周期基本的总线周期 在没有插入等待等待时钟周期TW的情况下
50、,总线周期由4个时钟周期组成,即图中T1、T2、T3、T4 在T1期间CPU把存储器或外设的地址放到总线上,这些地址信息由ALE控制锁存到锁存到地址锁存器中,以便使总线上可以传送数据信息。T2期间分时复用的地址/数据总线处于高阻态高阻态,以便为读入或写出数据作准备。在T3和T4期间,读或写的数据出现在总线上,以使完成读或写读或写的操作。等待周期等待周期TW:T1T2T3TW一个总线周期数据输入地址输出T4READY地址总线READY信号的定时波形信号的定时波形如果在如果在T3周期结束之前,存储器或外设未准备好数据周期结束之前,存储器或外设未准备好数据传送,就要启动输入传送,就要启动输入CPU的