您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理第2章 8086系统结构
第2章8086系统结构2.18086CPU结构2.28086系统的结构和配置2.38086CPU内部时序AHALBHBLCHCLDHDLSPBPDISIAXBXCXDX通用数据寄存器指针和变址寄存器CSDSSSESIP内部寄存器总线控制电路8086总线AB(20位)(16位)(16位)DBS123456数据总线暂存寄存器标志寄存器ALU队列总线(16位)EU控制电路(16位)通用寄存器指令队列地址加法器指令执行部件(EU)总线接口部件(BIU)2.18086CPU结构2.1.18086CPU的内部结构8086CPU由两部分组成:指令执行部件、总线接口部件。指令执行部件EU(ExecutionUnit)主要由算术逻辑运算单元ALU、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成。其主要功能是执行指令。总线接口部件BIU(BusInterfaceUnit)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成。其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。一旦指令队列空出2个及以上字节时,BIU自动启动总线周期,取指填充指令队列,直至队列满,进入空闲状态。EU从指令队列队首取指,译码并执行指令。若指令需要取操作数或存操作结果,需访问存储器或I/O,EU向BIU发出访问总线请求。当BIU接到EU的总线请求,若正忙(正在执行取指总线周期),则必须等待BIU执行完当前的总线周期,方能响应EU请求;若BIU空闲,则立即执行EU申请总线的请求。系统初始化后,指令队列为空,EU等待BIU从内存取指,填充指令队列。EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,BIU根据本条指令执行情况重新取指和填充指令队列。8086CPU与一般CPU的区别一般CPU工作方式:8086CPU工作方式:取指执指取指执指取指执指取指执指取指执指取指执指取指BIUEU2.1.28086CPU的寄存器结构通用寄存器段寄存器标志寄存器FR指令指针寄存器IP1.通用寄存器指令执行部件EU设有8个16位通用寄存器,分为两组。通用数据寄存器:AX、BX、CX、DX,也可拆分为两个8位寄存器来使用(一般存放8位数据)。指针和变址寄存器:SP、BP、DI、SI,主要用来存放内存或I/O的地址。BHBLCHCLDHDLAHAL(Accumulator)AX(Base)BX(Counter)CX(Data)DX(StackPointer)SP(BasePointer)BP(DestinationIndex)DI(SourceIndex)SI累加器:可存参加运算的数据和结果基址寄存器:可存内存的逻辑偏移地址(DS)计数寄存器:可在串/移位指令中作计数用数据寄存器:在算术运算指令中有特殊用途堆栈指针:存内存的逻辑偏移地址(SS)基址指针:存内存的逻辑偏移地址(SS)目标变址寄存器:存内存的逻辑偏移地址(DS)源变址寄存器:存内存的逻辑偏移地址(DS)寄存器的隐含性质:在指令中没有明显标出,而这些寄存器参加操作,称之为“隐含寻址”,可有效缩短代码长度。寄存器名特殊用途隐含性质在输入输出指令中作数据寄存器用不能隐含AX,AL在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商隐含AH在LAHF指令中,作目标寄存器用隐含在BCD数运算指令中作累加器用隐含AL在XLAT指令中作累加器用隐含在间接寻址中作基址寄存器用不能隐含BX在XLAT指令中作基址寄存器用隐含CX在串操作指令和LOOP指令中作计数器用隐含CL在移位/循环移位指令中作移位次数计数器用不能隐含在字乘法/除法指令中存放乘积高位或被除数高位或余数隐含DX在间接寻址的输入输出指令中作地址寄存器用不能隐含在串操作指令中作源变址寄存器用隐含SI在间接寻址中作变址寄存器用不能隐含在串操作指令中作目标变址寄存器用隐含DI在间接寻址中作变址寄存器用不能隐含BP在间接寻址中作基址指针用不能隐含SP在堆栈操作中作堆栈指针用隐含2.段寄存器总线接口部件BIU设有4个16位段寄存器。CS(CodeSegment):代码段寄存器。存放当前代码段的段基址(即段起始地址的高16位)。DS(DataSegment):数据段寄存器。存放当前数据段的段基址。SS(StackSegment):堆栈段寄存器。存放当前堆栈段的段基址。ES(ExtendedSegment):扩展段寄存器/附加段寄存器。存放辅助数据所在段的段基址。在串操作指令中存放目的串所在段的段基址。3.标志寄存器指令执行部件EU设有1个16位标志寄存器FR(FlagRegister),规定了9个标志位,可分成两类。状态标志:用来表示运算结果的特征,它们是CF、PF、AF、ZF、SF和OF。控制标志:用来控制CPU的操作,它们是TF、IF和DF。溢出标志(Overflow)1514131211109876543210OFDFIFTFSFZFAFPFCF方向标志(Direction)中断允许标志(InterruptEnable)进位标志(Carry)单步标志(Trap)奇偶校验标志(Parity)辅助进位标志(AuxiliraryCarry)零标志(Zero)符号标志(Sign)FlagRegisterCF(CarryFlag):进位标志位。CF=l表示本次运算中最高位(D15或D7)有进位(加法运算时)或有借位(减法运算时)。CF标志可通过STC指令置位,通过CLC指令复位,还可通过CMC指令将当前CF标志取反。PF(ParityFlag):奇偶校验标志位。PF=1表示本次运算结果中有偶数个“l”,PF=0表示有奇数个“1”。AF(AuxiliaryCarryFlag):辅助进位标志位。AF=l表示运算结果的8位数据中,低4位向高4位有进位(加法运算时)或有借位(减法运算时),此标志位只在BCD数运算中有用。ZF(ZeroFlag):零标志位。ZF=1表示本次运算结果为0。SF(SignFlag):符号标志位。SF=1表示本次运算结果的最高位(第7位或第15位)为“l”,否则SF=0。OF(OverflowF1ag):溢出标志位。OF=1表示本次运算结果产生溢出。对于编程者,OF仅对带符号数有意义。FR中的状态标志TF(TrapFlag):单步标志位。TF=l表示控制CPU进入单步工作方式,即CPU每执行完一条指令就自动产生一次内部中断。对TF标志的设定和清除没有专用指令,但可用编程间接达到目的。IF(InterruptFlag):中断标志位。IF=1表示允许CPU响应可屏蔽中断。IF标志可通过STI指令置位,也可通过CLI指令复位。DF(DirectionFlag):方向标志位。在串操作指令中,若DF=0,表示串操作指令地址指针自动增量;DF=1,表示地址指针自动减量。DF标志位可通过STD指令置位,也可通过CLD指令复位。FR中的控制标志4.指令指针寄存器IP(InstructionPointer):指令指针寄存器。IP是一个16位寄存器,用于存放BIU要取指令的偏移地址。IP中的内容可由BIU自动修改,总是指向下一条待执行的指令。在正常执行过程中,IP中存有BIU要取出的下一条指令的偏移地址。当IP的内容被保存到堆栈中去时,IP会自动调整成指向要执行的下一条指令。用户程序不能直接访问IP,但可通过某些指令(如转移类指令)修改IP的内容。GND1AD142AD133AD124AD115AD106AD97AD88AD79AD610AD511AD412AD313AD214AD115AD016NMI17INTR18CLK19GND2040VCC39AD1538A16/S337A17/S436A18/S535A19/S634BHE/S733MN/MX32RD31HOLD(RQ/GT0)30HLDA(RQ/GT1)29WR(LOCK)28M/IO(S2)27DT/R(S1)26DEN(S0)25ALE(QS0)24INTA(QS1)23TEST22READY21RESETV52.1.38086CPU的管脚及功能8086是16位CPU,外形为40脚的双列直插式。它采用高性能的N沟道、耗尽型负载的硅栅工艺(HMOS)制造。8086有两种工作方式(有8个管脚具有不同功能):最小模式:MN/MX=1,系统中只有8086一个处理器。最大模式:MN/MX=0,系统中可包含两个及以上的处理器,需有总线控制器。1.最小模式下的引脚说明AD15~AD0(AddressDataBus):地址/数据复用信号(三态双向)。在T1状态(地址周期)输出地址信号的低16位A15~A0;在T2~T3状态(数据周期)传输数据信号D15~D0。A19/S6~A16/S3(Address/Status):地址/状态复用信号(三态输出)。在T1状态输出地址信号的高4位A19~A16,与A15~A0构成20位物理地址,可访问1MB的存储空间;在T2~T4状态输出状态信息S6~S3。其中,S6恒等于0;S5指示当前中断允许标志IF的状态;S4、S3的组合指出当前使用的段寄存器名。S4S3段寄存器00ES01SS10CS或未使用任何段寄存器11DSBHE/S7(BusHighEnable/Status):总线高位有效/状态复用信号(三态输出)。在T1状态BHE/S7输出低电平表示高8位总线上的数据有效;在T2~T4状态输出状态信号S7(在8086中未定义)。BHE与AD0配合指出当前总线的使用情况。RD(Read):读信号(三态输出,低电平有效),表示当前CPU正在读存储器或I/O端口。WR(Write):写信号(三态输出,低电平有效),表示当前CPU正在写存储器或I/O端口。M/IO(Memory/IO):存储器或I/O端口访问信号。高电平表示当前CPU正在访问存储器;低电平表示访问I/O端口。BHEAD0总线的使用情况0016位总线上进行字传输01高8位总线上进行字节传输10低8位总线上进行字节传输11无效READY:准备就绪信号(输入,高电平有效)。READY有效时,表示CPU访问的存储器或I/O端口已准备好传送数据;当READY无效时,要求CPU插入若干个等待状态Tw,直到READY信号有效为止。INTR(InterruptRequest):可屏蔽中断请求信号(输入,高电平有效)。INTR有效表示外部设备向CPU发出中断请求,CPU在每条指令的最后一个时钟周期测试INTR,一旦测到INTR=1,且IF=1,则转入中断响应周期。INTA(InterruptAcknowledge):中断响应信号(输出,低电平有效),表示CPU响应了外部发来的INTR信号。NMI(Non-MaskableInterruptRequest):不可屏蔽中断请求信号(输入,边沿触发,正跳沿有效)。CPU一旦测试到NMI请求信号,待当前指令执行完就自动从中断入口地址表中找到类型2中断服务程序的入口地址,并转去执行。TEST:测试信号(输入,低电平有效)。当CPU执行WAIT指令时(WAIT指令用来使处理器与外部硬件同步),每隔5个时钟周期对TEST进行一次测试,若测试到该信号无效,则CPU继续执行WAIT指令,即处于空闲等待状态;当CPU测到TEST输入为低电平时,则转而执行WAIT的下一条指令。可见,TEST对WAIT指令起到了监视的作用。RESET:复位信号(输入,高电平有效)。RESET信号至少要保持4个时钟周期,CPU接收到该信号后,停止进行操作,并对标志寄存器FR、指令指针IP、DS、SS、ES及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序。ALE(AddressLatchEnable):地址锁存使能信号(输出,高电平有效),作
本文标题:微机原理第2章 8086系统结构
链接地址:https://www.777doc.com/doc-4099042 .html