您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理第二章8086系统结构
第二章8086系统结构8086CPU结构8086引脚8086存储器8086系统配置本章学习要点•寄存器用途•存储器分段•系统配置•时序8086CPU结构16位微处理器结构的特点:1、引脚功能复用。如数据线双向,通过“读/写”控制实现数据的“读”或“写”。3、可控三态电路。微处理器的外部总线,即微型计算机的局部三总线允许同时连接多个部件(如存储器、I/O接口等);这些部件都以可控三态电路与三总线连接,不工作时该三态电路处于高阻状态。4、总线分时复用。2、单总线、累加器结构。“单总线”指微处理器内部总线。AHALBHBLCHCLDHDLSPBPDISI暂存器ALU标志寄存器∑CSDSSS内部寄存器ESIP总线控制电路8086总线(16位)地址总线(20位)数据总线(16位)1234指令队列EU控制器通用寄存器AXBXCXDXALU数据总线(16位)队列总线(8位)执行单元EU总线接口单元BIU8086CPU内部结构8086CPU结构•8086CPU的内部结构由两部分组成:总线接口部件BIU、执行部件EU•BIU:是CPU与内存和I/O接口的信息传送;完成由16bit段地址和16bit偏移地址形成20bit物理地址、总线控制逻辑、完成CPU与内存和I/O接口的信息传送、从内存取指令代码后组成指令队列。负责取指令;存、取操作数。•EU:负责分析指令、执行指令;进行算逻运算、偏移地址计算、向BIU提供指令执行结果的数据和偏移地址。8086CPU寄存器结构寄存器是CPU内部的存储单元,可直接参与CPU的运算(ALU运算和地址运算),其速度比内部存储器快。•通用寄存器•指针和变址寄存器•段寄存器•指令指针•标志寄存器通用寄存器AHDHCLCHBLBHALDLAXBXCXDX累加器基址寄存器计数寄存器数据寄存器存放8位数据、16位数据或地址。八个通用寄存器/四个数据寄存器指针/变址寄存器SP(堆栈指针)BP(基址指针)DI(目的变址)SI(源变址)SP在堆栈操作中指示栈顶的地址。BP是堆栈段操作数的地址或变址寻址的基址。BP、SP用于访问堆栈段的内存。SI、DI用于访问数据/附加段的内存。SI、DI在串操作中分别作为数据/附加段的源地址或目的地址的指针。这四个寄存器只能按16位操作段寄存器存放每一段的起始地址DS(数据段)CS(代码段)ES(附加段)SS(堆栈段)8086/8088有20位地址线,寻址能力为1MB。8086/8088内部寄存器为16位,只能存放16位地址,16位地址的寻址能力为64KB。程序存放的区域,CS×16+IP—取指数据存放的区域,DS×16+SP,BP,SI堆栈操作存放的区域,SS×16+SP—堆栈串操作数据存放的区域,ES×16+BP,DI由段地址(16位)和段内偏移地址(16位)组合成20位数据在内存的物理地址。指令指针寄存器指令指针寄存器IP,存放下一条指令在代码段的段内偏移地址。程序运行中,CPU自动修改IP的内容。有效地址16*CS+IP标志位寄存器标志寄存器PSW,存放运算结果的特征6位状态位,3位控制位OFDFIFTFSFZFAFPFCFCarry进位/借位标志:加减运算时最高位进位/借位,CF=1。Parity奇偶标志:运算结果中有偶数个“1”,PF=1。Auxiliary辅助进位标志:运算后低4位向高位有进位AF=1。Zero零标志:运算后各位全’0’,ZF=1。Sign符号标志:运算后最高位为’1’,SF=1。Overflow溢出标志:加减运算后的结果超出符号数表示范围,OF=1。标志位寄存器Interruptenable中断允许标志:已设置为CPU允许接受外部中断请求,IF=1。Direction方向标志:已设置为串操作指令为自动减1变址,DF=1。Trap单步标志:调试程序时已设置为单步操作。8086系统中逻辑地址的来源如表所示:EA(EffectiveAddress)为有效地址,反映操作数的段内偏移地址。操作类型隐含段基值可替换的段基值偏移地址取指令CS无IP堆栈指令SS无SPBP用作基地址寄存器SSCS、DS、ESEA通用数据读写DSCS、ES、SSEA字符串操作(源地址)DSCS、ES、SSSI字符串操作(目的地址)ES无DI8086CPU的工作模式8086/8088CPU有最小工作模式和最大工作模式之分。最小工作模式:用于单机系统,系统控制信号全部由8086直接提供。最大工作模式:用于多机系统,系统控制信号由另设的总线控制器8288提供。8086CPU引脚功能8086的40条引脚信号按功能可分为4部分:地址总线、数据总线、控制总线以及其它(时钟与电源)。由于受当时工艺的限制,部分管脚采用了分时复用的方式。最小模式下的引脚说明AD15~AD0(AddressDataBus):地址/数据复用信号,双向,三态。在每个总线第一周期,AD15~AD0上为地址信号的低16位A15~A0;数据周期,AD15~AD0上是数据信号D15~D0。A16/S3~A19/S6地址/状态复用信号,三态,输出在每个总线第一周期时,作地址总线的高4位(A19~A16);其余是状态信号。8086访问存储器,用20条地址线;访问I/O,用16条地址线,这4位置“0”。S6:为低电平S5指示中断允许IF状态S4S3当前正在使用的段寄存器00ES01SS10CS或未使用任何段寄存器11DSBHE/S7(BusHighEnable/Status):数据总线高8位使能和状态复用信号,输出在总线第一周期,有效,表示数据线上高8位数据有效。该信号与A0(地址信号最低位)结合,以决定数据字是高字节工作还是低字节工作。其它周期是输出状态信息S7。S7在8086中未定义。BHE同工作方式有关的控制信号MXMXMN/最小/最大方式控制线,用来控制8086的工作方式。当MN/接+5V时,8086处于最小方式;当MN/接地时,8086处于最大方式,构成一个多处理器或协处理器系统。MX脚最大最小脚最大最小28S2IO/M27S1DT/R26S0DEN30RQ/GT0HOLD24QS1INTA31RQ/GT1HLDA25QS0ALE29LOCKWR受工作模式影响的8个引脚、、译码表操作类型(CPU周期)LLL中断响应LLH读I/O端口LHL写I/O端口LHH暂停HLL取指HLH读存储器(数据)HHL写存储器HHH无效(无总线周期)1S2S1S0S0S2S总线周期状态信号:三态、输出R/DTDENIO/M在最小方式下是:、和存储器/IO控制信号:输出、三态=H,访问存储器;=L访问I/O端口。IO/M数据发送/接收信号:输出、三态=H,CPU是进行写操作;=L读操作R/DT数据允许信号:输出、三态,用作系统中总线收发器的允许控制信号。DEN和请求/允许总线访问控制信号:双向,前优先级高在最小方式下,是HOLD和HLDA。HOLD为保持请求信号:输入;HLDA为保持响应信号:输出。0GT/RQ1GT/RQQS1QS0编码含义00无操作01从队列中取第一个字节10队列已空11从队列中取后续字节QS1,QS0:指令队列状态信号:输出在最小方式下是ALE和。ALE是地址锁存允许信号:输出;是中断响应信号:输出、三态。INTAINTALOCK总线优先权锁定信号:输出、三态用来封锁外部处理器的总线请求,输出低电平时,外部处理器不能控制总线;靠LOCK指令在程序中设置。在最小方式下,是信号,输出、三态。WR不受工作模式影响的控制引脚读控制信号:三态、输出READY准备就绪信号:输入。当被访问的部件无法在8086CPU规定的时间内完成数据传送时,该部件向8086CPU发出READY=L,使8086处于等待状态,插入一个或几个等待周期TW;当被访问的部件可以完成数据传输时,被访问的部件将使READY=H(高电平),8086CPU继续运行。RDINTR中断请求信号:输入NMI:不可屏蔽中断请求信号:输入:等待测试控制信号:输入RESET:复位信号:输入。TEST复位后标志寄存器PSW、段寄存器、指令指针IP以及指令队列清零,代码段寄存器CS为FFFFH。CLK:时钟信号,输入VCC:电源5V(5%)VSS:地8086存储器组织一、存储器地址的分段和物理地址形成存储器地址空间1MB,20bit地址线;ALU的运算能力16bit。将整个存储器分为若干个逻辑段,每段内地址16bit,即最多地址空间64KB。段地址0000段内偏移(有效)地址0000物理地址(20bit)16bit16bit20bit二、存储器逻辑地址存储器的物理地址是20位二进制数,无法用十六进制寄存器存放。可以用二个无符号十六进制数按特定方式运算后得到20位物理地址。这二个十六进制数分别是段地址和偏移地址。存储器的任一个物理地址(绝对地址)由段地址和偏移地址(或称段内有效地址EA)组成。物理地址=段基址×16+偏移地址内存IPCSSI、DI、BXDSSP、BPSS数据段堆栈段代码段操作类型隐含段地址替换段地址偏移地址取指令CS无IP堆栈操作SS无SPBP间址SSCS、DS、ES有效地址EA存取变量DSCS、DS、ES有效地址EA源字符串DSCS、DS、ESSI目标字符串ES无DI逻辑地址的来源内存字(16bit)数据地址1422EH。低位低地址,高位高地址H(高8bit)L(低8bit)14230H1422FH1422EH1422DH字节地址字节地址三、字节地址和字地址内存以字节为单位,字节数据(8位)地址就是字节地址。字数据为16位,需二个字节存储。低8位存放在低地址,高8位存放在高地址;字地址为低字节地址。原则上字地址使用偶地址。四、堆栈的概念堆栈是利用RAM区中某一指定区域(由用户规定),用来暂存数据或地址的存储区。堆栈存取数据的原则是“先进后出”,存取数据的方法是压入(PUSH)和弹出(POP)等。堆栈区的栈底是固定的最高地址,其栈顶根据堆栈数据的压入或取出的变化不断改变。栈顶是堆栈区的最低地址,用堆栈指针SP表示。每执行一条PUSH指令,向堆栈压入16bit数据,每执行一条POP指令,从堆栈弹出16bit数据,SP=(SP)-2。SP=(SP)+2。(AX)=9536H(BX)=0475H(AX)=0475H(BX)=9536H1、MOVSP,0100H2、PUSHAX3、PUSHBX4、POPAX5、POPBX例:执行压栈和出栈的过程00FAH00FBH00FCH00FDH00FEH00FFH0100H00H00H00H00H00H00H00H0100H1、设栈底(SP)=0100H00H2、(AH)→00FFH(AL)→00FEH(SP)-2→SP(SP)=00FEH36H95H00FEH3、(BH)→00FDH(BL)→00FCH(SP)-2→SP(SP)=00FCH75H04H00FCH00FEH4、(00FCH)→AL(00FDH)→AH(SP)+2→SP(SP)=00FEH00FCH00FEH75H04H5、(00FEH)→BL(00FFH)→BH(SP)+2→SP(SP)=0100H00FEH36H95H0100H8086最小系统配置82848282*38286I/O接口VccVccRESCLKMN/MXRDWRIO/MALEAD0-AD15DT/RDENINTAINTRREADYRESET8086CPUSTBTOEOEA16-A19数据总线存储器地址总线20位16位8086CPU时序指令周期、总线周期和时钟周期指令周期(InstructionCycle):执行一条指令所需要的时间。(一个指令周期由一个或若干个总线周期组成)总线周期(BusCycle):CPU从存储器或I/O端口存取一个字节的时间,即完成一个基本动作所需的时间。时钟周期(ClockCycle):时钟频率的倒数,是CPU的时间基准(T状态)(8086的主频为5MHZ,一个时钟周期为200ns)一个总线周期一般由四个T组成。T1:输出地址;T2、T3:传送数据。若存储器或外设速度慢,可插入等待周期Tw
本文标题:微机原理第二章8086系统结构
链接地址:https://www.777doc.com/doc-3177955 .html