微处理器及指令系统.ppt

上传人:小飞机 文档编号:6284370 上传时间:2023-10-13 格式:PPT 页数:276 大小:3.80MB
返回 下载 相关 举报
微处理器及指令系统.ppt_第1页
第1页 / 共276页
微处理器及指令系统.ppt_第2页
第2页 / 共276页
微处理器及指令系统.ppt_第3页
第3页 / 共276页
微处理器及指令系统.ppt_第4页
第4页 / 共276页
微处理器及指令系统.ppt_第5页
第5页 / 共276页
点击查看更多>>
资源描述

《微处理器及指令系统.ppt》由会员分享,可在线阅读,更多相关《微处理器及指令系统.ppt(276页珍藏版)》请在三一办公上搜索。

1、1,第二章:x86 微处理器,2,第二章:x86微处理器,2.1 8086/8088微处理器2.2 8086/8088存储器和I/O组织2.3 8086/8088中断系统2.4 8086/8088指令系统2.5 x86系列CPU的技术发展,3,8086/8088微处理器的结构。8086微处理器的结构。8086/8088微处理器的寄存器结构8086/8088系统中的存储器分段与物理地址的形成。8086/8088微处理器的引脚功能和相关知识,达到“综合应用”层次。8086/8088 CPU的引脚信号和工作模式。8086/8088两种工作方式最小方式与最大方式的区别。最小模式的典型配置8086/80

2、88微处理器的总线时序。三种周期指令周期、总线周期和时钟周期的区别及联系。中断类型码,中断向量,中断子程序入口地址之间的联系最小方式下的总线读/写操作时序,最小方式下的总线请求/保持三态,2.1 8086/8088微处理器,本 节 要 点,4,8086/8088微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处理器都封装在相同的40脚双列直插组件中。,2.1.0 8086与8088,2.1 8086/8088微处理器,5,2.1 8086/8088微处理器,要了解一个CPU的工作性能和使用方法,首先应该了解其

3、功能结构(是指从程序员和使用者的角度看到的结构,亦可称为编程结构)。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。,2.1.1 8086与8088微处理器的编程结构,6,2.1 8086/8088微处理器,总线接口部件(BIU),总线接口单元BIU的功能是负责完成CPU与存储器或I/O设备之间的数据传送。具体任务是:,指令队列出现空字节(8088CPU 1个空字节,8086CPU2个空字节)时,从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。

4、EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用。EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。,7,2.1 8086/8088微处理器,总线接口部件的组成,4个16位段寄存器:包括代码段寄存器CS(Code Segment)、数据段寄存器DS(Data Segment)、堆栈段寄存器SS(Stack Segment)和附加数据段寄存器ES(Extra Segment);1个16位的指令指针寄存器IP(Instruction Pointer);1个20位地址加法器;6字节指令队列缓冲器;1个与EU通讯的内部寄存器;总线控制电路等

5、。,8,2.1 8086/8088微处理器,段寄存器,8086CPU的地址引脚有20根,能提供20位的地址信息,可直接对1M个存储单元进行访问,但CPU内部可用来提供地址信息的寄存器都是16位的,为了用16位寄存器实现20位地址的寻址,8086/8088采用了段结构的内存管理的方法。将指令代码和数据分别存储在代码段、数据段、堆栈段、附加数据段中,这些段的段地址分别由段寄存器CS、DS、SS、ES提供,而代码或数据在段内的偏移地址则由有关寄存器或立即数给出。,9,2.1 8086/8088微处理器,代码段寄存器CS存储程序当前使用的代码段的段地址。代码段用来存放程序的指令代码。下一条要读取指令在

6、代码段中的偏移地址由指令指针寄存器IP提供;数据段寄存器DS用来存放程序当前使用的数据段的段地址。一般来说,程序中所用到的原始数据、中间结果以及最终结果都存放在数据段中,如果程序中使用了字符串处理指令,则源字符串也存放在数据段中;堆栈段寄存器SS用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域;附加数据段寄存器ES用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。,段寄存器,10,2.1 8086/8088微处理器,段寄存器,8086/8088段寄存器与提供段内偏移地址的寄存器之间的默认组合,11,2.1 8086/8088微处

7、理器,指令指针寄存器IP,指令指针寄存器IP用来存放下一条要读取的指令在代码段中的偏移地址。IP在程序运行中能自动加1修正,从而使其始终存放的是下一条要读取的指令在代码段的偏移地址。由于CS和IP的内容决定了程序的执行顺序,因此程序员不能直接用赋值指令对其内容进行修改。有些指令能使IP和CS的值改变(如跳转指令)或使其值压入堆栈或从堆栈中弹出恢复原值(如子程序调用指令和返回指令),12,2.1 8086/8088微处理器,20位地址加法器,8086/8088系统中存储器按字节编址,可寻址1M字节,由于1M字节是2的20次方,因此,每个字节所对应的地址应是20位,这20位的地址称为物理地址/绝对

8、地址,物理地址由逻辑地址变换而来;逻辑地址由段基址和偏移地址两部分构成,段基址和偏移地址都是无符号的16位二进制数。段基址存放在段寄存器中,偏移地址存放在IP或者SP中。CPU提供的用来对存储单元进行访问的20位地址是由BIU中的地址加法器产生的。,物理地址=段基址X16+偏移地址,例如:CS=2000H,指令指针寄存器存放的是偏移地址IP=2200H,存储器的物理地址为20000H+2200H=22200H。,13,2.1 8086/8088微处理器,指令队列缓冲器,8086的指令队列有6个字节,8088的指令队列有4个字节。对8086而言,当指令队列出现2个空字节,对8088而言,指令队列

9、出现1个空字节时,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。它们采用“先进先出”原则,按顺序存放,并按顺序取到EU中去执行。当EU执行一条需要到存储器或I/O端口读取操作数的指令时,BIU将在执行完现行取指令的存储器周期后的下一个存储周期,对指令所指定的存储单元或I/O端口进行访问,读取的操作数经BIU送EU进行处理。当EU执行跳转、子程序调用或返回指令时,BIU就使指令队列复位,并从指令给出的新地址开始取指令,新取的第1条指令直接经指令队列送EU执行,随后取来的指令将填入指令队列缓冲器。,14,2.1 8086/8088微处理器,BIU和EU的动作协调原则B

10、IU和EU按以下流水线技术原则协调工作,共同完成所要求的任务:每当8086的指令队列中有两个空字节,BIU就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者IO端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者IO端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。当指令队列已满,且

11、EU又没有总线访问请求时,BIU便进入空闲状态。在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向的另一程序段中的指令代码。,15,2.1 8086/8088微处理器,BIU和EU的动作协调原则指令队列的引入使得EU和BIU可并行工作,即BIU在读指令时,并不影响EU单元执行指令,EU单元可以连续不断地直接从指令队列中取到要执行的指令代码,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度。指令队列可以被看成是一个特殊的RAM,它的工作原理是“先进先出”,写入的指令只能存放在队

12、列尾,读出的指令是队列头存放的指令。EU和BIU之间就是通过指令队列协调工作。,16,2.1 8086/8088微处理器,执行单元EU,执行单元EU不与系统外部直接相连,它的功能只是负责执行指令。执行的指令从BIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器或I/O端口读取操作数时,由EU向BIU发出请求,再由BIU对存储器或I/O端口进行访问。EU由下列部件组成:,1)16位算术逻辑单元(ALU):进行算术和逻辑运算;2)16位标志寄存器(FR)FLAGS:存放运算的状态特征和控制标志;3)数据暂存寄存器:协助ALU完成运算,暂存参加运算的数据;,17,4)四个通用寄存器:4个16位

13、数据寄存器(AX、BX、CX、DX)5)四个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;6)EU控制电路:控制、定时与状态逻辑电路,接收从BIU指令队列取来的指令,经过指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作.,2.1 8086/8088微处理器,18,2.1 8086/8088微处理器,通用寄存器AX、BX、CX、DX,数据寄存器一般用于存放参与运算的操作数或运算结果。每个数据寄存器都是16位的,但又可将高、低8位分别作为两个独立的8位寄存器来用。高8位分别记作AH、BH、CH、DH,低8位分别记作AL,BL,CL,DL

14、。例如AX可当作两个8位寄存器AH、AL使用。8086/8088 CPU的14个寄存器除了这4个16位寄存器能分别当作两个8位寄存器来用之外,其它寄存器都不能如此使用。,19,2.1 8086/8088微处理器,通用寄存器AX、BX、CX、DX,20,2.1 8086/8088微处理器,MOV AL,41H;OUT DX,AL;MUL 50H;AL*50H-AXMUL 2030H;AX*2030H-DX(h),AX(l)DIV SRC;AX/SRC;(AL)商;(AH)余(AX)(DX:AX)/(src)的商(字除法)(DX)(DX:AX)/(src)的余数LOOP;ROR AX,CL,21,

15、2.1 8086/8088微处理器,地址指针寄存器SP、BPSP(Stack Pointer)称为堆栈指针寄存器。在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。BP(Base Pointer)称为基址寄存器。作为通用寄存器可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。变址寄存器SI、DISI(Source Index)称为源变址寄存器。DI(Destination Index)称为目的变址寄存器。通常用在字符串操作时存放操作数的偏移地址,其中SI存放源串在数据段内的偏移地址,DI

16、存放目的串在附加数据段内的偏移地址。,22,2.1 8086/8088微处理器,标志寄存器(FR)FLAGSFLAGS称为标志寄存器,为一个16位的寄存器,但只用了其中9位,包括6个状态标志位,3个控制标志位。状态标志位:用来反映算术和逻辑运算结果的一些特征。如结果是否为“0”,是否有进位、借位、溢出等。不同指令对状态标志位的影响是不同的。控制标志位:用来控制CPU的操作,由程序设置或清除。,控制标志位:TF、IF、DF状态标志位:CF、PF、AF、ZF、SF、OF,23,2.1 8086/8088微处理器,24,2.1 8086/8088微处理器,例(标志寄存器),例A:设变量x=11101

17、111B,y=11001000B,问执行x+y 操作后标志寄存器中各状态位的状态如何?11101111+)11001000,自动丢失,1 10110111BF=1CF=1,异或,25,2.1 8086/8088微处理器,例B:设变量X=0B,Y=B,问执行X+Y 操作后标志寄存器中各状态位的状态如何?,例(标志寄存器),26,2.1 8086/8088微处理器,8086/8088寄存器结构,27,2.1 8086/8088微处理器,8088CPU与8086CPU的异同,8088CPU内部结构与8086基本相似,两者的执行单元EU完全相同,其指令系统,寻址方式及程序设计方法都相同,所以两种CPU

18、完全兼容。8088CPU与8086CPU区别仅在于总线接口单元BIU,归纳起来主要差异如下:1)外部数据总线位数不同。8086外部数据总线16位,在一个总线周期内可以输入/输出一个字(16位数据),而8088外部数据总线8位,在一个总线周期内只能输入/输出一个字节(8位数据)。2)指令队列缓冲器大小不同。8086指令队列可容纳6个字节,且在每一个总线周期中从存储器取出2个字节的指令代码填入指令队列;而8088指令队列只能容纳4个字节,在一个机器周期中取出一个字节的指令代码送指令队列。3)部分引脚的功能定义有所区别。,28,2.1 8086/8088微处理器,2.1.2 8086总线周期概念,8

19、086/8088CPU在与存储器或I/O端口交换数据时需要启动一个总线周期。按照数据的传送方向来分,总线周期可分为“读”总线周期(CPU从存储器或I/O端口读取数据)和“写”总线周期(CPU将数据写入存储器或I/O端口)。,8086CPU基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,由CPU主频决定,如8086的主频为5MHz,1个时钟周期就是200ns。一个时钟周期又称为一个T状态,因此基本总线周期用T1、T2、T3、T4表示。在T1状态CPU把要读/写的存储单元的地址或I/O端口的地址放到地址总线上。,29,2.1 8086/8088微处理器,2.1.2 8086总

20、线周期概念,若是“写”总线周期,CPU从T2起到T4,把数据送到总线上,并写入存储器单元或I/O端口;若是“读”总线周期,CPU则从T3起到T4从总线上接收数据,T2状态时总线浮空,允许CPU有个缓冲时间把输出地址的写方式转换成输入数据的读方式。,30,2.1 8086/8088微处理器,指令周期:一条指令从其代码被从内存单元中取出到其所规定的操作执行完毕,所用的时间,称为相应指令的指令周期。总线周期:是指CPU与存储器或外设进行一次数据传送所需要的时间。时钟周期:又称为T状态,是一个时钟脉冲的重复周期,是CPU处理动作的基本时间单位。它是由主频来确定,如8086的主频为5MHz,则一个时钟周

21、期为200ns。等待周期:是在一个总线周期的T3和T4之间,CPU根据Ready信号来确定是否插入TW,插入几个TW。空闲周期:是指在二个总线周期之间的时间间隔(总线处在空闲状态)。若为3个时钟周期,则空闲周期为3个Ti。时钟周期(T)作为基本时间单位,一个等待周期TW=T;一个空闲周期Ti=T;一个总线周期通常由四个T组成,分别称为T1T2 T3 T4;一个指令周期由一到几个总线周期组成。,2.1.2 8086总线周期概念,31,2.1 8086/8088微处理器,具有空闲状态的总线周期T1状态,发地址信息;T2状态,总线的高4位输出状态信息;T3状态,高4位状态信息,低16位数据信息;T3

22、之后,可能插入TW;在T4状态,结束。,只有在CPU和内存或I/O接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。可见,如果在一个总线周期之后,不立即执行下一个总线周期,即CPU此时执行的指令不需要对存储器或I/O端口进行访问,且目前指令队列满而不需要到内存中读指令,那么系统总线就处于空闲状态,执行空闲周期TI。,32,2.1 8086/8088微处理器,总线空闲周期的状态,在空闲周期中可包括一个或多个时钟周期,在这期间,在高4位的总线上,CPU仍驱动前一个总线周期的状态信息;而在低16位的总线上,则根据前一个总线周期是读还是写周期来决定。1)若前一个周期为写周期,CPU会在总线的

23、低16位继续驱动数据信息;2)若前一个总线周期为读周期,CPU则使总线的低16位处于浮空状态。在空闲周期,尽管CPU对总线进行空操作,但在CPU内部,仍然进行着有效的操作,如执行某个运算、在内部寄存器之间传送数据等。,33,2.1 8086/8088微处理器,具有等待状态的总线周期,在总线周期的T3状态结束之前,CPU测试READY信号线,如果为有效的高电平,则说明数据已准备好,可进入T4状态;若READY为低电平,则说明数据没有准备好,CPU在T3之后插入1个或多个等待周期TW,直到检测到READY为有效高电平后,CPU会自动脱离TW而进入T4状态。通过这种延长总线周期的措施允许系统使用低速

24、的存储器芯片。,34,2.1 8086/8088微处理器,2.1.3 8086/8088引脚信号及其功能,35,2.1 8086/8088微处理器,2.1.3 8086/8088引脚信号及其功能,36,2.1 8086/8088微处理器,8086/8088芯片的引脚包括20根地址线,16根(8086)或8根(8088)数据线以及控制线、状态线、电源线和地线等;若每个引脚只传送一种信息,那么芯片的引脚将会太多,不利于芯片的封装,因此,8086/8088CPU的部分引脚定义了双重功能。例如:,第33引脚MN/-MX上电平的高低决定CPU两种不同的工作方式(最大工作方式和最小工作方式),而第31到2

25、4引脚在CPU两种不同的工作方式时具有不同的名称和定义;引脚9到16(8088CPU)及引脚2到16和39(8086CPU)采用了地址/数据分时复用技术,即在不同的时刻分别传送地址或数据信息等。,8086CPU引脚按功能可分为三大类:电源线和地线,地址/数据引脚以及控制引脚。,37,2.1 8086/8088微处理器,电源线和地线,电源线VCC第40引脚,输入,接入单一+5V电源。地线GND引脚1和20,输入,两条地线均应接地。,38,2.1 8086/8088微处理器,地址/数据(状态)引脚,30,2,地址/数据分时复用引脚AD15AD0(Address/Data),引脚39及引脚216,传

26、送地址时单向输出,传送数据时双向输入或输出。分时输出 低16位地址信号及进行数据信号的输入/输出,地址/状态分时复用引脚A19/S6A16/S3(Address/Status),引脚3538,输出、三态总线,采用分时输出,即在T1状态作地址线用,T2T4状态输出状态信息。当访问存储器时,T1状态输出A19A15,与AD15AD0一起构成访问存储器的20位物理地址;CPU访问I/O端口时,不使用这4个引脚,A19A16保持为0。,39,2.1 8086/8088微处理器,地址/数据(状态)引脚,30,2,状态信息:,S6,为0用来表示8086CPU 当前与总线相连,所以在T2T4状态,S6总为0

27、,以表示CPU当前连在总线上;S5,表示中断允许标志位IF的当前设置,IF=1时,S5为1,否则为0;S4S3,用来指示当前正在使用哪个段寄存器。,40,2.1 8086/8088微处理器,控制引脚,30,2,NMI(Non-Maskable Interrupt),INTR(Interrupt Request):,引脚17,非屏蔽中断请求信号,输入,上升沿触发。此请求不受标志寄存器FLAGS中中断允许标志位IF状态的影响,只要此信号一出现,在当前指令执行结束后立即进行中断处理。,引脚18,可屏蔽中断请求信号,输入,高电平有效CPU在每个指令周期的最后一个时钟周期检测该信号是否有效,若此信号有效

28、,表明有外设提出了中断请求,这时若IF=1,则当前指令执行完后立即响应中断;若IF=0,则中断被屏蔽,外设发出的中断请求将不被响应。程序员可通过指令STI或CLI将IF标志位置1或清零。,41,2.1 8086/8088微处理器,控制引脚,30,2,CLK(Clock),引脚19,系统时钟时钟信号输入引脚,时钟信号的方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为低电平。,RESET,引脚21,复位信号输入引脚,高电平有效;复位信号使处理器马上结束现行操作,对内部寄存器进行初始化。8086/8088要求复位脉冲宽度不得小于4个时钟周期。复位后,内部寄存器处于初始默认状态。,42,

29、2.1 8086/8088微处理器,30,2,READY引脚22,数据“准备好(就绪)”信号线,输入引脚。是所寻址的存储器或I/O端口发来的数据准备就绪信号,高电平有效。该信号是协调CPU与内存单元或I/O端口之间进行信息传送的联络信号。CPU在每个总线周期的T3状态对READY引脚采样,若为高电平,说明数据已准备好;若为低电平,说明数据还没有准备好,CPU在T3状态之后自动插入一个或几个等待状态TW,直到READY变为高电平,才能进入T4状态,完成数据传送过程,从而结束当前总线周期。-TEST引脚23,等待测试信号,输入引脚,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对-TES

30、T 引脚进行一次测试。若为高电平,CPU就仍处于空转状态进行等待,直到-TEST 引脚变为低电平,CPU结束等待状态,执行下一条指令,以使CPU与外部硬件同步。,控制引脚,43,2.1 8086/8088微处理器,控制引脚,30,-RD(Read)引脚32,读控制信号,输出当-RD=0时,表示将要执行一个对存储器或 I/O 端口的读操作。到底是从存储单元还是从 I/O 端口读取数据,取决于M/-IO(8086)或IO/-M(8088)信号。,-BHE/S7(Bus High Enable/Status)引脚34,高8位数据总线允许/状态复用引脚,输出在总线周期的T1状态时输出-BHE,当该引脚

31、输出为低电平时,表示当前数据总线上高8位数据有效。该引脚和地址引脚A0配合表示当前数据总线的使用情况。在总线周期的T2及其以后的状态时,输出状态信号S7。,8088的34引脚定义为-SS0,用来与28脚-M/IO和27脚DT/-R组合,决定当前总线周期的操作,44,2.1 8086/8088微处理器,控制引脚,30,引脚33,最小/最大方式控制信号,输入MN/-MX引脚接高电平时,8086/8088 CPU工作在最小方式,在此方式下,全部控制信号由CPU提供;MN/-MX引脚接低电平时,8086/8088工作在最大方式,这时,CPU发出的控制信号经8288总线控制器进行变换和组合,从而使总线的

32、控制功能更加完善。第2431引脚的功能定义在最小方式下和最大方式下是不同的。,MN/-MX(Minimum/Maximum mode control),45,2.1 8086/8088微处理器,30,控制引脚,-INTA(Interrupt Acknowledge)1)最小方式引脚24,中断响应信号,输出;2)用于对外设的中断请求(经INTR引脚送入CPU)作出响应。3)-INTA实际上是两个连续的负脉冲信号,第一个负脉冲通知外设接口,它发出的中断请求已被允许;外设接口接到第2个负脉冲后,将中断类型号放到数据总线上,以便CPU根据中断类型号到内存的中断向量表中找出对应中断的中断服务程序入口地址

33、,从而转去执行中断服务程序。ALE(Address Latch Enable)1)最小方式引脚25,地址锁存允许信号,输出;2)是8086/8088提供给地址锁存器的控制信号,高电平有效。在任何一个总线周期的T1状态,ALE均为高电平,以表示当前地址/数据复用总线上输出的是地址信息,ALE由高到低的下降沿把地址装入地址锁存器中。,46,2.1 8086/8088微处理器,中断向量和中断向量表,0段的0000-03FFH区域设置为一个中断向量表。每个中断向量占4个存储单元。其中,前两个单元存放中断子程序入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断子程序入口地址的段地址(CS)

34、,也是低位在前,高位在后。,例如:类型号为17H的中断处理子程序存放在2345:7890H开始的内存区域中。而17H中断对应的中断向量存放在0000:005CH处,所以,0段005CH、005DH、005EH和005FH这4个单元中的数值分别为:90H、78H、45H及23H。,17H=23D23D*4=92D92D=5CH,CS:IP=2345:7890H,90H,78H,45H,23H,cs,IP,005CH,005DH,005EH,005FH,47,2.1 8086/8088微处理器,30,控制引脚,-DEN(Data Enable):1)最小方式引脚26,数据允许信号,输出;2)当使用

35、数据总线收发器时(例如使用8286/8287),该信号为收发器的OE端提供了一个控制信号,用于决定是否允许数据通过数据总线收发器。-DEN为高电平时,收发器在收或发两个方向上都不能传送数据,当-DEN为低电平时,允许数据通过数据总线收发器。DT/-R(Data Transmit/Receive):1)最小方式引脚27,数据发送/接收信号,输出;2)用来控制数据的传送方向。当其为高电平时,8086 CPU通过数据总线收发器进行数据发送;当其为低电平时,则进行数据接收。在DMA方式,它被浮置为高阻状态。,48,2.1 8086/8088微处理器,30,控制引脚,M/-IO(Memory/Input

36、 and Output):1)最小方式引脚28,存储器/I/O端口控制信号,输出;2)用来区分CPU是进行存储器访问还是I/O端口访问。当其为高电平时,表示CPU正在和存储器进行数据传送;如为低电平,表明CPU正在和输入/输出设备进行数据传送。在DMA方式,该引脚被浮置为高阻状态。-WR(Write):1)最小方式引脚29,写信号,输出;2)-WR有效时,表示CPU当前正在进行存储器或I/O写操作,到底是哪一种写操作,取决于M/-IO信号。在DMA方式,该引脚被浮置为高阻状态。,8088的28脚不是M/-IO而是-M/IO,49,2.1 8086/8088微处理器,30,控制引脚,HOLD(H

37、old request):1)最小方式引脚31,总线保持请求信号,输入;2)当8086/8088 CPU之外的总线主设备要求占用总线时,通过该引脚向CPU发一个高电平的总线保持请求信号。HLDA(Hold Acknowledge):1)最小方式引脚30,总线保持响应信号,输出;2)当CPU接收到HOLD信号后,这时如果CPU允许让出总线,就在当前总线周期完成时,在T4状态发出高电平有效的HLDA信号给以响应。此时,CPU让出总线使用权,发出HOLD请求的总线主设备获得总线的控制权。(DMA操作时使用该信号),50,2.1 8086/8088微处理器,控制引脚,30,QS1、QS0(Instru

38、ction Queue Status)1)最大方式引脚24、25。指令队列状态信号,输出;2)QS1、QS0两个信号电平的不同组合指明了8086/8088内部指令队列的状态,其代码组合对应的含义如下页表所示。,51,2.1 8086/8088微处理器,控制引脚,30,-S2、-S1、-S0(Bus Cycle Status)1)最大方式引脚26、27、28,总线周期状态信号,输出;2)低电平有效的三个状态信号,被连接到总线控制器8288的输入端,8288对这些信号进行译码后产生内存及I/O端口的读写控制信号。,52,2.1 8086/8088微处理器,30,控制引脚,-LOCK(Lock):1

39、)最大方式引脚29,总线封锁信号,输出;2)当-LOCK为低电平时,系统中其他总线主设备就不能获得总线的控制权而占用总线。3)-LOCK信号由指令前缀LOCK产生,-LOCK指令后面的一条指令执行完后,便撤消了LOCK信号。8086两个中断响应脉冲之间,/LOCK信号有效。4)在DMA期间,/LOCK被浮空而处于高阻状态。-RQ/-GT1、-RQ/-GT0(Request/Grant)1)最大方式引脚30、31,总线请求信号(输入)/总线请求允许信号(输出)2)可供8086/8088以外的2个总线主设备向8086/8088发出使用总线的请求信号RQ(相当于最小方式时的HOLD信号)。而8086

40、/8088在现行总线周期结束后让出总线,发出总线请求允许信号GT(相当于最小方式的HLDA信号),此时,外部总线主设备便获得了总线的控制权。其中-RQ/-GT0比-RQ/-GT1的优先级高。,53,2.1 8086/8088微处理器,30,2.1.4 最小模式和最大模式,最小模式和最大模式的概念最小模式:在计算机系统中只有8086或8088一个 微处理器;最大模式:在中等规模或大型的8086/8088计算机系统中,总是包含有两个或多个微处理器。其中一个主处理器就是8088或8086,其他的处理器称为协处理器。8087:数值运算协处理器;8089:输入输出协处理器。,54,2.1 8086/80

41、88微处理器,30,8086最小模式,当MN/-MX接高电平(+5V)时,系统工作于最小模式,适用于小规模的微机系统。,MN/MX,VCC(5 V),CLKREADYRESET,ALEBHEA19/S6,A16/S3AD15/AD,0,VCC,数据收发器8286(2片),STB地址锁存器8282(3片),OE,地址总线AB,8086 CPUDENDT/RM/IOINTRINTARDWRHOLDHLDA,数据总线DB控制总线CB,8284A时钟发生器RDY,最小模式下的典型配置,等待状态产生器,1片8284A作为时钟发生器,3片8282用作地址锁存器;2片8286作为总线收发器,增加数据总线的驱

42、动能力。,地址锁存器8282:8位的,而8086系统采用20位地址。STB是其选通端。OE为输出允许。,产生恒定时钟;对准备信号和复位信号同步,8286是8位的,8086用2片;8088用1片。,55,2.1 8086/8088微处理器,30,8086最大模式,当MN/-MX接低电平时,系统工作于最大方式,即多处理器方式。,DEN,S1,S 2,8086 CPU,5 V,CLKREADYRESET,A16/S3AD15/AD0,8284A时钟发生器,VCC,等待状态产生器,地址锁存器8282,(3片),数据收发器,8286,(2片),OE,地址总线AB,数据总线DB,控制总线CB,S0S1S

43、2,8288总线控制器,S0,CLK,CEN,AEN,IOBMRDCMWTCAMWCIORC,IOWCAIOWCINTA,STB,BHEA19/S6,1,T,OE,MN/MX,DT/RALE,最大模式下,以CPU为核心的多处理器控制系统共用一条外部总线,因此需要增加总线控制器8288完成多处理器的分时控制。,8286是8位的,8086用2片;8088用两片。,T:引脚用来控制数据传输方向,三个状态信号,56,2.1 8086/8088微处理器,30,2.1.4 最小模式和最大模式,比较最大方式和最小方式系统结构图可以发现,最大方式和最小方式有关地址总线和数据总线的电路部分基本相同,即都需要地址

44、锁存器及数据总线收发器。而控制总线的电路部分有很大差别。,1)在最小工作方式下,控制信号可直接从8086/8088 CPU得到,不需要外加电路。2)最大方式是多处理器工作方式,需要协调主处理器和协处理器的工作。因此,8086/8088的部分引脚需要重新定义,控制信号不能直接从8086/8088 CPU引脚得到,需要外加8288总线控制器,通过它对CPU发出的控制信号(-S0,-S1,-S2)进行变换和组合,以得到对存储器和I/O端口的读写控制信号和对地址锁存器8282及对总线收发器8286的控制信号,使总线的控制功能更加完善。,57,2.1 8086/8088微处理器,30,2.1.5 808

45、6的操作和时序8086CPU的主要操作1)系统的复位和启动操作2)暂停操作3)总线操作4)中断操作5)最小方式下的总线保持6)最大方式下的总线请求/允许,58,2.1 8086/8088微处理器,系统的复位和启动操作,复位动作由RESET引脚上的触发信号来执行;动作时间,要求上电初次为至少50us,其它为4个以上时钟周期(10ns)的高电平;复位后,CPU就被启动恢复正常工作,即从FFFF0H处开始执行程序。(CS=FFFFH;IP=0000H),当RESET接受到高电平之后的第一个时钟周的正跳变,8086进入内部reset阶段,再过一个时钟周,所有三态输出线设置成高阻状态。,59,2.1 8

46、086/8088微处理器,总线操作,CPU与存储器、I/O端口进行数据读写过程,称为总线操作,8086CPU有以下五种总线操作:(1)最小方式下的总线读操作;(2)最小方式下的总线写操作;(3)最大方式下的总线读操作;(4)最大方式下的总线写操作;(5)总线空操作,60,2.1 8086/8088微处理器,最小方式下的总线读操作时序,一个基本的读操作周期包含四个状态,有时候外设速度较慢时,插入一个或几个等待状态。,当系统中有数据总线收发器时,要用到DT/-R和-DEN作为控制信号。前者数据传输方向;后者实现选通。,61,2.1 8086/8088微处理器,最小方式下的总线写操作时序,数据输出,

47、62,2.1 8086/8088微处理器,最大方式下的总线读操作,63,2.1 8086/8088微处理器,最大方式下的总线写操作,64,2.1 8086/8088微处理器,中断操作和中断系统,1)8086可以处理256个不同的中断,每个对应一个类型码0255;2)8086的中断分为硬件中断和软件中断两种;3)硬件中断是通过外部硬件产生的,所以,也常把硬件中断称为外部中断。硬件中断分为两类:1)外部引脚NMI引起的非屏蔽中断;2)引脚INTR引起的可屏蔽中断。4)软件中断是由CPU内部根据指令或软件设置产生的,也称为内部中断,如除数为“0”中断等。,8086的中断分类,65,非屏蔽中断请求IN

48、T 2NMI(17号引脚)中断逻辑,硬件(外部)中断,软件(内部)中断,可屏蔽中断请求中断类型号32255INTR(18号引脚),中断指令INT nN=32255,溢出中断INTOINT 4,断点中断INT 3,单步中断(TF=1)INT 1,除法错误INT 0,中断分类,&IF,66,2.1 8086/8088微处理器,中断向量和中断向量表,中断向量:中断服务子程序的入口地址,每个中断类型对应一个中断向量中断向量表:存放256个中断向量的内存区域,位于内存0段的000003FFH空间(1K Byte),67,2.1 8086/8088微处理器,中断向量和中断向量表,0段的0000-03FFH

49、区域设置为一个中断向量表。每个中断向量占4个存储单元。其中,前两个单元存放中断子程序入口地址的偏移量(IP),低位在前,高位在后;后两个单元存放中断子程序入口地址的段地址(CS),也是低位在前,高位在后。,例如:类型号为17H的中断处理子程序入口地址(2345:7890H)。而17H中断对应的中断向量存放在0000:005CH处,所以,0段005CH、005DH、005EH和005FH这4个单元中的数值分别为:90H、78H、45H及23H。,17H=23D23D*4=92D92D=5CH,CS:IP=2345:7890H,90H,78H,45H,23H,cs,IP,005CH,005DH,0

50、05EH,005FH,存放的内容是CS:IP(入口地址),68,2.1 8086/8088微处理器,可屏蔽硬件中断-INTR的响应,给出第一个-INTA,回应 INTR;给出第二个-INTA,从数据总线上读取中断类型码;将标志寄存器的值推入堆栈;把标志寄存器的中断允许标志IF和跟踪标志TF清零;将断点保存到堆栈中;根据开始时得到的中断类型码,到中断向量表中找到中断向量,再根据中断向量转入相应的中断服务子程序;,执行两个中断响应总线周期,中间间隔23个空闲状态,在第二个总线周期,通过低8位数据线接收中断类型码。,断点概念:响应中断时候,主程序当前指令下面的一条指令的地址。,69,2.1 8086

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号