《微处理器的编程结构》由会员分享,可在线阅读,更多相关《微处理器的编程结构(68页珍藏版)》请在金锄头文库上搜索。
1、 第3 3章8086/8088微处理器3.18086微处理器的结构 功能结构、编程结构、引脚信号功能结构、编程结构、引脚信号3.28086存储器组织和管理重点掌握处理器的编程结构及存储器组织和管理重点掌握处理器的编程结构及存储器组织和管理80868086微处理器是微处理器是IntelIntel系列的系列的1616位位微处理器,内部包含约微处理器,内部包含约2900029000个半个半导体管。导体管。16根数据线,可以同时处理可以同时处理1616位二进制数据位二进制数据20根地址线,可用可用2020位二进制数码编写地址,存储器以字节(位二进制数码编写地址,存储器以字节(8 8位二位二进制数据)为
2、单位组织存储,可寻址的地址空间可达进制数据)为单位组织存储,可寻址的地址空间可达2 22020,即,即1M1M字节字节时钟频率为5MHz,工作时,只要一个,工作时,只要一个5V5V电源,电源,除了数据总线宽度不同外,除了数据总线宽度不同外,80888088与与80868086在其他方面几乎完全相同。在其他方面几乎完全相同。它们的另一个突出特点是其多重处理的能力,能极方便的和数值数它们的另一个突出特点是其多重处理的能力,能极方便的和数值数据处理器(据处理器(NPXNPX)80878087,输入输出,输入输出I/OI/O处理器(处理器(IOPIOP)80898089或其他处理或其他处理器组成多处理
3、器系统,大幅度提高系统数据吞吐能力和数据处理能器组成多处理器系统,大幅度提高系统数据吞吐能力和数据处理能力。力。8086/8088微处理器简介微处理器简介3.1.1 8086/8088的功能结构的功能结构一、总线接口部件一、总线接口部件 BIU 功能:负责微处理器与存储器、负责微处理器与存储器、I/O接口传送数据。包括接口传送数据。包括取指令、传送数据和形成取指令、传送数据和形成20位的物理地址。位的物理地址。 CPU执行指令时,总线接口部件要配合执行部件从指执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据或指令,将数据先定的内存单元或者外设端口中取数据或指令,将数据
4、先放入放入“指令队列指令队列”排队,当需要时,再由执行部件排队,当需要时,再由执行部件EU从从中取出;或者把执行部件中取出;或者把执行部件EU的操作结果传送到指定的内的操作结果传送到指定的内存单元或外设端口中。存单元或外设端口中。 (1)4个16位的段地址寄存器:CS16CS16位的代码段寄存器:用来存放当前程序所在段的段基;位的代码段寄存器:用来存放当前程序所在段的段基; DS16DS16位的数据段寄存器:用来存放当前程序所用数据段的段基址;位的数据段寄存器:用来存放当前程序所用数据段的段基址; ES16ES16位的扩展段寄存器:用来存放辅助数据所在段的段基址;位的扩展段寄存器:用来存放辅助
5、数据所在段的段基址; SS16SS16位的堆栈段寄存器:用来存放当前程序所用堆栈段的段基位的堆栈段寄存器:用来存放当前程序所用堆栈段的段基(2)16位的指令指针寄存器IP:用来存放下一条指令的偏移地址,用来存放下一条指令的偏移地址,IPIP在在当前程序运行中能够进行自动加当前程序运行中能够进行自动加1 1的修正,使其指向下一条指令;的修正,使其指向下一条指令; (3)20位的地址加法器:用来形成用来形成2020位的物理地址;位的物理地址; (4)6字节的指令队列缓冲器。(5)总线控制部件,用来产生并发出总线控制信号,实现对存储器、用来产生并发出总线控制信号,实现对存储器、I/OI/O端口的读写
6、控制,并将内部总线与外部总线相连接。端口的读写控制,并将内部总线与外部总线相连接。总线接口部件的组成部分:总线接口部件的组成部分:二、执行部件二、执行部件EUALUALU算术逻辑运算单元算术逻辑运算单元 PSWPSW标志寄存器标志寄存器 存放运算结果特征存放运算结果特征 寄存器组寄存器组 存放中间结果存放中间结果 EU EU控制器控制器 取指令控制、时序控制取指令控制、时序控制指令译码指令译码 、执行指令、执行指令 向向BIUBIU提供逻辑地址的偏移量提供逻辑地址的偏移量 管理通用寄存器和标志寄存器管理通用寄存器和标志寄存器功能:功能:组成:组成:(1)算术逻辑单元ALU:进行算术、逻辑运算,
7、以及按照寻址方式计算寻址进行算术、逻辑运算,以及按照寻址方式计算寻址单元的偏移量。单元的偏移量。(2)暂存器:协助协助ALUALU完成运算,暂时存放参加运算的数据。完成运算,暂时存放参加运算的数据。(3)16位的标志寄存器FR:存放控制标志和反映存放控制标志和反映CPUCPU运行的状态特征。运行的状态特征。(4)通用寄存器组:包括包括4 4个通用寄存器,即个通用寄存器,即AXAX(也称累加器)、(也称累加器)、BXBX、CXCX、DXDX;以及;以及4 4个专用寄存器:个专用寄存器: 基数指针寄存器基数指针寄存器BPBP:存放数据段中某一单元的偏移地址;也可存放数据段中某一单元的偏移地址;也可
8、指示堆栈段中某一单元的偏移地址;堆栈指针寄存器指示堆栈段中某一单元的偏移地址;堆栈指针寄存器SPSP:存:存放堆栈栈顶偏移地址;放堆栈栈顶偏移地址; 源变址寄存器源变址寄存器SISI: 与数据段寄存器与数据段寄存器DSDS连用,确定数据段中某连用,确定数据段中某一存储单元的地址;一存储单元的地址;目的变址寄存器目的变址寄存器DIDI:与数据段寄存器与数据段寄存器DSDS连用,确定数据段中某连用,确定数据段中某一存储单元的地址;一存储单元的地址; (5)EU控制电路:由定时电路、控制电路和状态逻辑电路组合而成。由定时电路、控制电路和状态逻辑电路组合而成。3“流水线”结构的指令队列 总线接口部件总
9、线接口部件BIUBIU和执行部件和执行部件EUEU并不是同步工作的,并不是同步工作的, 每当每当EUEU从指令队列头部取出一条指令并在分析、执行指令这段时间从指令队列头部取出一条指令并在分析、执行指令这段时间内,或当指令队列中有内,或当指令队列中有2 2个空字节时,个空字节时,BIUBIU会自动把指令取到会自动把指令取到指令队列中。当指令队列已满(指令队列中。当指令队列已满(6 6个字节),而且个字节),而且EUEU对对BIUBIU又又无总线访问请求时,无总线访问请求时,BIUBIU便进入空闲状态;但便进入空闲状态;但EUEU在分析、执行在分析、执行指令过程中,如须访问内存或指令过程中,如须访
10、问内存或I/OI/O设备,设备,EUEU就会向就会向BIUBIU申请总申请总线周期,若线周期,若BIUBIU总线空闲,就会立即响应;若总线空闲,就会立即响应;若BIUBIU此时正在取此时正在取一条指令,一条指令,EUEU就必须等待就必须等待BIUBIU取指令的操作完成以后,才会得取指令的操作完成以后,才会得到到BIUBIU响应。响应。在在8086/80888086/8088中,中,EUEU和和BIUBIU这种并行的工作方式有力地提高了这种并行的工作方式有力地提高了工作效率。工作效率。3.1.2 8086/8088的编程结构的编程结构CSDSESSSFSGSIPFLAGS EIPEFLAGSSP
11、BPSIDIAH ALBH BLDH DLAH ALCH CLAXBXCXDX01531EAXEBXECXEDXESPEBPESIEDI1通用寄存器通用数据寄存器 用来存放用来存放8 8位、位、1616位或位或3232位的操作数。由于具有良好位的操作数。由于具有良好的通用性,因而被称为通用寄存器,其中包括的通用性,因而被称为通用寄存器,其中包括AXAX,BXBX,CXCX,DXDX。通用寄存器主要用来保存算术或逻辑运算的操作数、中。通用寄存器主要用来保存算术或逻辑运算的操作数、中间运算结果。它们既可以作为一个间运算结果。它们既可以作为一个1616位的寄存器使用,也可位的寄存器使用,也可以分别作
12、为两个以分别作为两个8 8位的寄存器使用,高位字节的寄存器为位的寄存器使用,高位字节的寄存器为AHAH,BHBH,CHCH,DHDH;低位字节的寄存器为;低位字节的寄存器为ALAL,BLBL,CLCL,DLDL。指针寄存器和变址寄存器 堆栈指针寄存器堆栈指针寄存器ESPESP、 基址指针寄存器基址指针寄存器EBPEBP 源变址寄存器源变址寄存器ESIESI、 目的变址寄存器目的变址寄存器EDIEDI2.2.指令指针寄存器指令指针寄存器 EIP3.3.标志寄存器标志寄存器EFLAGS4.4.段寄存器段寄存器寄存器寄存器 执行操作执行操作 AX累加器,累加器,I/O指令中用作数据寄存器整字乘法,整
13、字除法,整字指令中用作数据寄存器整字乘法,整字除法,整字I/O,存放被乘数,乘积,被除数,商,存放被乘数,乘积,被除数,商 ALI/O指令中用作数据寄存器字节乘法,字节除法,字节指令中用作数据寄存器字节乘法,字节除法,字节I/O。存放。存放被乘数,乘积,被除数,商查表,十进制算术运算中用作累加器;被乘数,乘积,被除数,商查表,十进制算术运算中用作累加器;在在XLAT(换码)指令中用作累加器(换码)指令中用作累加器 AH字节乘法,字节除法在字节乘法,字节除法在LAHF(标志寄存器传送)指令中用作目(标志寄存器传送)指令中用作目标寄存器标寄存器 BX用作间接寻址的地址寄存器和基地址寄存器;查表;在
14、用作间接寻址的地址寄存器和基地址寄存器;查表;在XLAT(换码)指令中用作基地址寄存器(换码)指令中用作基地址寄存器 寄存器的特殊用途和隐含用法寄存器的特殊用途和隐含用法CX计数寄存器,在计数寄存器,在LOOP(循环循环)和串操作中充当计数器字符串操作,循和串操作中充当计数器字符串操作,循环环 CL在变量的移位和循环移位指令中用作移位次数计数器在变量的移位和循环移位指令中用作移位次数计数器 DX在乘法、除法指令中作为辅助累加器;在乘法、除法指令中作为辅助累加器;在乘法、除法指令中存放乘积高位、被除数高位或余数在乘法、除法指令中存放乘积高位、被除数高位或余数在间接寻址的在间接寻址的I/O指令中作
15、为地址寄存器;指令中作为地址寄存器; SP堆栈操作中用作堆栈指针堆栈操作中用作堆栈指针 BP在间接寻址中用作基址寄存器;在间接寻址中用作基址寄存器; SI在字符串操作中用作变址寄存器;在间接寻址中用作变址寄存器;在字符串操作中用作变址寄存器;在间接寻址中用作变址寄存器; DI字符串操作字符串操作 寄存器的特殊用途和隐含用法寄存器的特殊用途和隐含用法 标志寄存器共有标志寄存器共有1616位,其中有位,其中有7 7位未用,已用的位未用,已用的9 9个标志位按个标志位按功能可分为功能可分为6 6个条件标志和个条件标志和3 3个控制标志。个控制标志。(1)条件标志(条件标志用于存放程序运行的状态信息,
16、由硬件自动设定。控(条件标志用于存放程序运行的状态信息,由硬件自动设定。控 制标志由软件设定,用于中断、串操作等控制):制标志由软件设定,用于中断、串操作等控制): OF:溢出标志。反映带符号数运算结果是否超过机器所能表示的。反映带符号数运算结果是否超过机器所能表示的数值范围,对字节运算为数值范围,对字节运算为-128+127,对字运算为,对字运算为-32768+32767。若超过上述范围称为若超过上述范围称为“溢出溢出”,OF置置1。否则,置。否则,置0。实际机器。实际机器在进行处理时,是判断最高位的进位(在进行处理时,是判断最高位的进位(CF)与次高位的进位是)与次高位的进位是否相同,若二
17、者相同,则否相同,若二者相同,则OF。否则,。否则,OF。OFDFIFTFSFZFAFPFCF标志寄存器(标志寄存器(Flag RegisterFlag Register)图2-2 标志寄存器志寄存器结构构图SF:符号标志反映运算结果的符号。若结果为负数,即最高反映运算结果的符号。若结果为负数,即最高位为位为1时,时,SF置置1,否则,置,否则,置0。SF取值与运算结果最高位一致。取值与运算结果最高位一致。ZF:零标志反映运算结果是否为零。若结果为零,反映运算结果是否为零。若结果为零,ZF置置1,否,否则,置则,置0。AF:半进位标志。反映一个反映一个8位量的低位量的低4位向高位向高4位有无进
18、位或借位。位有无进位或借位。有则置有则置1,否则,置,否则,置0。用于。用于BCD码算术运算指令。码算术运算指令。PF:奇偶标志。:奇偶标志。反映操作结果的低反映操作结果的低8位中位中“1”的个数的奇偶性。若的个数的奇偶性。若“1”的个数为的个数为偶数,偶数,PF置置1,否则,置,否则,置0。CF:进位标志反映算术运算后最高位出现进位或借位的情况。有反映算术运算后最高位出现进位或借位的情况。有则置则置1,否则,置,否则,置0。移位和循环指令也会改变。移位和循环指令也会改变CF的值。的值。标志寄存器(标志寄存器(Flag Register)(2)控制标志DFDF:方向标志:方向标志 进行字符串操
19、作时,每执行一条串操作指令,对地进行字符串操作时,每执行一条串操作指令,对地址会进行一次自动调整,由址会进行一次自动调整,由DF决定地址是增还是减。若决定地址是增还是减。若DF为为1,则为,则为减,否则为增。减,否则为增。IFIF:中断标志:中断标志 表示系统是否允许表示系统是否允许“外部可屏蔽中断外部可屏蔽中断”(其含义见(其含义见后述后述“中断中断”内容)。若内容)。若IF为为1,表示允许,否则表示不允许。,表示允许,否则表示不允许。IF对非对非屏蔽中断和内部中断请求不起作用。该标志可由中断控制指令设置或屏蔽中断和内部中断请求不起作用。该标志可由中断控制指令设置或清除。清除。TFTF:陷阱
20、标志:陷阱标志。TF为为1时,时,CPU每执行完一条指令,便自动产生一每执行完一条指令,便自动产生一个内部中断,可以利用它对程序进行逐条检查。程序调试过程中的个内部中断,可以利用它对程序进行逐条检查。程序调试过程中的“单步执行单步执行”就是利用这个标志。就是利用这个标志。标志寄存器(标志寄存器(Flag Register)3.1.3 8086/8088的引脚信号的引脚信号12345678910111213141516171819204039383736353433323130292827262524232221 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7
21、AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GNDVCC(5V)AD15A16 / S3A17 / S4A18 / S5A19 / S6BHE*/S7MN / MX*RD*HOLD (RQ*/ GT0*)HLDA (RQ* /GT1*)WR* (LOCK*) M/IO * ( S2* )DT / R* ( S1* )DEN* ( S0 )ALE ( QS0 )INTA* ( QS1 )TEST*READYRESET8086一、一、 8086/8088的两种工作模式的两种工作模式(1)最小工作模式系统中只有系统中只有8086/80888086/8088一个微
22、处理器。一个微处理器。所有的总线控制信号都直接由所有的总线控制信号都直接由8086/80888086/8088产生。产生。(2)最大工作模式构成较大规模的应用系统,系统中包含两个或多个微处构成较大规模的应用系统,系统中包含两个或多个微处理器,其中理器,其中8086/80888086/8088是主处理器,其他的处理器称为是主处理器,其他的处理器称为协处理器。和协处理器。和8086/80888086/8088配合使用的协处理器主要有两配合使用的协处理器主要有两个:数值运算协处理器个:数值运算协处理器80878087和输入和输入/ /输出协处理器输出协处理器80898089。8086/8088808
23、6/8088和总线控制器和总线控制器82888288等共同形成总线控制信号。等共同形成总线控制信号。两种模式利用两种模式利用MN/MX*引脚区别引脚区别MN/MX接高电平为最小工作模式接高电平为最小工作模式MN/MX接低电平为最大工作模式接低电平为最大工作模式两种模式下的内部操作并没有区别两种模式下的内部操作并没有区别IBM PC/XT采用最大模式采用最大模式本节以最小模式展开基本原理本节以最小模式展开基本原理8086/8088的两种工作模式的两种工作模式1. 数据和地址引脚数据和地址引脚AD7AD0(Address/Data) 地址地址/ /数据数据分时复用分时复用引脚,双向、三态引脚,双向
24、、三态 在访问存储器或外设的总线操作周期中,这些引脚在在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或第一个时钟周期输出存储器或I/OI/O端口的低端口的低8 8位地址位地址A A7 7A A0 0 其他时间用于传送其他时间用于传送8 8位数据位数据D D7 7D D0 0 AD15AD8(Address) 中间中间8 8位位地址引脚地址引脚,输出、三态,输出、三态 这些引脚在访问存储器或外设时,提供全部这些引脚在访问存储器或外设时,提供全部2020位地址位地址中的中间中的中间8 8位地址位地址A A1515A A8 8二、引脚功能二、引脚功能1. 数据和地址引脚数据和
25、地址引脚(续(续2)A19/S6A16/S3(Address/Status)地址地址/ /状态状态分时复用引脚,输出、三态分时复用引脚,输出、三态这些引脚在访问存储器的第一个时钟周期输出这些引脚在访问存储器的第一个时钟周期输出高高4 4位地址位地址A A1919A A1616在访问外设的第一个时钟周期全部输出低电平在访问外设的第一个时钟周期全部输出低电平无效无效其他时间输出状态信号其他时间输出状态信号S S6 6S S3 32. 读写控制引脚读写控制引脚ALE(Address Latch Enable)地址锁存允许地址锁存允许,输出、三态、高电平有效,输出、三态、高电平有效ALE引脚高有效时,
26、表示复用引脚:引脚高有效时,表示复用引脚:AD7AD0和和A19/S6A16/S3正在传送地址信息正在传送地址信息由于地址信息在这些复用引脚上出现的时间很由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用短暂,所以系统可以利用ALE引脚将地址锁存引脚将地址锁存起来起来2. 读写控制引脚读写控制引脚(续(续1)M/IO*(Input and Output/Memory) I/OI/O或存储器访问或存储器访问,输出、三态,输出、三态该引脚输出低电平时,表示该引脚输出低电平时,表示CPUCPU将访问将访问I/OI/O端口,端口,这时地址总线这时地址总线A A1515A A0 0提供提供1
27、616位位I/OI/O口地址口地址该引脚输出高电平时,表示该引脚输出高电平时,表示CPUCPU将访问存储器,将访问存储器,这时地址总线这时地址总线A A1919A A0 0提供提供2020位存储器地址位存储器地址 2. 读写控制引脚读写控制引脚(续(续2)WR*(Write) l写控制写控制,输出、三态、低电平有效,输出、三态、低电平有效l有效时,表示有效时,表示CPU正在写出数据给存储器或正在写出数据给存储器或I/O端口端口RD*(Read)l读控制读控制,输出、三态、低电平有效,输出、三态、低电平有效l有效时,表示有效时,表示CPU正在从存储器或正在从存储器或I/O端口读入端口读入数据数据
28、 2. 读写控制引脚读写控制引脚(续(续3)lM/IO*、WR*和和RD*是最基本的控制信号是最基本的控制信号l组合组合后,控制后,控制4种基本的总线周期种基本的总线周期总线周期总线周期M/IO*WR*RD*存储器读存储器读高高高高低低存储器写存储器写高高低低高高I/O读读低低高高低低I/O写写低低低低高高2. 读写控制引脚读写控制引脚(续(续4)READY l存储器或存储器或I/O口就绪口就绪,输入、高电平有效,输入、高电平有效l在总线操作周期中,在总线操作周期中,8088 CPU会在第会在第3个时钟周期的前个时钟周期的前沿测试该引脚沿测试该引脚u如果测到高有效,如果测到高有效,CPU直接进
29、入第直接进入第4个时钟周期个时钟周期u如果测到无效,如果测到无效,CPU将插入等待周期将插入等待周期TwlCPU在等待周期中仍然要监测在等待周期中仍然要监测READY信号,有效则进信号,有效则进入第入第4个时钟周期,否则继续插入等待周期个时钟周期,否则继续插入等待周期Tw。 2. 读写控制引脚读写控制引脚(续(续5)DEN*(Data Enable) l数据允许数据允许,输出、三态、低电平有效,输出、三态、低电平有效l有效时,表示当前数据总线上正在传送数据,可利用他有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动来控制对数据总线的驱动 DT/R*(Data Transmi
30、t/Receive)l数据发送数据发送/接收接收,输出、三态,输出、三态l该信号表明当前总线上数据的流向该信号表明当前总线上数据的流向l高电平时数据自高电平时数据自CPU输出(发送)输出(发送)l低电平时数据输入低电平时数据输入CPU(接收)(接收) 2. 读写控制引脚读写控制引脚(续(续6)SS0*(System Status 0) l最小模式模式下的最小模式模式下的状态输出状态输出信号信号l它与它与IO/M*和和DT/R*一道,通过编码指示一道,通过编码指示CPU在在最小模式下的最小模式下的8种工作状态:种工作状态:1. 取指取指5. 中断响应中断响应2. 存储器读存储器读6. I/O读读
31、3. 存储器写存储器写7. I/O写写4. 过渡状态过渡状态8. 暂停暂停2. 读写控制引脚读写控制引脚(续(续6)BHE*/S7(Bus Higher Enable) l最小模式模式下的最小模式模式下的高高8位数据总线位数据总线(AD15AD8)有效信号,三态,输出)有效信号,三态,输出lBHE*在总线周期的在总线周期的T1状态输出,状态输出,S7是状态信号,是状态信号,在在T2T4时输出时输出l在在8088中,此信号被中,此信号被SS0所替代。所替代。3. 中断请求和响应引脚中断请求和响应引脚INTR(InterruptRequest) 可屏蔽中断请求可屏蔽中断请求,输入、高电平有效,输入
32、、高电平有效有效时,表示请求设备向有效时,表示请求设备向CPUCPU申请可屏蔽中断申请可屏蔽中断该请求的优先级别较低,并可通过关中断指令该请求的优先级别较低,并可通过关中断指令CLICLI清除标清除标志寄存器中的志寄存器中的IFIF标志、从而对中断请求进行屏蔽标志、从而对中断请求进行屏蔽INTA(InterruptAcknowledge)可屏蔽中断响应可屏蔽中断响应,输出、低电平有效,输出、低电平有效有效时,表示来自有效时,表示来自INTRINTR引脚的中断请求已被引脚的中断请求已被CPUCPU响应,响应,CPUCPU进入中断响应周期进入中断响应周期中断响应周期是连续的两个,每个都发出有效响应
33、信号,中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线将中断向量号送到数据总线 3. 中断请求和响应引脚中断请求和响应引脚(续(续2)NMI(Non-Maskable Interrupt) 不可屏蔽中断请求不可屏蔽中断请求,输入、上升沿有效,输入、上升沿有效有效时,表示外界向有效时,表示外界向CPU申请不可屏蔽中断申请不可屏蔽中断该请求的优先级别高于该请求的优先级别高于INTR,并且不能在,并且不能在CPU内被屏蔽内被屏蔽当系统发生紧急情况时,可通过他向当系统发生紧急情况时
34、,可通过他向CPU申请不可屏蔽中申请不可屏蔽中断服务断服务4. 总线请求和响应引脚总线请求和响应引脚HOLD总线保持总线保持(即总线请求),输入、高电平有效(即总线请求),输入、高电平有效有效时,表示总线请求设备向有效时,表示总线请求设备向CPUCPU申请占有总线申请占有总线该信号从有效回到无效时,表示总线请求设备对总线的使该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知用已经结束,通知CPUCPU收回对总线的控制权收回对总线的控制权 HLDA(HOLD Acknowledge)总线保持响应总线保持响应(即总线响应),输出、高电平有效(即总线响应),输出、高电平有效有效时,表
35、示有效时,表示CPUCPU已响应总线请求并已将总线释放已响应总线请求并已将总线释放此时此时CPUCPU的的地址总线地址总线、数据总线数据总线及及具有三态输出能力的控制具有三态输出能力的控制总线总线将全面呈现高阻,使总线请求设备可以顺利接管总线将全面呈现高阻,使总线请求设备可以顺利接管总线待到总线请求信号待到总线请求信号HOLDHOLD无效,总线响应信号无效,总线响应信号HLDAHLDA也转为无也转为无效,效,CPUCPU重新获得总线控制权重新获得总线控制权 5. 其它引脚其它引脚RESET复位请求复位请求,输入、高电平有效,输入、高电平有效该信号有效,将使该信号有效,将使CPUCPU回到其初始
36、状态;当他再度返回无回到其初始状态;当他再度返回无效时,效时,CPUCPU将重新开始工作将重新开始工作80868086复位后复位后CSCSFFFFHFFFFH、IPIP0000H0000H,所以程序入口在物,所以程序入口在物理地址理地址FFFF0HFFFF0HCLK(Clock) 时钟输入时钟输入系统通过该引脚给系统通过该引脚给CPUCPU提供内部定时信号。提供内部定时信号。80868086的标准工的标准工作时钟为作时钟为5MHz5MHzIBM PC/XTIBM PC/XT机的机的80888088采用了采用了的时钟,其周期约为的时钟,其周期约为210ns210ns5. 其它引脚其它引脚(续(续
37、2)Vcc电源输入电源输入,向,向CPU提供提供5V电源电源GND接地接地,向,向CPU提供参考地电平提供参考地电平MN/MX*(Minimum/Maximum)模式选择模式选择,输入,输入接高电平时,接高电平时,80888088引脚工作在最小模式;反之,引脚工作在最小模式;反之,80888088工作在最大模式工作在最大模式 “引脚引脚”小结小结CPU引脚是系统总线的基本信号引脚是系统总线的基本信号可以分成三类信号:可以分成三类信号:16位数据线:位数据线:D0D1520位地址线:位地址线:A0A19控制线:控制线:ALE、IO/M*、WR*、RD*、READYINTR、INTA*、NMI,H
38、OLD、HLDARESET、CLK、Vcc、GND最小模式总线形成最小模式总线形成(Intel产品手册推荐电路产品手册推荐电路)RESET TEST HOLD HLDA NMI INTR INTA M / IO WR RDREADY CLK READYMN / MX+5V控制总线控制总线地址总线地址总线A19 A0数据总线数据总线D15D0 ALE DT / R DEN8086CPUSTB 8282OETOE82868284A系统总线系统总线 A19A16 AD15AD0BHE* BHE* READY信号经信号经过过8284A后,后,起到同步的作用起到同步的作用三三 、8088的总线时序的总线
39、时序(续(续1)1、总线周期的概念时钟周期是微处理器的最小定时单位,由是微处理器的最小定时单位,由CPU主频决定;主频决定;完成一个独立的操作所需的时间称为完成一个独立的操作所需的时间称为机器周期,一个机器周期包含若,一个机器周期包含若干个时钟周期;干个时钟周期;总线周期是指完成一次总线操作所需要的读或写的机器周是指完成一次总线操作所需要的读或写的机器周期,通常用时钟周期的个数来表示,总线操作是指期,通常用时钟周期的个数来表示,总线操作是指CPU通通过总线对外的各种操作主要有:过总线对外的各种操作主要有:u存储器读、存储器读、I/O读操作读操作u存储器写、存储器写、I/O写操作写操作u中断响应
40、操作中断响应操作u总线请求及响应操作总线请求及响应操作uCPU正在进行内部操作、并不进行实际对外操作的空闲状态正在进行内部操作、并不进行实际对外操作的空闲状态Ti指令周期是指一条指令经取指、译码、读写操作数到执是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期行完成的过程。若干总线周期组成一个指令周期描述总线操作的微处理器时序有三级:描述总线操作的微处理器时序有三级:指令周期总线周期时钟周期8086的基本总线周期包含的基本总线周期包含4个时钟周期个时钟周期4个时钟周期编号为个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作总线周期中的时钟周期也被
41、称作“T状态状态” 时钟周期的时间长度就是时钟频率的倒数时钟周期的时间长度就是时钟频率的倒数当需要延长总线周期时需要插入等待状态当需要延长总线周期时需要插入等待状态Tw任何指令的取指阶段都需要存储器读总线周期,读取任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码的内容是指令代码任何一条以存储单元为源操作数的指令都将引起任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的,任何一条以存储单元为目的操作数的指令都将引起指令都将引起存储器写总线周期只有执行只有执行IN指令才出现指令才出现I/O读总线周期,执行,执行OUT指指令才出现令才出现I/O
42、写总线周期CPU响应可屏蔽中断时生成响应可屏蔽中断时生成中断响应总线周期总线操作中如何实现时序同步是关键总线操作中如何实现时序同步是关键CPU总线周期采用总线周期采用同步时序:各部件都以系统时钟信号为基准各部件都以系统时钟信号为基准当相互不能配合时,快速部件(当相互不能配合时,快速部件(CPU)插入等待状态等)插入等待状态等待慢速部件(待慢速部件(I/O和存储器)和存储器)CPU与外设接口常采用与外设接口常采用异步时序,它们通过应答,它们通过应答联络信号实现同步操作联络信号实现同步操作2. 最小模式的总线时序最小模式的总线时序本节展开微处理器最基本的本节展开微处理器最基本的4种总线周期种总线周
43、期存储器读总线周期存储器读总线周期存储器写总线周期存储器写总线周期I/O读总线周期读总线周期I/O写总线周期写总线周期存储器写总线周期存储器写总线周期T4T3T2T1ALECLKA19/S6A16/S3A15A8AD7AD0A15A8A7A0输出数据输出数据A19A16S6S3READY(高电平)(高电平)IO/M*WR*存储器读总线周期存储器读总线周期T4T3T2T1ALECLKA19/S6A16/S3A15A8AD7AD0A15A8A7A0输入数据输入数据A19A16S6S3READY(高电平)(高电平)IO/M*RD*演示I/O读总线周期读总线周期T4T3T2T1ALECLKA19/S6
44、A16/S3A15A8AD7AD0A15A8A7A0输入数据输入数据S6S3READY(高电平)(高电平)IO/M*RD*0000插入等待状态插入等待状态Twl同步时序通过插入等待状态,来使速度差别较同步时序通过插入等待状态,来使速度差别较大的两部分保持同步大的两部分保持同步l在读写总线周期中,判断是否插入在读写总线周期中,判断是否插入Tw1. 1. 在在T3T3的前沿检测的前沿检测READYREADY引脚是否有效引脚是否有效2. 2. 如果如果READYREADY无效,在无效,在T3T3和和T4T4之间插入一个等效于之间插入一个等效于T3T3的的Tw Tw ,转,转1 13. 3. 如果如果
45、READYREADY有效,执行完该有效,执行完该T T状态,进入状态,进入T4T4状态状态3.2 存储器组织及管理存储器组织及管理3.2.1主存储器的组织存储器由若干存储单元组成,存储单元的多少表示存储器由若干存储单元组成,存储单元的多少表示存储器的容量;存储器的容量;80868086构成的系统中,每个存储单元的长度为构成的系统中,每个存储单元的长度为8 8个二个二进制位,每个存储单元被指定一个唯一的单元号码,进制位,每个存储单元被指定一个唯一的单元号码,即即存储单元地址;80868086有有2020根地址线,可以产生根地址线,可以产生2020位长的地址码,存位长的地址码,存储器寻址空间为储器
46、寻址空间为2 22020个存储单元,即可以直接访问个存储单元,即可以直接访问1MB1MB存储空间存储空间存储单元(字节)7 0二进制数地址十六进制数地址00000H 0000000000000000000000001H 0000000000000000000100002H 00000000000000000010.FFFFEH 11111111111111111110FFFFFH 111111111111111111111. 存储单元的地址表示存储单元的地址表示2、字数据的存放规则 存储器每个单元只能存储一存储器每个单元只能存储一个字节,对于字数据,通常使用相个字节,对于字数据,通常使用相邻的
47、邻的2 2个存储单元来存储;个存储单元来存储;存储规则:(1 1)字的低位字节存放在低字的低位字节存放在低地址单元,高位字节存放在地址单元,高位字节存放在高地址单元;高地址单元;(2 2)字单元的地址用低字节字单元的地址用低字节单元的地址表示。单元的地址表示。563409235H09236H将数据将数据3456存放存放到地址为到地址为09235H的存储单元中的存储单元中3.2.2 主存储器的段结构主存储器的段结构一、存储器分段技术 由于由于80868086可寻址的存储空间可寻址的存储空间1MB1MB,需要,需要提供提供2020位的地址码,而位的地址码,而CPUCPU内部的寄存器长度只有内部的寄
48、存器长度只有1616位,能直接访问的最大地址空间是位,能直接访问的最大地址空间是64KB64KB。为了实。为了实现对现对1MB1MB单元的寻址,单元的寻址,80x8680x86系统将系统将1MB1MB的存储空间的存储空间分成许多逻辑段,每段最长分成许多逻辑段,每段最长64KB64KB,可以用,可以用1616位的地位的地址码进行寻址。每个逻辑段在实际存储空间中的位址码进行寻址。每个逻辑段在实际存储空间中的位置可以浮动,段的起始地址可由段寄存器的内容来置可以浮动,段的起始地址可由段寄存器的内容来确定,这种技术即确定,这种技术即存储器分段技术 00000H 存储器分段示意图 逻辑段1起点 逻辑段2起
49、点 逻辑段3起点 逻辑段4起点 FFFFFH 逻辑段1 64KB 逻辑段2 64KB 逻辑段3 64KB 逻辑段4 64KB 每个段最大长度每个段最大长度64KB64KB,段的用途由,段的用途由用户自己定义,代用户自己定义,代码或数据可以存放码或数据可以存放在段内任意单元;在段内任意单元;逻辑段在物理存逻辑段在物理存储器中可以邻接、储器中可以邻接、间隔、部分重叠或间隔、部分重叠或全部重叠全部重叠分段存储技术的特点:00000HFFFFFH代码段代码段数据段数据段堆栈段堆栈段附加段附加段在任意时刻,一个程序只在任意时刻,一个程序只能访问当前段中的内容,在能访问当前段中的内容,在程序设计中一般设置
50、程序设计中一般设置4个基个基本的逻辑段:本的逻辑段:代码段、数据段、堆栈段和附加段,80868086中中4 4个段寄存器个段寄存器CS、DS、SS和ES分别保存这分别保存这4 4个段的个段的段基址的高段基址的高1616位地址。位地址。二、实模式下的存储器寻址二、实模式下的存储器寻址(1)段地址:描述要寻址的逻辑段在内存中的起始描述要寻址的逻辑段在内存中的起始位置。段地址保存在位置。段地址保存在1616位的位的CSCS、SSSS、DSDS和和ESES段寄存器段寄存器中。中。(2)偏移地址:描述要寻址的内存单元距本段段首描述要寻址的内存单元距本段段首的偏移量。在编程中常被称作的偏移量。在编程中常被
51、称作“有效地址有效地址”。(3)逻辑地址:是在编程中使用的地址,由段地址是在编程中使用的地址,由段地址和偏移地址两部分组成。表示形式为和偏移地址两部分组成。表示形式为“段地址:偏移段地址:偏移地址地址”。(4)物理地址:是存储器的实际地址,由是存储器的实际地址,由CPUCPU提供提供的的2020位地址码来表示,是惟一能代表存储空间每个字位地址码来表示,是惟一能代表存储空间每个字节单元的地址。节单元的地址。1、存储器地址2、实模式下物理地址的产生 在编写程序使用的是在编写程序使用的是1616位的逻辑地址,而位的逻辑地址,而CPUCPU与存储器交换数与存储器交换数据所使用的是据所使用的是2020位
52、的物理地址,因而需要将逻辑地址映射为物理地址。位的物理地址,因而需要将逻辑地址映射为物理地址。具体方法:将段寄存器的将段寄存器的1616位段基址左移位段基址左移4 4位,位,低位补低位补0 0,再与,再与1616位位的偏移量相加,即的偏移量相加,即可得物理地址。可得物理地址。物理地址物理地址= =段基址段基址16+16+偏移量偏移量逻辑地址的来源序号序号操作类型操作类型逻辑地址逻辑地址段基址段基址偏移量偏移量隐含来源隐含来源允许替代来源允许替代来源1取指令CSIP2堆栈操作SSSP3取源串DSCS,SS,ESSI4存目的串ESDI5以BP做基址SSCS,dS,ES有效地址EA6存取一般变量DS
53、CS,SS,ES有效地址EA3. 堆栈堆栈堆栈是在存储器中开辟的一个特定区域。开辟堆栈的开辟堆栈的目的主要有以下两点:主要有以下两点: (1) 存放指令操作数存放指令操作数( (变量变量) )。此时,对操作。此时,对操作数进行访问时,段地址由堆栈段寄存器数进行访问时,段地址由堆栈段寄存器SSSS来提供,来提供,操作数在该段内的偏移地址由基址寄存器操作数在该段内的偏移地址由基址寄存器BPBP来提供。来提供。 (2) 保护断点和现场。此为堆栈的主要功能。保护断点和现场。此为堆栈的主要功能。SSSPSSSP12H34H56H78HSSSP12H34H56H78H栈顶栈顶栈底栈底栈顶栈顶栈底栈底栈顶栈顶栈底栈底SP例例:若若已已知知当当前前SSSS1050H1050H,SPSP0008H0008H,AXAX1234H1234H,则则80868086系系统中堆栈的入栈和出栈操作如下图所示。统中堆栈的入栈和出栈操作如下图所示。12AA10500H10501H10502H10503H10504H10505H10506H10507H10508H栈底BB10509H段基址(SS)AX3412123434PUSH AX1050AHBBAAAABB1234BX34POP BXPOP AX栈顶栈顶12