1 / 44

第二章 8086 系统结构

第二章 8086 系统结构. 8086CPU 结构 8086 引脚 8086 存储器 8086 系统配置. 本章学习要点. 寄存器用途 存储器分段 系统配置 时序. 2 、单总线、累加器结构。“单总线”指微处理器内部总线。. 8086CPU 结构. 16 位微处理器结构的特点:. 1 、引脚功能复用。如数据线双向,通过“读 / 写”控制实现数据的“读”或“ 写”。.

Download Presentation

第二章 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系统结构 8086CPU结构 8086引脚 8086存储器 8086系统配置

  2. 本章学习要点 • 寄存器用途 • 存储器分段 • 系统配置 • 时序

  3. 2、单总线、累加器结构。“单总线”指微处理器内部总线。 8086CPU结构 16位微处理器结构的特点: 1、引脚功能复用。如数据线双向,通过“读/写”控制实现数据的“读”或“ 写”。 3、可控三态电路。微处理器的外部总线,即微型计算机的局部三总线允许同时连接多个部件(如存储器、I/O接口等);这些部件都以可控三态电路与三总线连接,不工作时该三态电路处于高阻状态。 4、总线分时复用。

  4. 地址总线(20位) 通用寄存器 AX AH BH CH DH CL DL AL BL BX ∑ 数据总线 CX (16位) DX SP CS BP DS DI SS SI ES IP ALU数据总线 总线 控制 电路 8086总线 内部寄存器 (16位) (16位) 暂存器 队列 总线 (8位) EU 控制器 指令队列 1 2 3 4 ALU 标志寄存器 执行单元EU 总线接口单元BIU 8086CPU内部结构

  5. 8086CPU结构 • 8086CPU的内部结构由两部分组成:总线接口部件BIU、执行部件EU • BIU:是CPU与内存和I/O接口的信息传送;完成由16bit段地址和16bit偏移地址形成20bit物理地址、总线控制逻辑、完成CPU与内存和I/O接口的信息传送、从内存取指令代码后组成指令队列。负责取指令;存、取操作数。 • EU:负责分析指令、执行指令;进行算逻运算、偏移地址计算、向BIU提供指令执行结果的数据和偏移地址。

  6. 8086CPU寄存器结构 寄存器是CPU内部的存储单元,可直接参与CPU的运算(ALU运算和地址运算),其速度比内部存储器快。 • 通用寄存器 • 指针和变址寄存器 • 段寄存器 • 指令指针 • 标志寄存器

  7. 累加器 AH AL AX 基址寄存器 BH BL BX 计数寄存器 CX CH CL 数据寄存器 DX DH DL 通用寄存器 八个通用寄存器/四个数据寄存器 存放8位数据、16位数据或地址。

  8. SP (堆栈指针) BP、SP用于访问堆栈段的内存。 BP (基址指针) SI (源变址) SI、DI用于访问数据/附加段的内存。 DI (目的变址) 指针/变址寄存器 SP在堆栈操作中指示栈顶的地址。 BP是堆栈段操作数的地址或变址寻址的基址。 SI、DI在串操作中分别作为数据/附加段的源地址或目的地址的指针。 这四个寄存器只能按16位操作

  9. CS (代码段) DS (数据段) SS (堆栈段) ES (附加段) 段寄存器 存放每一段的起始地址 程序存放的区域, CS×16+IP—取指 数据存放的区域,DS×16+SP,BP,SI 堆栈操作存放的区域, SS×16+SP—堆栈 串操作数据存放的区域, ES×16+BP,DI 8086/8088有20位地址线,寻址能力为1MB。 8086/8088内部寄存器为16位,只能存放16位地址,16位地址的寻址能力为64KB。 由段地址(16位)和段内偏移地址(16位)组合成20位数据在内存的物理地址。

  10. 指令指针寄存器 指令指针寄存器 IP,存放下一条指令在代码段的段内偏移地址。程序运行中,CPU自动修改IP的内容。 有效地址16*CS+IP

  11. OF DF IF TF SF ZF AF PF CF Carry进位/借位标志:加减运算时最高位进位/借位,CF=1。 标志位寄存器 标志寄存器PSW,存放运算结果的特征 6位状态位,3位控制位 Parity奇偶标志:运算结果中有偶数个“1”,PF=1。 Auxiliary 辅助进位标志:运算后低4位向高位有进位AF=1。 Zero零标志:运算后各位全’0’,ZF=1。 Sign符号标志:运算后最高位为’1’,SF=1。 Overflow溢出标志:加减运算后的结果超出符号数表示范围,OF=1。

  12. 标志位寄存器 Interrupt enable中断允许标志:已设置为CPU允许接受外部中断请求,IF=1。 Direction方向标志:已设置为串操作指令为自动减1变址,DF=1。 Trap 单步标志:调试程序时已设置为单步操作。

  13. 8086系统中逻辑地址组合 EA(Effective Address)为有效地址,反映操作数的段内偏移地址。

  14. 8086CPU的工作模式 8086/8088CPU有最小工作模式和最大工作模式之分。 最小工作模式:用于单机系统,系统控制信号全部由8086直接提供。 最大工作模式:用于多机系统,系统控制信号由另设的总线控制器8288提供。

  15. 8086CPU引脚功能 8086的40条引脚信号按功能可分为4部分: 地址总线、数据总线、控制总线以及其它(时钟与电源)。 由于受当时工艺的限制,部分管脚采用了分时复用的方式。

  16. 最小模式下的引脚说明 AD15~AD0 (Address Data Bus): 地址/数据复用信号,双向,三态。在每个总线第一周期,AD15~AD0上为地址信号的低16位A15~A0;数据周期,AD15~AD0 上是数据信号D15~D0。 A16 / S3~A19 / S6 地址/状态复用信号,三态, 输出 在每个总线第一周期时,作地址总线的高4位(A19~A16);其余是状态信号。 8086访问存储器,用20条地址线;访问I/O ,用16条地址线,这4位置“0”。

  17. S4 S3 当前正在使用的段寄存器 0 0 ES 0 1 SS 1 0 CS或未使用任何段寄存器 1 1 DS S6:为低电平 S5指示中断允许IF状态

  18. /S7(Bus High Enable/Status): 数据总线高8位使能和状态复用信号,输出 在总线第一周期, 有效,表示数据线上高8位数据有效。该信号与A0(地址信号最低位)结合,以决定数据字是高字节工作还是低字节工作。其它周期是 输出状态信息S7。S7在8086中未定义。

  19. 同工作方式有关的控制信号 MN/ 最小/最大方式控制线,用来控制8086的工作方式。接+5V时,8086处于最小方式;接地时,8086处于最大方式,构成一个多处理器或协处理器系统。

  20. 脚 最大 最小 脚 最大 最小 28 S2 IO/M 27 S1 DT/R 26 S0 DEN 30 RQ/GT0 HOLD 24 QS1 INTA 31 RQ/GT1 HLDA 25 QS0 ALE 29 LOCK WR 受工作模式影响的8个引脚

  21. 总线周期状态信号:三态、输出 、 、 译码表

  22. 数据发送/接收信号:输出、三态 =H ,CPU是进行写操作; =L读操作 数据允许信号:输出、三态,用作系统中总线收发器的允许控制信号。 在最小方式下是: 、 和 存储器/IO控制信号:输出、三态 =H,访问存储器; =L访问I/O端口。

  23. 请求/允许总线访问控制信号:双向,前优先级高 在最小方式下,是HOLD和HLDA。HOLD为保持请求信号:输入; HLDA为保持响应信号:输出。

  24. 在最小方式下是ALE和 。 ALE是地址锁存允许信号:输出; 是中断响应信号:输出、三态。 QS1,QS0:指令队列状态信号:输出

  25. 总线优先权锁定信号:输出、三态 用来封锁外部处理器的总线请求,输出低电平时,外部处理器不能控制总线;靠LOCK指令在程序中设置。 在最小方式下,是 信号,输出、三态。

  26. 读控制信号:三态、输出 READY准备就绪信号:输入。当被访问的部件无法在8086CPU规定的时间内完成数据传送时,该部件向8086CPU发出READY=L,使8086处于等待状态,插入一个或几个等待周期TW;当被访问的部件可以完成数据传输时,被访问的部件将使READY=H(高电平),8086CPU继续运行。 不受工作模式影响的控制引脚

  27. INTR中断请求信号:输入 NMI:不可屏蔽中断请求信号:输入 :等待测试控制信号:输入 RESET:复位信号:输入。 复位后标志寄存器PSW、段寄存器、指令指针IP以及指令队列清零,代码段寄存器CS为FFFFH。 CLK:时钟信号,输入 VCC:电源 5V(5%) VSS: 地

  28. 段地址 0000 段内偏移 (有效)地址 0000 物理地址(20bit) 16bit 16bit 20bit 8086存储器组织 一、存储器地址的分段和物理地址形成 存储器地址空间1MB,20bit地址线;ALU的运算能力16bit。 将整个存储器分为若干个逻辑段,每段内地址16bit,即最多地址空间64KB。

  29. 二、存储器逻辑地址 存储器的物理地址是20位二进制数,无法用十六进制寄存器存放。 可以用二个无符号十六进制数按特定方式运算后得到20位物理地址。这二个十六进制数分别是段地址和偏移地址。 存储器的任一个物理地址(绝对地址)由段地址和偏移地址(或称段内有效地址EA)组成。 物理地址=段基址×16+偏移地址

  30. IP CS SI、DI、BX DS SP、BP SS 内存 代码段 数据段 堆栈段

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

  32. 1422DH 1422EH L(低8bit) 字节地址 字节地址 H(高8bit) 1422FH 字(16bit)数据地址1422EH。低位低地址,高位高地址 14230H 内存 三、字节地址和字地址 内存以字节为单位,字节数据(8位)地址就是字节地址。 字数据为16位,需二个字节存储。低8位存放在低地址,高8位存放在高地址;字地址为低字节地址。原则上字地址使用偶地址。

  33. SP=(SP)-2。 每执行一条PUSH指令,向堆栈压入16bit数据, 每执行一条POP指令,从堆栈弹出16bit数据, SP=(SP)+2。 四、堆栈的概念 堆栈是利用RAM区中某一指定区域(由用户规定),用来暂存数据或地址的存储区。 堆栈存取数据的原则是“ 先进后出”,存取数据的方法是压入(PUSH)和弹出(POP)等。 堆栈区的栈底是固定的最高地址,其栈顶根据堆栈数据的压入或取出的变化不断改变。栈顶是堆栈区的最低地址,用堆栈指针SP表示。

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

  35. Vcc Vcc MN/MX RD WR CLK IO/M 8284 READY INTA RES RESET INTR 地址总线 20位 ALE 8086 STB A16-A19 CPU 8282*3 AD0-AD15 OE 存储器 I/O接口 16位 DT/R T 8286 DEN 数据总线 OE 8086最小系统配置

  36. 指令周期(Instruction Cycle): 执行一条指令所需要的时间。 (一个指令周期由一个或若干个总线周期组成) 总线周期(Bus Cycle ): CPU从存储器或I/O端口存取一个字节的时间, 即完成一个基本动作所需的时间。 时钟周期(Clock Cycle): 时钟频率的倒数,是CPU的时间基准(T状态) (8086的主频为5MHZ,一个时钟周期为200ns) 8086CPU时序 指令周期、总线周期和时钟周期

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

  38. T1 T2 T3 T4 CLK 0=IO M / IO 1=M 1、T1开始(T1下降沿) M/IO=0,I/0端口操作 M/IO=1,存储器操作 ALE=1,地址锁存 DT/R=0,CPU读入 A19/S6- S6-S3 A19-A16 A16/S3 AD15-AD0 A15-A0 DATA IN ALE RD DT/R DEN 存储器读时序 读总线周期时序 读总线:CPU通过总线从存储器或I/O端口读取数据 2、T1上升沿 A19~A0稳定,ALE锁存

  39. 3、T2开始 RD=0,存储器开始读 DEN=0,DB上允许数据有效 T1 T2 T3 T4 CLK 0=IO M / IO 1=M A19/S6- S6-S3 A19-A16 A16/S3 AD15-AD0 A15-A0 DATA IN ALE 4、T4开始 DB上数据稳定。RD、DEN恢复为1,CPU获得数据 RD DT/R DEN 读总线周期时序 5、T4结束 DT/R=1,存储器读周期结束

  40. 1、T1开始 M / IO=0, I/0端口操作 M / IO=1, 存储器操作 ALE=1,地址锁存 DT/R=1,CPU写出 T1 T2 T3 T4 CLK 0=IO M/IO 1=M A19/S6- S6-S3 A19-A16 A16/S3 AD15-AD0 DATA OUT A15-A0 ALE WR DT/R DEN 写总线周期时序 写总线周期 写总线:CPU通过总线将数据写至存储器或I/O端口。 2、T1上升沿 A19~A0稳定,ALE锁存

  41. 3、T2开始 WR=0,存储器开始写 DEN=0,DB上允许数据有效 T1 T2 T3 T4 CLK 0=IO M/IO 1=M 4、T4开始 数据已写至存储器 WR、DEN恢复为1 A19/S6- S6-S3 A19-A16 A16/S3 AD15-AD0 DATA OUT A15-A0 ALE WR DT/R DEN 写总线周期时序 5、T4结束 写周期结束

  42. T1或T4 CLK 当外设需要DMA时,通过DMA控制器向CPU发出总线请求 HOLD HOLD=1信号。CPU在CLK的上升沿检测到HOLD后进入总线 HLDA 保持周期。CPU交出总线(悬空)给DMA控制器使用,HOLA=1 总线请求和总线响应时序 响应。 当DMA结束,HOLD=0撤销。 CPU在CLK的上升沿检测到 HOLD后退出总线保持周期。收回总线,HLDA=0。 总线保持周期 直接传送DMA是一种CPU与I/O端口数据传送的方式。

  43. T1 T2 T3 T4 T1 T2 T3 T4 CLK ALE INTA 中断类型 AD15-AD0 中断响应周期时序 在每一个中断响应周期,都给出中断响应信号INTA,第一个响应周期,使AD15~AD0浮空;第二个响应周期,被响应的外设应将中断类型号送到数据线上,CPU从数据线读入中断类型。 中断响应周期 中断是另一种CPU与I/O端口数据传送的方式。 中断请求信号有效,且CPU开中断,则CPU在执行完当前指令后,响应中断。在响应中断时,CPU执行两个中断响应周期。

  44. 第二章练习 • 5,10,11,12,15

More Related