1 / 36

第二章 8086 系统结构

第二章 8086 系统结构. 2-1 8086CPU 结构. 2-2 8088/8086 的存储器组织. 2-3 8086 的系统配置及引脚功能. 2-4 8086CPU 时序. 习题: 2-5 ( 1 , 3 , 5 ), 2-7 , 2-9 , 2-10. 2-1 8086CPU 结构. 第二章 8086 系统结构. 属第三代微处理器 运算能力: 数据总线: DB - 16bit ( 8086 ) / 8bit ( 8088 ) 地址总线: AB - 20bit

genero
Télécharger la présentation

第二章 8086 系统结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 8086系统结构 2-1 8086CPU结构 2-2 8088/8086的存储器组织 2-3 8086的系统配置及引脚功能 2-4 8086CPU时序 习题:2-5(1,3,5),2-7,2-9,2-10

  2. 2-1 8086CPU结构 第二章 8086系统结构 属第三代微处理器 运算能力: 数据总线:DB-16bit(8086)/ 8bit(8088) 地址总线:AB-20bit 内存寻址能力220=1MB 一、 8086CPU的内部结构

  3. 1.总线接口部件BIU(Bus Interface Unit) 组成:16位段寄存器,指令指针,20位地址加法器,总线控制逻辑,6字节指令队列。 作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作数送EU单元去执行。 工作过程:由段寄存器与IP形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给定的地址从存储器中取出指令,送到指令队列中等待执行。 *当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU重新取新地址中的指令代码,送入指令队列。 *指令指针IP由BIU自动修改,IP总是指向下一条将要执行指令的地址。

  4. 2.指令执行部件EU(Execution Unit) 组成: ALU ,标志寄存器,寄存器组,EU控制系统等。 作用:完成指令的译码和执行指令的工作 工作过程:从队列中取得指令,进行译码若执行指令需要访问存储器或I/O端口,则EU将操作数的偏移地址送给BIU,由BIU取得操作数送给EU。根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。

  5. 3. 8086CPU结构的特点: 减少了CPU为取指令而等待的时间,提高了CPU的运行速度。

  6. 二、 8088/8086的寄存器结构 8088/8086有14个16位寄存器 1. 通用寄存器组 2. 指针/变址寄存器 3. 2个控制寄存器 4. 4个段寄存器

  7. 1. 通用寄存器组 *各寄存器隐含用法 * 4个16位的数据寄存器 (AX,BX,CX,DX)寄存器既可存放数据,也可存放地址。 * 既可作为16位寄存器也可作为8位寄存器使用。(例:AH,AL) 8bit寄存器只能存放数据。

  8. 2. 指针及变址寄存器(SP,BP,SI,DI) * BP,SP寄存器称为指针寄存器,与SS联用。 * DI,SI寄存器称为变址寄存器,与DS联用,在串指令中,SI,DI均为隐含寻址,此时,SI与DS联用, DI与ES联用。

  9. 3. 指令指针和状态寄存器 (1) 指令指针I P是一个16位的专用寄存器。当BIU从内存中取出一条指令,自动修改IP,始终指向下一条将要执行的指令在现行代码段中的偏移量。 8086/8088中的某些指令执行后会改变IP的内容,但用户不能编写指令直接改变IP 的内容。 * I P是指令地址在代码段内的偏移量(又称偏移地址),IP要与CS配合构成共同物理地址。 (2) 标志寄存器PSW(FLAGS) PSW 是一个16位的专用寄存器(6位状态位,3位控制位)存放运算结果的特征。

  10. D15 D11 D8 D6 D4 D2 D0 CF(进位标志): 当运算结果的最高位(D7/D15)出现进位(借位)时,CF=1;(STC置位,CLC复位,CMC取反) PF(奇偶校验标志):当运算结果中“1”的个数为偶数时,PF=1; AF(辅助进位标志):当结果的D3向D4(低位字节)出现进位(借位)时,AF=1; ZF (零标志): 当运算结果为零时,ZF=1; SF (符号标志): 当运算结果的最高位D7/D15为1时,SF=1; OF (溢出标志):当运算结果超过机器所能表示的范围时,OF=1; DF(方向标志):在字符串操作时,决定操作数地址调整的方向,DF=1,为递减;(STD, CLD) IF (中断允许标志): IF=1,允许CPU响应外部的可屏蔽中断;(STI,CLI) TF (单步标志):当TF=1,CPU每执行一条指令便自动产生一个内部中断, 在中断服务程序中可检查指令执行情况。

  11. 4. 段寄存器 4个16位段寄存器,给出相应逻辑段的首地址,或称为段基址。 * CS(代码段寄存器)指向当前的代码段,指令由此段 取出; *SS (堆栈段寄存器)指向当前的堆栈段,栈操作的对象 是该段存储单元的内容; *DS(数据段寄存器)指向当前的数据段,该段中存放程 序的操作数; *ES (附加段寄存器)指向当前的附加段,主要用于字符 串数据的存放,也可以用于一般数据 的存放。

  12. 2-2 8088/8086的存储器组织 一、存储器地址的分段 1.存储器地址的分段 矛盾:存储器地址空间1MB,20bit地址线;内部各寄存器和数据总线均为16bit。 解决方法:将整个存储空间分为若干个逻辑段,每段内地址16bit,即最多地址空间64KB。 允许各逻辑段在整个存储空间浮动,段与段之间可以是连续的,也可以是分开的或重叠的。

  13. 00000H 逻辑段1起点 逻辑段1<=64KB 逻辑段2起点 逻辑段2<=64KB 逻辑段3起点 逻辑段3<=64KB 逻辑段4起点 逻辑段4<=64KB FFFFFH 每个段的起始地址必须能被16整除(XXXX0H) 程序执行前,分别对相应的段寄存器CS,DS,SS,ES置“段基值”,若程序长度大于64KB,则可通过对CS送新的“段基值”将程序转移到新段中。

  14. 段地址0000 段内有效地址 + 物理地址(20bit) 16bit 16bit 20bit 2. 20位物理地址的形成 逻辑地址:允许在程序中编排的地址; 物理地址:信息在存储器中实际存放的地址;00000~FFFFFH 对给定的任一存储单元,有两部分逻辑地址: 段基址(段地址)——由CS,DS,SS,ES决定 偏移地址(段内有效地址)——从段地址开始的相对偏移 位置 物理地址=段基址*16+偏移地址

  15. 操作类型 隐含段地址 替换段地址 偏移地址 取指令 CS 无 IP 堆栈操作 SS 无 SP BP间址 SS CS、DS、ES EA 存/取操作数 DS CS、SS、ES EA 源字符串 DS CS、SS、ES SI 目的字符串 ES 无 DI 3. 逻辑地址的来源; EA---有效地址,

  16. 二、8086存储器的分体结构 在8088CPU系统中,外部数据总线为8位,在存储器地址空间中数据存储格式以字节(8bit)为单位组织存储的,CPU访问一次存储器,只读写一个字节,读写一个字要两次访问存储器。 而8086CPU的数据总线为16位,CPU除了可以对一个字节寻址外,还必须能进行一个字的读写。即:如何组织数据存储格式使CPU访问一次存储器,获得一个字的数据。

  17. D15 D8 D7 D0 00001 00000 00003 00002 00005 00004 512K*8bit A0=1 512K*8bit A0 =0 FFFFF FFFFE (3)用地址线A0和BHE信号选择存储体 硬件条件: (1)将1M的存储空间分成两个存储体:偶地址和奇地址存储体 (2)将数据总线的低8位与偶地址存储体数据线相连,数据总线的高8位与奇地址存储体数据线相连。

  18. A1—A19 地址 锁存 器 8086 A0—A19 偶 存储 体 奇 存储 体 A0 D8—D15 D0—D7 BHE A0 操作 总线使用情况 0 0 从偶地址开始读/写一个字 AD15--AD0 0 1 从奇地址开始读/写一个字节 AD15--AD8 1 0 从偶地址开始读/写一个字节 AD7--AD0 1 1 无效 BHE BHE

  19. 1422DH 1422EH L(低8bit) 字节地址 字节地址 H(高8bit) 1422FH 字(16bit)数据地址1422EH 低位在低地址,高位在高地址 14230H 数据存放格式: 存储器二个连续字节组成一个字,一个字中的每一个字节都有各自的字节地址。存入时以低位字节在低地址,高位字节在高地址的次序存放,字单元的地址以低位地址表示。若要求8086在一个总线周期访问一个整字(16位)时,则该字的地址为偶地址(“对准存放”)。如果则该字的地址为奇地址(“未对准存放”),则8086要用两个连续的总线周期访问一个整字,每个周期访问一个字节。

  20. 三、堆栈的概念 堆栈是利用RAM区中某一指定区域(由用户规定),用来暂时保存数据或地址的存储区。堆栈段是由段定义语句在内存中定义的一个段,段基址由SS指定。堆栈的地址增长方式是由高向低增长。 堆栈的工作方式是“先进后出”,存取数据的方法是压入(PUSH)和弹出(POP)。 堆栈区的栈底是固定的最高地址,其栈顶根据堆栈数据的压入或取出的变化不断改变。栈顶是堆栈区的最低地址,用堆栈指针SP指示。堆栈以字为单位进行操作。 每执行一条PUSH指令, SP=SP-2,向堆栈压入16bit数据。( SP)=低字节;( SP+1)=高字节 每执行一条POP指令,从堆栈弹出16bit数据, SP=SP+2。

  21. (AX)=9536H (BX)=0475H 36H 95H (AX)=0475H (BX)=9536H 00FAH 00FBH 00FCH 00FDH 00FEH 00FFH 0100H 4、(00FCH)→ AL (00FDH)→AH (SP)+2→SP (SP)=00FEH 2、 (SP)-2→SP (AH)→00FFH (AL)→00FEH (SP)=00FEH 3、 (SP)-2→SP (BH)→00FDH (BL)→00FCH (SP)=00FCH 75H 04H 75H 36H 04H 95H 5、 (00FEH) →BL (00FFH) →BH (SP)+2→SP (SP)=0100H 1、设栈底 (SP)=0100H 例:执行入栈和出栈的过程 1、MOV SP,0100H 2、PUSH AX 3、PUSH BX 4、POP AX 5、POP BX

  22. 一、 最小模式系统(MN/ MX引脚接+5V电源) 2-3 8086的系统配置及引脚功能 8086CPU是16位处理器,采用40引脚的DIP封装。40条引脚信号按功能可分为4部分:地址总线,数据总线,控制总线以及其他(时钟、电源,地线)。 特点:系统中存储器芯片,I/O芯片不多; 地址总线由AD0~AD15,A16/ S3 ~A19/ S6通过8282锁存器构成; 数据总线直接由AD0~AD15构成(也可加总线驱动8286); 控制总线由CPU的控制线提供,构成一小型、单处理机系统。

  23. Vcc A -A 16 19 Vcc MN/MX RD WR CLK 8284 IO/M READY INTA 时钟 发生器 RESET INTR 地址总线 ALE STB 8086 CPU 8282 OE AD -AD 0 15 存储器 I/O接口 在最小模式系统中,还需加入: 1片8284A 3片8282/8283 2片8286/ 8287 BHE BHE 数据总线 DT/R T 8286 DEN OE 8086最小组态系统配置图

  24. 二、 最大模式(组态)系统(MN/ MX引脚接地) 8086最大组态系统配置图 系统控制信号由总线控制器8288提供, 用于多处理机和协处理机结构中。 8288为总线控制器,输入8086的总线状态信号,输出总线命令和控制信号。 8289为总线裁决器,用于裁决哪个处理器拥有对总线的使用权。

  25. 状态线S2、S1、S0的编码 性能 S2 S1 S0 0 0 0 中断响应 I/O 0 0 1 读 端口 I/O 0 1 0 写 端口 H alt 0 1 1 暂停 1 0 0 取指 1 0 1 读存储器 1 1 0 写存储器 1 1 1 无源

  26. 共用信号线

  27. * 8088的指令队列长度为4个字节,队列中出现1个空闲字节时,BIU自动访问存储器取指令补充指令队列; *8088的地址/数据复用线为8条,即AD7~AD0,访问1个字需两个读写周期; * 8088 中的存储器/IO控制线为 IO /M ,与8086相反; * 8086的引脚BHE/S7在8088中为SS0 ,与DT/ R、IO/M一起决定最小模式中的总线周期操作。 三、 8088CPU与8086的不同之处

  28. 2-4 8086CPU时序 一. 指令周期、总线周期、时钟周期 指令周期(Instruction Cycle): 执行一条指令所需要的时间。 (一个指令周期由一个或若干个总线周期组成) 总线周期(Bus Cycle ): CPU完成对存储器或I/O端口一次访问所需的时间; 时钟周期(Clock Cycle):时钟频率的倒数,是CPU的时间基准(T状态);(若8086的主频为5MHZ,一个时钟周期为200ns)

  29. T4 T1 T2 T3 Tw Tw T4 T1 T2 总线周期 一个总线周期至少由四个T状态(T1~T4)组成。 T1:输出地址;T2、T3:传送数据。若存储器或外设速度慢,可插入等待周期Tw 若一个总线周期后不执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态,此时执行空闲周期。

  30. 二. 几种基本时序 1. 读总线周期 地址A19---A0 M / IO :在整个读周期有效, 0=I/O读,1=M读; ALE:T1状态出现正脉冲, 下降沿锁存地址信息; RD: 在T2-T3状态有效; DT/ R:在整个总线周期为低 电平,表示读周期; DEN:在T2-T3期间为低电 平,表示数据有效。 存储器读时序

  31. 存储器读时序说明 1、T1开始(T1下降沿) M/ IO=1,存储器操作 20位地址信号输出,BHE信号有效 ALE=1, DT/R=0允许CPU读入 3、T2开始 RD=0,存储器开始读 DEN=0,DB上允许数据有效 4、T4开始 DB上数据稳定。RD、DEN恢复为1,CPU获得数据 5、T4结束 DT/R=1,存储器读周期结束 2、T1上升沿 ALE=0锁存地址信号A19~A0,

  32. 具有等待状态的存储器读时序 8086在T3状态的的前沿采样READY线,若发现其为低,则在T3周期结束后,插入一个Tw状态。以后在每个Tw周期的前沿采样READY线,只有在发现它为高电平时,才在这个Tw结束后进入T4周期。 具有等待状态的存储器读时序

  33. WR:在T2~T4期间WR有效; DT/R:在整个总线周期内为高,表示写周期,在接有数据收发器的系统中,用来控制数据传输方向。 2. 存储器写周期 存储器写时序与存储器读时序相似,其不同点在于: AD15 ~ AD0:在T2~T4期间CPU送上欲输出的数据,而无高阻态; 存储器写时序

  34. 存储器写时序说明 1、T1开始 M/ IO=1,存储器操作 20位地址信号输出,BHE信号有效 ALE=1, DT/R=1,CPU输出 3、T2开始 WR=0,存储器开始写 DEN=0,DB上允许数据有效 4、T4开始 数据已写至存储器 WR、DEN恢复为1 2、T1上升沿 ALE=0锁存地址信号A19~A0 5、T4结束 写周期结束

  35. 复位时序 3. 系统复位 系统复位,各寄存器的状态: 当8086在RESET引线上检测到一个脉冲的正沿时,停止正在进行的所有操作,处于初始化状态,直到RESET信号变低。

More Related