1 / 52

第二章 8086/8088系统结构

第二章 8086/8088系统结构. 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能 8086/8088系统结构 堆栈概念. EU 负责指令的执行, 从 BIU 的指令队列中取指令和数据,不直接与外部总线相连. BIU 根据 EU 的请求,完成 CPU 与存贮器或 I/O 设备之间的数据传送. 2.1 8086/8088微处理器的内部结构 2.2.1 8086/8088 CPU 的内部结构. 1. 8086 CPU 的组成. 16位通用寄存器组 ( AX、BX、CX、DX、SP、BP、SI、DI)

moeshe
Download Presentation

第二章 8086/8088系统结构

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/8088系统结构 • 主要内容 • 8086/8088微处理器的内部结构 • 8086/8088 CPU 的引脚与功能 • 8086/8088系统结构 • 堆栈概念

  2. EU负责指令的执行,从BIU的指令队列中取指令和数据,不直接与外部总线相连EU负责指令的执行,从BIU的指令队列中取指令和数据,不直接与外部总线相连 BIU根据EU的请求,完成CPU与存贮器或I/O设备之间的数据传送 2.1 8086/8088微处理器的内部结构2.2.1 8086/8088 CPU的内部结构 1. 8086CPU的组成 • 16位通用寄存器组 • (AX、BX、CX、DX、SP、BP、SI、DI) • 算术逻辑单元——ALU • EU控制器 • 标志寄存器——FLAG EU CPU • 段寄存器组 • (CS、DS、SS、ES) • 指令指针——IP • 地址加法器 • 指令队列 • 总线接口控制逻辑 BIU

  3. 2 8086/8088CPU的内部结构 20位地址 AH AL BH BL CH CL DH DL SP BP SI DI 16位通用寄存器组 地址加法器 16位 CS DS SS ES IP 内部通讯 16位寄存器组 总线接口控制逻辑 16位内部总线 运算寄存器 4或6字节指令队列 EU控制器 ALU 1 2 3 4 5 6 标志寄存器 内存 外部总线(三总线) 组成 功能 工作 BIU EU

  4. 取指 BIU动作 … EU动作 执指

  5. (3)86CPU选通存储器或I/O接口的信号是M/IO,低电平时选中I/O设备,高电平时选中存储器;而88CPU是IO/M信号 ,低电平时选中存储器,高电平时选中I/O接口。 (2)86CPU中的指令预取队列为6个字节,而88CPU为4个字节; (1)86 CPU的数据外总线宽度为16位,因此设有BHE;而88 CPU的数据外总线宽度为8位,把BHE引脚改为SSO; 3 8086与8088 CPU的区别

  6. 寄存器 控制器 AX 指 令 寄 存 器 控制逻辑 BX CX DX 寄存器 IP 运算器 CS BP DS SI SS DI 状态寄存器 ES SP 取指 主存 2.1.2 8086/8088 内部寄存器 微处理器一般编程结构 处理器

  7. AX:累加器。可分成两个八位寄存器AH、AL使用。AX:累加器。可分成两个八位寄存器AH、AL使用。 BX:基址寄存器。可分成两个八位寄存器BH、BL使用。 CX:为计数器。可分成两个八位寄存器CH、CL使用。 DX:数据寄存器 。可分成两个八位寄存器DH、DL使用。 通用寄存器组

  8. 2. 指针与变址寄存器组 SP(Stack Pointer):堆栈指针寄存器BP(Base Pointer):基地址指针寄存器 SI(Source Index):源变址寄存器 DI(Destination Index):目的变址寄存器

  9. CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器 IP:指令指针寄存器 3段寄存器与指令指针寄存器 注意:DS、SS和ES寄存器的内容可由程序设置,而CS寄存器的内容不能用程序设置

  10. 4.标志寄存器FLAG 用于存放CPU工作过程中的状态,其中9位有定义, 9位中6位表示状态,3位表示控制标志。 (1)状态标志位 CF:进位标志(Carry Flag)。 两个数相加时,最高位(D15或D7)有进位,或当两个数相减时,最高位有借位,进位标志位置1,即CF=1;否则CF=0。

  11. PF:奇偶标志位(Parity Flag)。 8086/8088 CPU中采用奇校验 当运算结果低8位中“1”的个数为偶数时,PF=1;否则PF=0。 AF:辅助进位标志(Auxiliary Carry Flag)。 当两个数相加(减)时,当D3有向D4进(借)位时,AF=1,否则AF=0。

  12. ZF:零标志位(Zero Flag)。运算结果每位都为0时,ZF=1;否则ZF=0。 SF:符号标志位(Sign Flag)。当运算结果的最高位为1时,SF=1;否则SF=0。 OF:溢出标志位(Overflow Flag )。当两个带符号数进行运算产生溢出时,OF=1;否则OF=0。

  13. 例:十六进制数0CCCCH与十六进制数5115H相加,请写出运算后六个标志状态位的值。例:十六进制数0CCCCH与十六进制数5115H相加,请写出运算后六个标志状态位的值。 解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH) + 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 从运算结果看出: 最高位D15位往前有进位,所以CF=1; 运算结果不全为0,所以ZF=0; 由于D15=0,所以SF=0; 运算结果的低8位中有4个“1”,所以PF=1; D3有向D4进位,因此AF=1; 两个异号数相加,不可能发生溢出,所以OF=0。

  14. (2) 控制标志位 TF:陷阱标志位(Trap Flag)。 当TF=1时,将使CPU进入单步执行工作方式, 主要用于程序调试; IF:中断标志位(Interrupt Flag)。 控制微处理器响应或禁止外部中断。 DF:方向标志位(Direction Flag)。 控制字节串或字串重复操作指令地址调整的步进方向。

  15. 源数据串 1 … 2 3 目的数据串 DS:SI SI+1 SI+1 ES:DI DI+1 DI+1

  16. 2.2 8086/88的引脚与功能 8086/8088CPU外形

  17. 8086 8088 GND V GND V 1 40 1 40 CC CC AD AD AD AD 2 39 2 39 14 15 14 15 AD AD16/S3 AD AD16/S3 3 38 3 38 13 13 AD AD /S AD AD /S 4 37 4 37 12 17 4 12 17 4 AD 5 36 AD /S AD 5 36 AD /S 11 18 5 11 18 5 AD 6 35 AD /S AD AD /S 6 35 10 19 6 10 19 6 7 34 AD BHE/S AD 7 34 SS (HIGH) 9 7 9 0 8 33 AD MN/MX AD MN/MX 8 33 8 8 9 32 AD RD AD 9 32 RD 7 7 10 31 AD HOLD(RQ/GT ) AD 10 31 HOLD(RQ/GT ) 6 0 6 0 11 30 11 30 AD HLDA(RQ/GT ) AD HLDA(RQ/GT ) 5 1 5 1 12 29 12 29 AD WR(LOCK) AD WR(LOCK) 4 4 13 28 13 28 AD M/IO(S ) AD M/IO(S ) 3 2 3 2 14 27 14 27 AD DT/R(S ) AD DT/R(S ) 2 1 2 1 15 26 15 26 AD DEN(S ) AD DEN(S ) 1 0 1 0 16 25 16 25 AD ALE(QS ) AD ALE(QS ) 0 0 0 0 17 24 17 24 NMI INTA(QS ) NMI INTA(QS ) 1 1 18 23 18 23 INTR TEST INTR TEST 19 22 19 22 CLK READY CLK READY 20 21 20 21 GND RESET GND RESET 8086/88的引脚

  18. 2.2 8086/88的引脚与功能 • 2.2.1 CPU的引脚与功能 • 最小模式下的引脚 • (1)A16~A19/S3~S6:分时复用的地址/状态线 • (2)AD15~AD0:8086 地址和数据总线的分时复用 • AD7~AD0:8088 地址和数据总线的分时复用 • (3)BHE:总线高位使能信号,三态输出线 • (4)M/IO(IO/M):CPU区分当前操作是访问存贮器还是访问I/O端口的三态输出控制线

  19. (5)WR:写控制信号,输出 (6)RD:读控制信号,输出 (7)DT/R:数据传送方向控制信号,输出 (8)DEN:数据总线有有效数据控制信号,输出 (9)ALE:地址锁存信号,输出 (10)READY:准备就绪信号,输入

  20. (11)INTR:可屏蔽中断请求输入信号,高电平有效(11)INTR:可屏蔽中断请求输入信号,高电平有效 (12)NMI:非屏蔽中断请求输入信号,边沿触发,正跳变有效 (13)INTA:中断响应信号,CPU对的INTR的响应 (14)TEST:可用WAIT指令对该引脚进行测试的输入信号,低电平有效 (15)RESET:CPU的复位输入信号,高电平有效 (16)HOLD:向CPU提出保持请求信号,高电平有效

  21. (17)HLDA:CPU对HOLD请求的响应信号,高电平有效 (18) CLK:时钟信号输入端 (19) VCC:+5V电源输入引脚。GND:接地端 (20) MN/MX:工作模式选择输入线 当MN/MX=1时,选择最小模式; 当MN/MX=0时,选择最大模式

  22. 2. 最大模式下的引线 (1)S2、S1、S0:最大模式下经三态门输出的状态信号。这些状态信号加到总线控制器(8288)上,可以产生系统总线所需要的各种控制信号。 (2)RQ/GT0、RQ/GT1:总线请求允许引脚,具有双向功能,既是总线请求输入也是总线响应输出。 (3)LOCK:总线封锁信号,低电平有效

  23. (4)QS1、QS0:CPU输出的队列状态信 (5)HIGH:在最大模式时始终输出高电平

  24. 2.2.2 总线周期   1. 基本概念  (1) 时钟周期:为CPU工作主频的时钟周期:T=1/f(f为主频) (2) 总线周期:CPU通过总线对存储器或I/O端口进行一次访问(读/写操作)所需的时间称为一个总线周期;一个总线周期至少包括4个时钟周期,即T1、T2、T3、T4。 (3)指令周期:指计算机完成一条指令的执行所需要的时间,它包含一个或多个总线周期。 通常采用MIPS(Million Instructions Per Second)单位,即每秒执行百万条指令的含义。

  25. 2. 最小模式读/写操作总线周期 一个总线周期 T1 T2 T3 T4 CLK A19/S6~A16/S3 地址输出 状态输出 A15~A8 地址输出 地址输出 数据输入 AD7~AD0 ALE IO/M RD DT/R DEN 图 8088 读总线周期

  26. 一个总线周期 T1 T2 T3 T4 CLK A19/S6~A16/S3 地址输出 状态输出 A15~A8 地址输出 地址输出 数据输出 AD7~AD0 ALE IO/M WR DT/R DEN 图 8088 写总线周期

  27. 2.2.3 总线接口器件 1.地址锁存器 功能:将CPU中的地址/数据复用引脚区分出独立的地址总线。与8086/8088配套的地址锁存器是8282芯片,是一个8位的数据锁存器。 2.双向三态门驱动器 数据总线采用双向三态驱动器,在8086/88系统中常用8286芯片,其中OE是输出允许控制,T是三态门传送方向控制。 当OE=0、T=0时,数据由B向A传送; 当OE=0,T=1时,数据由A向B传送。

  28. 8282

  29. 3.总线控制器8288 8086 CPU在最大模式下工作时,要借助于总线控制器8288来形成系统的控制总线。

  30. 2.3 8086/8088系统结构 2.3.1 系统存储器结构 地址线20根,直接寻址空间为220=1M字节, 用00000H~FFFFFH表示 1.8086系统中存储器的组织 偶体:存储体中的单元都是偶地址; 奇体:存储体中的单元都是奇地址。 两个存储体之间采用字节交叉编址方式

  31. D7~D0 D15~D8 A19~A1 D7~D0 D7~D0 SEL SEL BHE A0 图 奇偶存储体与总线的连接

  32. 2. 8086 读/写操作过程 (1)从偶地址读/写1个字节 偶地址(A0=0),控制电路自动使BHE=1,选中偶地址存储体。由地址A19~A1指定具体单元,CPU发出读/写信号,通过数据总线的低8位对该单元进行1个字节的读/写操作。 (2)从奇地址读/写1个字节 奇地址(A0=1),控制电路自动使BHE=0,奇地址存储体被选中。

  33. (3)从偶地址开始读/写1个字 访问的两个字节单元的地址A19~A1共19位均相同,系统自动发出BHE=0的信号,使奇偶两存储体同时被选中。CPU发出读/写信号后,两个存储单元同时通过低8位和高8位数据线完成读/写操作。 (4) 从奇地址开始读/写1个字 两个字节单元不能同时选中。 首先自动发出BHE=0信号,选中奇地址存储体,通过D15~D8完成低字节的操作。 紧接着,系统自动令A0=0,BHE=1,选中偶地址存储体,通过D7~D0完成高字节的操作。

  34. 3.存储器的分段 逻辑段:每个逻辑段容量不超过64K字节,可用16位地址码直接寻址。 段间关系:各个逻辑段之间可在实际存储空间中完全分开,也可以部分重叠,甚至可以完全重叠。物理地址定位:通过段地址和相对地址确定。 段基址:段的首地址的高16位。段首地址的低4位二进制码总是0000,高16位可变。在8086系统中,把16字节的存储空间称作一节(Paragraph)

  35. 00000H 逻辑段1的起点 逻辑段1≤64KB 逻辑段2的起点 逻辑段2≤64KB 逻辑段3的起点 逻辑段3≤64KB 逻辑段4、5的起点 逻辑段4、5≤64KB FFFFFH 图 灵活的分段方式

  36. 存储器分段 低地址 段基址 段i-1 最大64KB,最小16B 段基址 段i 段基址 段i+1 段基址 高地址

  37. 4.逻辑地址和物理地址 物理地址:存储单元的实际地址编码。 物理地址=段基址×16+段内偏移地址 逻辑地址:由段基址和偏移地址两部分组成。段基址和偏移地址都是16位的无符号数。不同的逻辑地址可能是同一个物理地址。 例:段基址:偏移地址分别为1200H:0345H和1110H:1245H的两个逻辑地址对应同一个物理地址12345H。

  38. 物理地址 物理地址 . . 60000H 60001H 60002H 60003H 60004H . . . F0H • 存储器的操作完全基于物理地址。 • 问题: • 8088的内部总线和内部寄存器均为16位,如何生成20位地址? • 解决:存储器分段 12H 1BH 08H

  39. 段基地址和段内偏移组成了逻辑地址 段地址 偏移地址(偏移量) 格式为:段地址:偏移地址 物理地址=段基地址×16+偏移地址 逻辑地址 60000H 偏移地址=0002H 60002H 00H 段首地址 12H × × × • • • × × × 0 0 0 0 段基地址(16位)

  40. BIU中的地址加法器用来实现逻辑地址到物理地址的变换BIU中的地址加法器用来实现逻辑地址到物理地址的变换 8088 可同时访问4个段,4个段寄存器中的内容指示了每个段的基地址 16位 段基址 0000 + 段内偏移 物理地址 20位

  41. MN/MX IO/M CLK RD READY WR RESET ALE 8088 DT/R DEN 时 钟 发生器 8284 8088 系 统 总 线 信 号 8282 STB OE A19~A16 A19~A16 A15~A8 8282 STB OE A15~A8 A7~A0 8282 STB OE AD7~AD0 D7~D0 A B 8286 T OE 2.3.2最小与最大模式总线形成 1. 最小模式下的系统总线 IO/M RD WR 图 8088 最小模式下总线形成

  42. AIOWC AMWC IOWC IORC MRDC MN/MX S0 S1 CLK S2 READY RESET 8088 S0 S1 8288 S2 DT/R DEN ALE 时 钟 发生器 8284 A19~A16 A19~A16 A15~A8 A15~A8 AD7~AD0 A7~A0 D7~D0 A B 8286 T OE 2. 最大模式下的系统总线 8282 STB OE 8282 STB OE 8282 STB OE 图 8088 最大模式下总线形成

  43. 2. 堆栈结构 堆栈位置:8086/8088的堆栈在存储器中实现,并由堆栈段寄存器SS和堆栈指针寄存器SP来定位。 堆栈大小:一个系统中可以有多个堆栈,每个堆栈的空间最大为64K字节。 堆栈个数:若有多个堆栈,只有一个现行堆栈。SS寄存器存放现行堆栈的基址,SP寄存器指向栈顶。 堆栈操作:进栈操作和出栈操作。8086/8088 CPU的堆栈操作必须以字为单位。

  44. 堆栈 SP=FFFAH FFFAH FFFBH SP=FFFCH FFFCH FFFDH FFFEH SS:FFFFH 堆栈: 存储器一个连续区域。这个区域数据的存取原则为:先进后出(FILO),即从栈底开始存放,从栈顶取信息。一般存放暂时不用的信息。 栈底:堆栈的最低部 栈顶:最后放进的信息所在地址 栈顶 栈顶 栈顶 SP=FFFEH 栈底 SP始终指向栈顶

  45. 2.5 微机系统中的总线结构 2.5.1 总线的分类与总线标准 1.总线分类 总线:各模块间传送信息的通道。 芯片级总线:如CPU芯片内的总线,这种总线常称内部总线。 板级总线:用于连接印刷电路板中的各个部件。 系统级总线:连接系统中的各个电路板。 2. 总线标准 标准中对插件引线的几何尺寸、引线数、各引线的定义、时序及电气参数等都作出了明确的规定。

  46. 2.5.2   微机总线的主要性能指标 总线宽度: 数据总线的数目,用位表示。 总线传输率:在总线上每秒钟传输的最大字节数,用Mb/s表示每秒钟传输多少字节。 总线传输率Q:Q=f×w/n(Mb/s),其中f是总线工作频率,单位为MHZ;w为总线宽度,单位是字节,n是每传送一次数据所需的时钟周期个数。 总线工作频率:总线工作时的时钟频率,它与CPU的主频是不同的。 时钟同步/异步:总线上的数据传输与时钟同步工作的总线称为同步总线;与时钟不同步工作的总线称为异步总线 。

  47. 数据/地址总线的多路复用与非多路复用 非多路复用总线:地址与数据总线分开的总线。 多路复用总线:共用一条总线,在某一时刻传输地址 另一时刻传输数据或命令 信号线数:地址总线(AB)数、数据总线(DB)数和控制总线(CB)数的总和

  48. 2.5.2   PC系列微机总线 1. PC/XT总线 以Intel 8088CPU为核心,其数据总线宽度为8位。 2. ISA与EISA总线 以80286 CPU为核心,形成的标准总线称工业标准体系结构ISA(Industry Standard Architecture)其数据总线宽度为16位。 EISA(Extend Industry Standard Architecture)随80386/486等微机出现而诞生,其数据总线32位。 3. 局部总线 PCI总线:由外围部件互连行业组制定的一种局部总线。

More Related