资源预览内容
第1页 / 共60页
第2页 / 共60页
第3页 / 共60页
第4页 / 共60页
第5页 / 共60页
第6页 / 共60页
第7页 / 共60页
第8页 / 共60页
第9页 / 共60页
第10页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章8086体系结构,8086CPU结构 8086系统的结构和配置,2.18086CPU结构,8086CPU的内部结构 8086CPU的寄存器结构 8086CPU的管脚及功能,8086CPU的内部结构组成 8086CPU由两部分组成: 指令执行部件(EU,Execution Unit) 总线接口部件(BIU,Bus Interface Unit),一、 8086CPU的内部结构,8086CPU的内部结构,执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。,总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或IO端口读取操作数参加EU运算或存放运算结果等。,EU和BIU的操作原则,lBIU中的指令队列有2个或2个以上字节为空时,BIU自动启动总线周期,取指填充指令队列。直至队列满,进入空闲状态。 lEU每执行完一条指令,从指令队列队首取指。系统初始化后,指令队列为空,EU等待BIU从内存取指,填充指令队列。 lEU取得指令,译码并执行指令。若指令需要取操作数或存操作结果,需访问存储器或I/O,EU向BIU发出访问总线请求。,l当BIU接到EU的总线请求,若正忙(正在执行取指总线周期),则必须等待BIU执行完当前的总线周期,方能响应EU请求;若BIU空闲,则立即执行EU申请总线的请求。 lEU执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,BIU根据本条指令执行情况重新取指和填充指令队列。 l空闲状态,8086CPU与一般CPU区别,一般CPU工作方式 8086CPU工作方式,取指,执指,取指,执指,取指,执指,取指,执指,取指,执指,取指,执指,通用寄存器 段寄存器 标志寄存器FR 指令指针寄存器IP,二、 8086CPU的寄存器结构,1、 通用寄存器 指令执行部件(EU)设有8个通用寄器 AX BX CX DX SP BP SI DI,BH BL,CH CL,DH DL,AH AL,AX BX CX DX SI DI BP SP,通用寄存器 AX(Accumulator Register) 累加器一般用来存放参加运算的数据和结果,在乘、除法运算、I/O操作、BCD数运算中有不可替代的作用。 BX(Base Register) 基址寄存器除可作数据寄存器外,还可放内存的逻辑偏移地址,而AX,CX,DX则不能。,CX(Counter) 将它称作计数寄存器,是因为它既可作数据寄存器,又可在串指令和移位指令中作计数用。 DX(Data Register) DX除可作通用数据寄存器外,还在乘、除法运算、带符号数的扩展指令中有特殊用途。,SI(Source Index) 源变址寄存器多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中,也可放数据。 DI(Destination Index) 目标变址寄存器多用于存放内存的逻辑偏移地址,隐含的逻辑段地址在DS寄存器中也可放数据。,BP(Base Pointer) 基址指针用于存放内存的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中。 SP(Stack Pointer ) 堆栈指针用于存放栈顶的逻辑偏移地址,隐含的逻辑段地址在SS寄存器中。,寄存器的特殊用途和隐含性质 在指令中没有明显的标出,而这些寄存器参加操作,称之为“隐含寻址”。 具体的:在某类指令中,某些通用寄存器有指定的特殊用法,编程时需遵循这些规定,将某些特殊数据放在特定的寄存器中,这样才能正确的执行这些指令。采用“隐含”的方式,能有效地缩短指令代码的长度。,2、段寄存器 总线接口部件BIU设有4个16位段寄存器 CS(Code Segment),代码段寄存器中存放程序代码段起始地址的高16位。 DS(Data Segment),数据段寄存器中存放数据段起始地址的高16位。 SS(Stack Segment),堆栈段寄存器中存放堆栈段起始地址的高16位。 ES(Extended Segment),扩展段寄存器中存放扩展数据段起始地址的高16位。,3、标志寄存器FR,标志寄存器FR中共有9个标志位,可分成两类: 状态标志 表示运算结果的特征,它们是 CF、PF、AF、ZF、SF和OF 控制标志 控制CPU的操作,它们是IF、 DF和TF。,标志寄存器FR,FR中的状态标志,CF(Carry Flag):进位标志位 CFl,表示本次运算中最高位(D15或D7)有进位(加法运算时)或有借位(减法运算时)。CF标志可通过STC指令置位,通过CLC指令复位(清除进位标志),还可通过CMC指令将当前CF标志取反。 PF(Parity Flag):奇偶校验标志位 PF1,表示本次运算结果中有偶数个“l”,PF0,表示本次运算结果中有奇数个“1”。,AF(Auxiliary Carry Flag):辅助进位标志位。AFl,表示运算结果的8位数据中,低4位向高4位有进位(加法运算时)或有借位(减法运算时),这个标志位只在十进制运算中有用。 ZF(Zero Flag):零标志位 ZF1,表示本次运算结果为零,否则即运算结果非零时,ZF0。,SF(Sign Flag):符号标志 SF1,表示本次运算结果的最高位(第7位或第15位)为“l”,否则SF0。 OF(Overflow F1ag):溢出标志,FR寄存器的控制标志,IF(Interrupt Flag):中断标志位 IF1,表示允许CPU响应可屏蔽中断。IF标志可通过STI指令置位,也可通过CLI指令复位。 DF(Direction Flag):方向标志位 在串操作指令中,若DF0,表示串操作指令地址指针自动增量;DF1,表示地址指针自动减量。DF标志位可通过STD指令置位,也可通过CLD指令复位。 TF(Trap Flag):单步标志位,4、指令指针寄存器 IP IP :BIU要取指令的地址。,三、8086CPU的管脚及功能 8086是16位CPU。它采用高性能的N沟道,耗尽型负载的硅栅工艺(HMOS)制造。由于受当时制造工艺的限制,部分管脚采用了分时复用的方式,构成了40条管脚的双列直插式封装,1、 8086的两种工作方式 最小模式:系统中只有8086一个处理器,所有的控制信号都 是由8086CPU产生(MN/MX=1)。 最大模式:系统中可包含一个以上的处理器,比如包含协处 理器8087。在系统规模比较大的情况下,系统控 制信号不是由8086直接产生,而是通过与8086配 套的总线控制器等形成(MN/MX=0)。,最小模式下的引脚说明 (1) AD15AD0 (Address Data Bus): 地址/数据复用信号,双向,三态。在T1状态(地址周期)AD15AD0上为地址信号的低16位A15A0;在T2 T3状态(数据周期)AD15AD0 上是数据信号D15D0。,三总线结构 数据线DB 地址线AB 控制线CD,(2) A19/S6A16/S3 (Address/Status): 地址/状态复用信号,输出。在总周期的T1状态A19/S6A16/S3上是地址的高4位。在T2T4状态,A19/S6A16/S3上输出状态信息。,(3)BHE# /S7 (Bus High Enable/Status): 数据总线高8位使能和状态复用信号,输出。在总线周期T1状态,BHE#有效,表示数据线上高8位数据有效。在T2T4状态BHE # /S7 输出状态信息S7。S7在8086中未定义。,(4) RD# (Read) 读信号, 三态输出,低电平有效,表示当前CPU正在读存储器或IO端口。 (5) WR# (Write) 写信号,三态输出,低电平有效,表示当前CPU正在写存储器或IO端口。 (6)MIO# (MemoryIO ) 存储器或IO端口访问信号。三态输出,MIO#为高电平时,表示当前CPU正在访问存储器,MIO# 为低电平时,表示当前CPU正在访问IO端口。,(7)READY 准备就绪信号。由外部输入,高电平有效,表示CPU访问的存储器或IO端口己准备好传送数据。当READY无效时,要求CPU插入一个或多个等待周期Tw,直到READY信号有效为止。,(8)INTR( Interrupt Request) 中断请求信号,由外部输入,电平触发,高电平有效。INTR有效时,表示外部设备向CPU发出中断请求,CPU在每条指令的最后一个时钟周期对INTR进行测试,一旦测试到有中断请求,并且当中断允许标志IF1时,则暂停执行下条指令转入中断响应周期。,(9)INTA# (Interrupt Acknowledge) 中断响应信号。向外部输出,低电平有效,表示CPU响应了外部发来的INTR信号。 (10) NMI( NonMaskable Interrupt Request) 不可屏蔽中断请求信号。由外部输入,边沿触发,正跳沿有效。CPU一旦测试到NMI请求信号,待当前指令执行完就自动从中断入口地址表中找到类型2中断服务程序的入口地址,并转去执行。,(11)TEST# 测试信号。由外部输入,低电平有效。当CPU执行WAIT指令时(WAIT指令是用来使处理器与外部硬件同步),每隔5个时钟周期对TEST进行一次测试,若测试到该信号无效,则CPU继续执行WAIT指令,即处于空闲等待状态;当CPU测到TEST输入为低电平时,则转而执行WAIT的下一条指令。由此可见,TEST对WAIT指令起到了监视的作用。,(12)RESET 复位信号。由外部输入,高电平有效。RESET信号至少要保持4个时钟周期,CPU接收到该信号后,停止进行操作,并对标志寄存器(FR)、IP、DS、SS、ES及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序,由此可见,采用8086CPU计算机系统的启动程序就保持在开始的存储器中。,(13)ALE(Address Latch Enable) 地址锁存使能信号,输出,高电平有效。用来作为地址锁存器的锁存控制信号。 (14)DEN# (Data Enable) 数据使能信号,输出,三态,低电平有效。用于数据总线驱动器的控制信号。,(15)DT/R#(Data Transmit/Receive): 数据驱动器数据流向控制信号,输出,三态。在8086系统中,通常采用8286或8287作为数据总线的驱动器,用DT/R#信号来控制数据驱动器的数据传送方向。当DT/R#1时,进行数据发送;DT/R#0时,进行数据接收。,(16)HOLD(Hold Request) 总线请求信号。由外部输入,高电平有效器向CPU请求使用总线。 (17)HLDA(Hold Acknowledge) 共享总线的处理总线请求响应信号。向外部输出,高电平有效。,(18)MN/MX(Minimum/Maximum Mode Control): 最大最小模式控制信号,输入。MN/MX1(5V),CPU工作在最小模式。MN/MX0(接地), CPU则工作在最大模式。 (19)GND 地。 (20) VCC 电源,接5V。,最大模式下的引脚说明 当8086CPU工作在最大模式系统时,有8个管脚重新定义 。 (1)S2#、S1#、S0#(Bus Cycle Status,最小模式为M/IO#、D/TR#、DEN#): 总线周期状态信号,输出。这三个信号的组合表示当前总线周期的类型。在最大模式下,由这三个信号输入给总线控制器8288,用来产生存储器、I/O的读写等
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号