1微型计算机原理与接口技术第二章8086系统结构2微型计算机原理与接口技术2.1Intel8086CPU结构8086CPU概述1977年,Intel率先推出了16位微处理器8086,能并行处理16位数据,它需要16位的存储器,16位DB,16位外设。1979年Intel研制了8088,称为准16位机。16位微处理器的特点:z引脚功能复用z单总线、累加器结构z可控三态电路z总线分时复用3微型计算机原理与接口技术一、结构特点z指令流水线z存储器的分段结构z支持用于浮点运算的协处理器及多微处理器系统z指令方面和结构设计支持使用该微处理器构成一个共享总线的多微处理器系统4微型计算机原理与接口技术串行方式:并行方式:5微型计算机原理与接口技术8086的地址总线为20位,可寻址220=1MB的内存空间;内部寄存器和内部地址总线都只有16位,也就是说能够由ALU提供的最大地址空间只能是64KB。分段:为了实现CPU对1MB空间的寻址,将内存储器空间分为若干逻辑段,每个段最大为64KB,并在CPU中专门设置了一些段寄存器,用于存放逻辑段的起始地址,这些起始地址是16位的,满足内部地址总线的宽度要求。存储器的分段结构:6微型计算机原理与接口技术二、编程结构(功能结构)SSES内部寄存器CSDS段寄存器组ALU地址加法器总线控制逻辑电路CPU总线IP132465EU控制电路AHALBHBLCHCLDHDLSPBPDISI通用寄存器组AXBXCXDX暂存寄存器标志寄存器指令流队列数据总线(16位)地址总线(20位)ALU数据总线(16位)队列总线(16位)EUBIU7微型计算机原理与接口技术三、寄存器结构累加器基址寄存器计数寄存器数据寄存器堆栈指针寄存器基址指针寄存器源指针寄存器目的指针寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器指令指针寄存器标志寄存器8微型计算机原理与接口技术通用寄存器:每一个数据寄存器都是16位寄存器,但又可将高8位和低8位分别作为两个独立的8位寄存器使用。①AX:常用于存放算术逻辑运算中的操作数。所有的I/O指令都使用累加器与外设接口传送信息。②BX:常用来存放访问内存时的基地址。③CX:在循环和串操作指令中用做计数器。④DX:在寄存器间接寻址的I/O指令中存放I/O端口的地址。⑤在做双字长乘、除法运算时,DX与AX合起来存放一个双字长数(32位),其中DX存放高16位,AX存放低16位。9微型计算机原理与接口技术指针和变址寄存器:SP:在堆栈操作中用来存放栈顶的偏移地址,永远指向堆栈的栈顶。堆栈指针寄存器基址指针寄存器源指针寄存器目的指针寄存器BP:基地址指针寄存器。一般也常用来存放访问内存时的基地址。但它通常是与SS寄存器配对使用(BX通常是与DS寄存器配对使用)。SI、DI:它们常常在变址寻址方式中作为索引指针。在字符串操作指令中,要求用SI作为源变址寄存器,存放源操作数的偏移地址;DI作为目标变址寄存器,存放目标操作数的偏移地址。10微型计算机原理与接口技术段寄存器:CS:代码段存放的是当前执行程序的指令代码。CS的内容是代码段的段基地址,它和指令指针IP一起决定下一条所要执行指令的物理存储地址。DS:数据段通常用来存放数据和字符。DS存放当前数据段的段基地址。ES:附加段是一个附加数据段,主要用在字符串操作时作为目标地址使用。ES的内容就是加段的段基地址。SS:堆栈是在存储器中开辟的一个特殊存储区,用于存放当前暂时不用但又需要保存的数据和地址。如在子程序调用或响应中断时需要保存返回主程序的地址和进入子程序后将要改变其值的寄存器的内容。11微型计算机原理与接口技术指令指针寄存器:IP用来存放下一条要执行指令的偏移地址。CPU取指令时总是以CS的内容为段基地址,以IP为段内偏移地址。当CPU从CS段偏移地址为(IP)的内存单元中取出指令代码的一个字节后,IP自动加1,指向指令代码的下一个字节。遇到过程调用、转移及返回等指令时,系统将根据程序确定新的IP的内容,使其不再加1。用户程序不能直接访问IP(指令的操作数不能是IP)。12微型计算机原理与接口技术标志寄存器:也称程序状态字(PSW),是一个16位寄存器,但只使用了其中的9位,包括6个状态标志位和3个控制标志位。13微型计算机原理与接口技术(1)条件标志(6个):反映指令执行后运算结果特征.CF(进位标志):CF=D7CY或D15CY执行算术运算指令后,结果的最高位(字节时为D7CY或字为D15CY)向更高位产生进位,则CF=1,否则CF=0.该标志主要用于多字节加、减运算.例:3FH+0B4H0BFH+0B4H0011111110111111+10110100+1011010011110011;CF=0101110011;CF=1注:对CF操作有三条专用指令:STCÆCF=1;CLCÆCF=0;CMCÆCF=CF14微型计算机原理与接口技术例:38H+49H00111000+0100100110000001;AF=1;若视为BCD运算,则应调整.PF(奇偶校验标志):PF=D7⊕…⊕D0运算结果的低8位中“1”的个数为偶数,则PF=1,否则PF=0.该标志主要用于检测数据通信中是否发生错误.AF(辅助进位标志):AF=D3CY字节运算中,低4位向高4位有进位或借位时,则AF=1,否则AF=0.该标志主要用于BCD码运算的调整指令中.15微型计算机原理与接口技术ZF(零标志):ZF=D7+…+D0或D15+…+D0运算结果为0,则ZF=1.结果非0,则ZF=0.SF(符号标志)SF=D7或D15运算结果为正数,则SF=0,为负数,则SF=1.如:3FH+0B4H=0F3H的SF=1而:0BFH+B4H=173H的SF=016微型计算机原理与接口技术OF(溢出标志):OF=D7CY⊕D6CY或D15CY⊕D14CY当运算结果超出了机器所能表示的范围时,则OF=1,否则OF=0.如:3FH+0B4H=0F3H中OF=0而:0BFH+0B4H=173H中OF=1注意:实际上机器把所有数都当无符号数运算,把结果都当符号数来设置标志.以上6个标志为指令执行后的结果标志,可作为控制转移的条件.17微型计算机原理与接口技术例:假设执行一条加法指令,计算5439H+476AH后各状态标志位的状态为何?解:0101010000111001+010001110110l0101001101110100011则执行这条加法指令后标志寄存器的状态为:CF=0,PF=1,AF=1,ZF=0,SF=1,OF=1。18微型计算机原理与接口技术(2)控制标志----控制CPU的状态。DF(方向标志):控制字符串操作中地址的步进方向.DF=1,地址增址;DF=0,地址减址.专门用于DF的指令:CLDÆDF=0;STDÆDF=1IF(中断允许标志):控制CPU是否开中断.IF=1,允许CPU响应外部可屏蔽中断.IF=0,禁止CPU响应外部可屏蔽中断.两条关于IF的专用指令:CLIÆIF=0;STIÆIF=1TF(跟踪标志):TF=1,CPU处于单步工作方式,即CPU每执行一条指令就自动地发生一个内部中断,CPU转去执行一个中断程序,常用于程序调试,又称为陷井标志.TF=0,CPU正常执行程序.19微型计算机原理与接口技术2.28086CPU引脚及其功能电源与定时线。CPU的引脚:地址线与数据线,控制与状态线,20微型计算机原理与接口技术8086的两种工作模式最小模式:又称为单微处理器模式,CPU仅支持由少量设备组成的单微处理器系统,小系统所需要的全部控制信号都由CPU直接提供。最大模式:又称为多微处理机模式,系统中除了有8086CPU之外,还可以接另外的处理器(如8087数学协处理器),构成多微处理器系统。两种工作模式可以通过在输入引脚加上不同的电平来进行选择。当=1时,8086工作在最小模式;当=0时,8086工作在最大模式。两种工作模式下的部分引脚具有不同的功能。MN/MXMN/MX21微型计算机原理与接口技术1)地址/数据总线:8086有20位地址线,16位数据线,采用分时复用方式,共同占用20根引脚。AD0~ADl5地址、数据分时复用的双向信号线,三态。当ALE=1时,这些引脚上传输的是地址信号;当=0时,这些引脚上传输的是数据信号。A16~Al9/S3~S6分时复用的地址/状态信号线,三态输出。在8086访问存储器时,读/写总线周期的第一个机器周期T1,从这4个引脚上送出最高4位地址A16~Al9。而在总线周期的其他机器周期,这4个引脚送出状态信号S3~S6。8086在两种工作模式下的公用引脚:S4S3当前正在使用的段寄存器00ES01SS10CS或未使用任何段寄存器11DS22微型计算机原理与接口技术2)控制总线:共有16根,其中两种工作模式共用的有8根引脚。:工作方式控制输入。为高电平时,CPU工作在最小模式;为低电平时,CPU处于最大模式。:读选通信号,三态,低电平有效。有效时,表示CPU正在对存储器或I/O接口进行读操作。READY:“准备好”信号输入引脚,高电平有效。有效时,表示存储器或I/O设备已准备好,CPU可以进行数据传送。INTR:可屏蔽中断请求输入信号,高电平有效。CPU在每条指令的最后一个周期采样该信号,以决定是否进入中断响应周期。可用软件屏蔽。MN/MXRD23微型计算机原理与接口技术:测试信号输入引脚,低电平有效。当CPU执行WAIT指令时,每隔5个时钟周期对此引脚进行一次测试。若为高电平,CPU则继续处于空转状态进行等待,直到引脚变为低电平后,CPU才结束等待状态,继续执行下一条指令。NMI:非屏蔽中断请求输入信号,上升沿触发。这个引脚上的中断请求信号不能用软件屏蔽,CPU在当前指令执行结束后就进入中断过程。RESET:系统复位输入信号,高电平有效。为使CPU完成内部复位过程,该信号至少要在4个时钟周期内保持有效。当RESET返回低电平时,CPU将重新启动。TEST标志寄存器FR0000H指令寄存器IP0000H代码段寄存器CSFFFFH数据段寄存器DS0000H堆栈段寄存器SS0000H附加段寄存器ES0000H指令队列空24微型计算机原理与接口技术7BHE/S:高8位数据总线允许/状态信号线,三态输出。在总线周期的第一个时钟周期输出信号,其他时钟周期输出状态信号S7(S7的意义目前没有定义)。信号的意义是:当为低电平时,表示可使用高8位数据线AD8~ADl5;否则只使用低8位数据线AD0~AD7。BHEBHE25微型计算机原理与接口技术1234567891011121314151617181920GNDAD14NMIINTRCLKGNDVCC(+5V)RESET4039383736353433323130292827262524232221MN/MXRDHOLD(RQ/GT0)M/IO(S2)ALE(QS0)READYTESTBHE/S7AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0AD15A16/S3A17/S4A18/S5A19/S6HLDA(RQ/GT1)WR(LOCK)DT/R(S1)DEN(S0)INTA(QS1)两种模式26微型计算机原理与接口技术最小模式下引脚24~31的功能定义为::中断响应输出端。ALE:地址锁存允许信号,三态输出,高电平有效。:数据允许信号,三态,低电平有效。:数据传送方向控制信号,三态。:输入/输出/存储器控制信号,三态。:写信号输出,三态。HOLD:总线保持请求信号输入,高电平有效。HLDA:总线保持响应信号输出,高电平有效。INTADENDT/RM/IOWR27微型计算机原理与接口技术2S1S0SLOCK1RQ/GT0RQ/GT1RQ/GT0RQ/GT最大模式下引脚24~31的功能定义为:QSl、QS0:指令流队列状态输出。提供指令流队列的状态,以便外部逻辑跟踪CPU内部的指令流队列。、、:总线周期状态信号输出,低电平有效