1 / 51

第二章 8086 微处 理器及其系统结构

第二章 8086 微处 理器及其系统结构. 8086 的功能结构 8086 的寄存器组 8086 微处理器引脚信号 8086 微处理器典型时序分析. 8086 微处理器. 微处理器是微机的硬件核心 主要包含指令执行的运算和控制部件,还有多种寄存器 对程序员来说,微处理器抽象为以名称存取的寄存器. 8086 的功能结构. 8086 内部结构有两个功能模块,完成一条指令的取指和执行功能 模块之一:总线接口单元 BIU ,主要负责读取指令和操作数 模块之二:执行单元 EU ,主要负责指令译码和执行. EU 与 BIU 并行但不同步工作,减少了取指令

elata
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微处理器及其系统结构 8086的功能结构 8086的寄存器组 8086微处理器引脚信号 8086微处理器典型时序分析

  2. 8086微处理器 • 微处理器是微机的硬件核心 • 主要包含指令执行的运算和控制部件,还有多种寄存器 • 对程序员来说,微处理器抽象为以名称存取的寄存器

  3. 8086的功能结构 • 8086内部结构有两个功能模块,完成一条指令的取指和执行功能 • 模块之一:总线接口单元BIU,主要负责读取指令和操作数 • 模块之二:执行单元EU ,主要负责指令译码和执行 • EU与BIU并行但不同步工作,减少了取指令 • 所需的时间,提高了CPU的工作效率。 内部结构 指令执行

  4. 第二章 8086微处理器 8086的功能结构 8086的寄存器组 存储器组织与分段管理 堆栈和堆栈操作

  5. 8086的寄存器组 • 对汇编语言程序员来说,8086内部结构就是可编程的寄存器组 • 执行单元EU 8个通用寄存器 • 1个指令指针寄存器 • 1个标志寄存器 • 4个段寄存器

  6. 8086的通用寄存器 • 8086的16位通用寄存器是: AX BX CX DX SI DI BP SP • 其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器 • 8086的8位通用寄存器是: AH BH CH DH AL BL CL DL • 对其中某8位的操作,并不影响另外对应8位的数据

  7. 数据寄存器 • 数据寄存器用来存放计算的结果和操作数,也可以存放地址 • 每个寄存器又有它们各自的专用目的 • AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等; • BX--基址寄存器,常用做存放存储器地址; • CX--计数器,作为循环和串操作等指令中的隐含计数器; • DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。

  8. 变址寄存器 • 变址寄存器常用于存储器寻址时提供地址 • SI是源变址寄存器 • DI是目的变址寄存器

  9. 指针寄存器 • 指针寄存器用于寻址内存堆栈内的数据 • SP为堆栈指针寄存器,指示栈顶的偏移地址 • SP不能再用于其他目的,具有专用目的 • BP为基址指针寄存器,表示数据在堆栈段中的基地址 • SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址

  10. 8086的寄存器组 • 对汇编语言程序员来说,8086内部结构就是可编程的寄存器组 • 执行单元EU 8个通用寄存器 • 1个指令指针寄存器 • 1个标志寄存器 • 4个段寄存器

  11. 指令指针寄存器IP • 指令指针寄存器IP,指示代码段中指令的偏移地址 • 它与代码段寄存器CS联用,确定下一条指令的物理地址 • 计算机通过CS : IP寄存器来控制指令序列的执行流程 • IP寄存器是一个专用寄存器

  12. 8086的寄存器组 • 对汇编语言程序员来说,8086内部结构就是可编程的寄存器组 • 执行单元EU 8个通用寄存器 • 1个指令指针寄存器 • 1个标志寄存器 • 4个段寄存器

  13. 15 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF ZF AF PF CF 标志寄存器 • 标志(Flag)用于反映指令执行结果或控制指令执行形式 • 8086处理器的各种标志形成了一个16位的标志寄存器FR(标志寄存器的内容称为程序状态字PSW) • 程序设计需要利用标志的状态

  14. 标志的分类 • 状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它 CF ZF SF PF OF AF • 控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式 DF IF TF

  15. 当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。 3AH + 7CH=0B6H,没有进位:CF = 0 0AAH + 7CH=(1)26H,有进位:CF = 1 进位标志CF(Carry Flag)

  16. 零标志ZF(Zero Flag) • 若运算结果为0,则ZF = 1; 否则ZF = 0 • 注意:ZF为1表示的结果是0 3AH + 7CH=0B6H,结果不是零:ZF = 0 84H + 7CH=(1)00H,结果是零:ZF = 1

  17. 符号标志SF(Sign Flag) • 运算结果最高位为1,则SF = 1;否则SF = 0 • 有符号数据用最高有效位表示数据的符号, • 所以,最高有效位就是符号标志的状态。 3AH + 7CH=0B6H,最高位D7=1:SF = 1 84H + 7CH=(1)00H,最高位D7=0:SF = 0

  18. 奇偶标志PF(Parity Flag) • 当运算结果最低字节中“1”的个数为零或偶数时,PF = 1;否则PF = 0 • PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作 3AH + 7CH=0B6H=10110110B 结果中有5个1,是奇数:PF = 0

  19. 溢出标志OF(Overflow Flag) • 若算术运算的结果有溢出, 则OF=1;否则 OF=0 3AH + 7CH=0B6H,产生溢出:OF = 1 0AAH + 7CH=(1)26H,没有溢出:OF = 0

  20. 溢出标志OF(Overflow Flag) 问题 什么是溢出? 溢出和进位有什么区别? 处理器怎么处理,程序员如何运用? 如何判断是否溢出?

  21. 辅助进位标志AF (Auxiliary Carry Flag) • 运算时D3位(低半字节)有进位或借位时,AF = 1;否则AF = 0。 3AH + 7CH=0B6H,D3有进位:AF = 1 • 这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心

  22. 方向标志DF(Direction Flag) • 用于串操作指令中,控制地址的变化方向: • 设置DF=0,存储器地址自动增加; • 设置DF=1,存储器地址自动减少。 • CLD指令复位方向标志:DF=0 • STD指令置位方向标志:DF=1

  23. 中断允许标志IF(Interrupt-enable Flag) • 用于控制外部可屏蔽中断是否可以被处理器响应: • 设置IF=1,则允许中断; • 设置IF=0,则禁止中断。 • CLI指令复位中断标志:IF=0 • STI指令置位中断标志:IF=1

  24. 陷阱标志TF(Trap Flag) • 用于控制处理器进入单步操作方式: • 设置TF=0,处理器正常工作; • 设置TF=1,处理器单步执行指令。 • 单步执行指令——处理器在每条指令执行结束时,便产生一个编号为1的内部中断 • 这种内部中断称为单步中断 • 所以TF也称为单步标志 • 利用单步中断可对程序进行逐条指令的调试 • 这种逐条指令调试程序的方法就是单步调试

  25. 8086的寄存器组 • 对汇编语言程序员来说,8086内部结构就是可编程的寄存器组 • 执行单元EU 8个通用寄存器 • 1个指令指针寄存器 • 1个标志寄存器 • 4个段寄存器

  26. 段寄存器 • 8086有4个16位段寄存器 • CS(代码段)指明代码段的起始地址 • SS(堆栈段)指明堆栈段的起始地址 • DS(数据段)指明数据段的起始地址 • ES(附加段)指明附加段的起始地址 • 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途

  27. 第二章 8086微处理器及其系统结构 8086的功能结构 8086的寄存器组 8086微处理器引脚信号 8086微处理器典型时序分析

  28. 学习外部特性,首先了解其引脚信号,关注以下几个方面:学习外部特性,首先了解其引脚信号,关注以下几个方面: • 引脚的功能 • 信号的流向 • 有效电平 • 三态能力 输出正常的低电平、高电平外,还可以输出高阻的第三态

  29. 8086CPU引脚功能 • 8086与8088CPU引脚区别: • 8086有16位数据线,与地址线A0-A15兼用;20位地址线,寻址空间达到1MB;8088有8位数据线,与地址线A0-A7兼用; • 8086与8088CPU引脚28信号相反(M/IO, M/IO) • 引脚34信号, 8086与8088CPU功能稍有不同。 • 引脚分类 • 地址总线、数据总线、控制总线

  30. 地址/状态线 地址/数据线 8086CPU引脚功能 最小最大模式控制 MN/MX=1,最小模式 MN/MX=0,最大模式 读信号 总线保持请求信号 总线保持相应信号 存储器/IO控制信号 M/IO=1,选中存储器 M/IO=0,选中IO接口 写信号 数据发送/接收信号 DT/R=1,发送 DT/R=0,接收 数据允许信号 地址允许信号 非屏蔽中断 中断响应信号 准备好信号:表示内存 或I/O设备准备好, 可以进行数据传输。 测试信号:执行WAIT指令, CPU处于空转等待; TEST有效时,结束等待状态。 可屏蔽中断请求 复位信号

  31. 8086CPU的两种模式 • 最小模式 • MN/MX接+5V • 构成小规模的应用系统,只有8086一个微处理器, • 所有的总线控制信号均为8086产生,系统中的总线控制逻辑电路,减少到最少。 • 最大模式 • MN/MX接地。 • 用于大型(中型)8086/8088系统中,系统总是包含有两个或多个微处理器,其中一个主处理器就是8086或8088,其它的处理器称协处理器,协助主处理器工作。 • 需要总线控制器来变换和组合控制信号。

  32. 协处理器: 数值运算协处理器8087:由硬件实现高精度整数浮点段运算。 输入输出协处理器8089:相当两个DMA通道的处理器。 增加协处理器,不再占用8086时间,大大提高系统的运算速度效率。

  33. 8086在最小模式下的典型配置 • 1、MN/MX接+5V • 2、一片8284A,作为时钟发生器 • 3、三片8282或74LS273,作地址锁存器 • 4、二片8286/8287,作总线收发器

  34. 常见锁存器8282 • DI0 - DI7:数据输入引脚; • DO0 - DO7:数据输出引脚; • VCC、GND:电源与地线; • STB:数据选通信号,当有一个地址锁存控制信号送到该端时,8282即完成对输入数据的锁存任务; • OE:输出允许信号,该端接低电平时,8282就将锁存的内容传送到输出引脚上。

  35. 8282锁存器与8086的连接

  36. 双向8位三态缓冲器8286 • A0 -A7、B0 - B7:两个8位双向输入/输出数据线; • VCC、GND:电源与地线; • T:数据传送方向控制线控制8286中的数据传送方向; • OE:输出允许信号,控制8286何时传送数据。

  37. T=1,发送;T=0,接收

  38. 8086在最小模式下的典型配置

  39. 8086CPU的最大模式的典型配置 • 1、MN/MX接地; • 2、一片8284,作系统时钟 • 3、三片8282或74LS373,作锁存器 • 4、二片8286/8287,作数据收发器 • 5、一片8288,作总线控制器 • 6、一片8259

  40. 8086CPU的最大模式 特点:需要总线控制器来变换和组合控制信号。 MN/MX(33引脚)引线接地时,处于最大模式。 • QS1、QS2(25、24引脚):队列状态信号。 0 0 无 操作 0 1 取走指令队列第一个字节 1 0 队列空 1 1 取走指令队列后续字节代码

  41. S2、 S1、 S0:输出(28、27、26引脚) 0 0 0 中断响应 0 0 1 读I/O口 0 1 0 写I/O口 0 1 1 暂存 1 0 0 取指令 1 0 1 读存储器 1 1 0 写存储器 1 1 1 无源状态

  42. RQ/GT1、 RQ /GT0(30、 31引脚) • 双向,请求/允许信号 • 可供CPU以外的两个处理器发总线请求/允许信号。 • RQ/GT0优先级比RQ/GT1更高。 • LOCK (29引脚) • 输出,三态 • 总线锁定信号,由指令的前缀产生。 • 最大模式为多处理器系统,共用一条外部总线,需要增加总线控制器,来完成多处理器的分时控制。

  43. 第二章 8086微处理器及其系统结构 8086的功能结构 8086的寄存器组 8086微处理器引脚信号 8086微处理器典型时序分析

  44. 8086CPU的时序 基本概念 • 指令周期(Instruction Cycle):执行一条指令的时间。 • 总线周期(Bus Cycle)):CPU从存储器或I/O端口读写一个字节(字)的时间。 • 时钟周期(Clock Cycle):基本定时脉冲的两个沿之间的时间间隔,是CPU的最小时间单位。 • T状态(Tstate):一个基本时钟周期又称T状态。 • 基本总线周期:4个T状态

  45. 总线操作是指CPU通过总线对外的各种操作 • 8088的总线操作主要有: • 存储器读、存储器写 • I/O读操作、I/O写操作 • 中断响应操作 • 总线请求及响应操作 • CPU正在进行内部操作、并不进行实际对外操作的空闲状态Ti • 复位

  46. 存贮器读周期 例:MOV AL,[1000H] ;M/IO=1 T1状态:A19~A0上是地址信息,出现ALE信号后,将地址锁存到地址锁存器(8282)。 T2状态:地址信息消失,A19-A16从地址信息变为状态信息S6-S3。数据允许信号DEN在T2状态有效。 T3状态:AD0~AD15上出现数据。 RD信号有效(RD=0) TW状态:若存储器式外设的工作速度较慢,不能满足基本时序要求,使用一个产生READY的电路,以使在T3状态之后,插入一个等待周期TW。 T4状态:CPU采样数据,结束一个总线周期。

  47. 存储器写周期时序 例:MOV [1000H], AL ;M/IO=1 T1状态:A19~A0上是地址信息,出现ALE信号后,将地址 锁存到地址锁存器(8282)。 T2状态:地址信息消失,A19-A16从地址信息变为状态信息 S6-S3。 T3状态:AD0 ~AD15上出现数据。 WR信号有效(WR=0)。 TW状态:若存储器式外设的工作速度较慢,不能满足基本 时序要求,使用一个产生READY的电路,以使在T3状态之 后,插入一个等待周期TW。 T4状态:CPU认为数据已写入存储器,结束一个总线周期。

More Related