1 / 63

第 2 章

第 2 章. 微处理器. 教学重点. 8086 微处理器的结构 8086 的存储器组织和 I/O 组织 8086CPU 的引脚和工作模式 8086 的操作和时序. §1 8086CPU 的基本结构. 一、 CPU 的基本工作方式 CPU 的结构与其工作方式密切相关,基本的工作方式有串行方式和并行方式。 CPU 执行指令一般包括 5 个步骤:①取指令 ②指令译码 ③取操作数 ④执行指令 ⑤存结果,其中① ③ ⑤步由控制器完成,② ④由运算器完成。 串行方式:上述过程按顺序一步一步执行。 特点:两部分电路交替工作,都有空闲时间,执行指令时间长,速度慢。.

stella
Download Presentation

第 2 章

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. 第2章 微处理器

  2. 教学重点 • 8086微处理器的结构 • 8086的存储器组织和I/O组织 • 8086CPU的引脚和工作模式 • 8086的操作和时序

  3. §1 8086CPU的基本结构 一、CPU的基本工作方式 CPU的结构与其工作方式密切相关,基本的工作方式有串行方式和并行方式。 CPU执行指令一般包括5个步骤:①取指令 ②指令译码 ③取操作数 ④执行指令 ⑤存结果,其中① ③ ⑤步由控制器完成,② ④由运算器完成。 • 串行方式:上述过程按顺序一步一步执行。 • 特点:两部分电路交替工作,都有空闲时间,执行指令时间长,速度慢。

  4. 并行方式:两部分电路即互相联系又互相独立,可以同时工作。并行方式:两部分电路即互相联系又互相独立,可以同时工作。 • 特点:可充分利用总线,提高信息传输速率,CPU效率高。 8086CPU采用并行方式工作,其结构分为两大部分,即执行部件EU,和总线接口部件BIU。 二、8086CPU的编程结构

  5. 8086CPU结构图 AH AL 地址加法器 BH BL 16位 通用寄存器 CH CL CS DH DL DS SP SS BP ES I/O控制电路 IP DI 内部寄存器 SI 外总线 运算寄存器 1 2 3 4 5 6 执行部分控制电路 8位 指令队列缓冲器 ALU 执行部件 总线接口部件 标志

  6. 1、执行部件 EU • 作用: (1)从指令队列中取出指令。 (2)对指令进行译码,发出相应的控制信号。 (3)向BIU发出请求。 (4)执行指令包括进行算术、逻辑运算,并计算操作数的偏移量。 • EU不直接与CPU外的部件联系。 • 执行部件的组成: (1)16位的算术逻辑单元ALU。 (2)四个通用寄存器AX、BX、CX、DX及专用寄存器。

  7. 2、总线接口部件 • 功能: (1)合成20位的地址,完成与外界之间的数据传送。 (2)预取指令送到指令队列。 (3) 发出外部总线控制信号。 • 总线接口部件的组成: (1)20位的地址加法器。 (2)四个段地址寄存器CS、 DS、ES 、SS。 (3)6个字节(RAM)的指令队列。

  8. 3、8086的寄存器 共有14个16位的寄存器,分5组。 (1)通用(数据)寄存器组 4个 • 一般用来暂存数据和结果,存取速度快,可进行寻址,使用灵活方便。 • 每个寄存器即可作为16位寄存器,又可分为2个8位寄存器单独使用。 • AX 累加寄存器 可分为 AH、AL • BX 基值寄存器 可分为 BH、BL • CX 计数寄存器 可分为 CH、CL • DX 数据寄存器 可分为 DH、DL

  9. (2)4个16位专用寄存器 (指示寄存器或变址寄存器) • SP 堆栈指针寄存器 (栈顶地址偏移量) • BP 基数指针寄存器 • SI 源变址寄存器 • DI 目的变址寄存器 • 通常用来存放数据的地址,是指令代码缩短。 (3)16位的状态寄存器(6位状态,3位控制标 志)

  10. 16位寄存器,其中有7位未用。 1-低8位有偶数个1 0-低8位有奇数个1 D15 D0 OF DF IF TF SF ZF AF PF CF 方向标志 单步中断 符号标志 零标志 半进借位标志 奇偶标志 进借位标志 溢出标志 中断允许 1-结果为0 0-结果不为0 1-有进、借位 0-无进、借位 1-低4位向高4位有进、借位 0-低4位向高4位无进、借位

  11. OF: 溢出标志 有符号数运算时,结果超出机器表示的范围。OF=1有溢出 OF=0无溢出。 判断溢出的方法:最高位和次高位进位关系不一致为溢出。 • 例:⑴ 0010001101000101 + 0011001000011001 0101010101011110 标志位:CF=0 ZF=0 SF=0 AF=0 PF=0 OF=0

  12. 例:⑵ 0101010000111001 + 0100010101101010 1001100110100011 标志位:CF=0 ZF=0 SF=1 AF=1 PF=1 OF=1 3位控制标志: DF 方向标志:控制字符串的处理方向 IF 中断标志:决定CPU是否相应中断 TF 跟踪标志:为1可单步执行程序,用于程序的调试和检查。 为0自动连续执行程序

  13. (4)4个16位的段寄存器 存放地址的段基址 CS 代码段寄存器 DS 数据段寄存器 ES 附加段寄存器 SS 堆栈段寄存器 (5)指令指示器 IP IP中存放将要取出的指令地址的偏移量,可以自动加1。

  14. §2 8086的存储器组织和I/O组织 一、存储器分段技术 8086CPU有20位地址,而内部寄存器为16位,因此采用地址分段技术,将地址分为段基址和偏移地址。 1、地址分段的优点: • 大多数指令只涉及16位的偏移地址,减少指令长度,提高了指令执行速度。 • 对程序模块化设计有利,设计程序时可以不考虑物理地址。 • 可充分利用内存空间。

  15. 2、分段的方法 • 将低4位为0的高16位地址作为段基址,每段最长可为64K。 • 段与段之间可以连续,可以间断,也可以重叠。 • 各段相互独立,不可互换使用。 CS当前代码段基址,与IP形成指令地址。 SS当前堆栈段基址,用SP、BP进行栈操作。 DS当前数据段基址,用BX、DI、SI间接寻找数据地址。 ES当前附加数据段基址,主要用于串操作。

  16. CS 0000 代码段 IP DS或ES 0000 数据段 SI、DI或BX SS 0000 堆栈段 SP或BP 存储器 段寄存器和偏移地址寄存器组合关系

  17. 4位 16位 段寄存器值 16位 偏移量 20位 存储器物理地址的计算方法 物理地址 二、物理地址(实际地址)的形成: 每个存储单元都可以用两个形式的地址来表示: 实际地址(或称物理地址)和逻辑地址。 逻辑地址在程序中使用,即段基址:偏移地址 。 物理地址=段基址*16(左移4位) +偏移地址。

  18. 例1:CS=C081H IP=1230H 将要取出的指令地址=C0810H+1230H=C1A40H • 例2:DS=122BH SI=0150H 数据的物理地址=122B0H+0150H=12400H • 例3:SS=1BF8H SP=003AH 栈顶地址=1BF80H+003AH=1BFBAH • 物理地址只有一个,而形成物理地址的段基址和偏移量可以不同。

  19. 40H 23H 三、字节和字的传送 • 一般设想存储单元的地址由低到高依次排列。 • 每个存储单元存放一个字节,连续两个单元 存放一个字。 • 字的存放按照低8位低地址,高8位高地址。 如:2340H 低地址 高地址 • 双字往往表示新的地址,在内存中占用连续4个单元。 形式为 段基址:偏移量

  20. 8A 偏移量 15 00 段基址 23 如: 2300H:158AH 低地址 高地址

  21. M XX XX 8086 CPU D0 偶地址 D7 忽略 奇地址 D15 M XX XX 8086 CPU D0 忽略 偶地址 D8 奇地址 D15 • 8086中字或字节的传送 ⑴ 读(写)偶地址字节 使用低8位数据线D0-D7 高8位被忽略。 ⑵读(写)奇地址字节 使用高8位数据线D8-D15 低8位被忽略。

  22. M XX XX 8086 CPU D0 偶地址 D7 奇地址 D15 ⑶ 读(写)偶地址字 使用16位数据线D0-D15一次完成。

  23. M 8086 CPU D0 忽略 D8 XX 奇地址 D15 D0 XX 偶地址 D7 忽略 D15 ⑶ 读(写)奇地址(不规则存放)字 分两次完成,使用两个总线周期。要尽量避免不规则存放。

  24. 四、I/O端口 • 每个I/O端口相当于一个内存单元,有一个独立的地址,其内容为一个字节。 • 相邻两个单元可以组成一个字。 • 存放数据的规则和读写规则与内存相同。 • 用专用指令读写。 IN 输入 OUT 输出。

  25. §3 8086CPU的引脚和工作模式 一、总线周期的概念 • 指令周期:执行一条指令所需要的时间。 • 总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。 • 8086中一个基本的总线周期由4个时钟周期组成。 • 时钟周期(T状态):CPU处理动作的最小单位。 T=1/F主频 如F=5MHZ 则T=0.2us=200ns

  26. T3 TW T4 T2 T1 4个T状态T1、T2、T3、T4分别做不同的工作,组成一个总线周期。 • T1状态: CPU向多路复用总线发地址信号。 • T2状态:复用总线低16位为高阻状态,准备传输 数据,高4位输出本总线周期的状态信号。 • T3状态:高4位继续出现信息,低16位传输数据。 • 如信息未准备好,此时插入TW等待周期。 • T4状态:总线周期结束。

  27. 二、最小模式和最大模式 1、最小模式:系统只有一个8086CPU,所有的控制信号都直接由8086CPU产生,总线控制逻辑电路最少。 2、最大模式:系统包括两个或多个CPU(一个为主CPU,其他为协CPU),此时8086CPU需要外加总线控制器,以便产生较多的控制信号进行互相联系和协调工作。 3、常用的协处理器: 8087 数值运算协处理器 利用硬件实现多种类型的数值运算,有专用指令,速度快。 8089 输入输出协处理器 专门用于输入输出的操作,可直接为输入输出服务。

  28. 二、8086CPU的引脚和功能 共40条引脚双列直插。 有些引脚在最小模式和最大模式下定义相同。 另一些引脚在不同模式下定义不同。 如下图:

  29. 8086/8088 4039383736353433323130292827262524232221 VCC(5V) GND 0102030405060708091011121314151617181920 AD15/A15 AD14/A14 A16/S3 AD13/A13 A17/S4 AD12/A12 A18/S5 AD11/A11 AD10/A10 A19/S6 /BHE/S7 HIGH(SSO) AD9/A9 MN//MX AD8/A8 /RD AD7 HOLD(/RQ//GT0) AD6 AD5 HLDA(/RQ//GT1) /WR(/LOCK) AD4 M//IO(/S2) AD3 DT//R(/S1) AD2 /DEN(/S0) AD1 ALE(QS0) AD0 /INTA(QS1) NMI /TEST INTR READY CLK RESET GND

  30. 1、最小、最大模式下定义相同的引脚 ①AD0-AD15:地址/数据复用引脚,双向,三态。 分时工作 T1状态下出现低16位地址,T2-T4状态下作数据线使用。 注意:A0为低8位数据片选信号。因为低8位数据线与偶地址相连,偶地址即A0=0。 ②A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。 T1状态 如访问内存作地址高4位,访问外设保持低电平。 T2-T4状态输出状态信息。

  31. S6=0,表示8086/8088当前与总线相连。 • S5:反映中断允许标志IF当前的设置。 S5=0(IF=0)禁止中断。 S5=1(IF=1)允许中断。 • S4、S3:指出当前使用段寄存器的情况。 S4 S3 段寄存器 0 0 当前正在使用ES 0 1 当前正在使用SS 1 0 当前正在使用CS 1 1 当前正在使用DS

  32. BHE/S7:高8位数据总线允许/状态复用引脚。在T1状态,输出BHE信号,表示使用高8位数据线,奇地址单元选通。 T2-T4状态,输出S7, S7目前未用。 BHE和A0组合表示不同的操作。 BHE A0 操作 占用数据线 0 0 从偶地址读/写一个字 D0-D15 1 0 从偶地址读/写一个字节 D0-D7 0 1 从奇地址读/写一个字节 D8-D15 0 1 从奇地址读/写一个字 D8-D15 1 0 分两次完成 D0-D7

  33. ④RD:读信号,三态 输出,低电平有效。RD=0表示当前CPU正在对存储器或I/O端口进行读操作。 ⑤READY:准备就绪信号,输入,高电平有效。READY=1,表示CPU访问的存储器或IO端口已准备好传送数据。若CPU在总线周期T3状态检测到READY=0,表示未准备好,CPU自动插入一个或多个等待状态TW,直到READY=1为止。 ⑥INTR:可屏蔽中断请求信号,输入,高电平有效。当INTR=1,表示外设向CPU发出中断请求,CPU在当前指令周期的最后一个T状态去采样该信号,若此时,IF=1,CPU响应中断,执行中断服务程序。

  34. ⑦NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。⑦NMI:不可屏蔽中断请求信号,输入,上升沿触发。该请求信号不受IF状态的影响,也不能用软件屏蔽,一旦该信号有效,则执行完当前指令后立即响应中断。 ⑧TEST:测试信号,输入,低电平有效。 当CPU执行WAIT指令时,各个时钟周期对TEST进行一次测试,若TEST=1,CPU继续等待,直到TEST=0。 ⑨RESET:复位信号,输入,高电平有效。 RESET信号至少要保持4个时钟周期。此信号使CPU结束当前操作,重新开始执行再启动过程。

  35. ⑩MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。⑩MN//MX:工作模式选择信号,输入。MN//MX=1,表示CPU工作在最小模式系统;MN//MX=0,表示CPU工作在最大模式系统。 CLK:主时钟信号,输入。8086/8088的时钟频率为5MHZ。 电源线(VCC)和地线(GND) 8086/8088采用单+5V, 1、20引脚为地线。

  36. 2、最小模式时的专用引脚 ① M/IO:存储器或IO端口访问信号,三态输出。M/IO=1,表示CPU正在访问存储器;M/IO=0,表示CPU正在访问I/O端口。 /②WR:写信号,三态输出,低电平有效。WR=0,表示当前CPU正在对存储器或I/O端口进行写操作。 ③INTA:中断响应信号,输出,低电平有效。表示CPU响应了外设发来的中断申请。 8086的中断响应是通过两个连续中断响应周其进行的。在第二个响应周期的T2-T4,外部中断系统将中断类型码送往数据总线,以求的中断响应服务程序的入口地址。

  37. ④ALE:地址锁存允许信号,输出,高电平有效。④ALE:地址锁存允许信号,输出,高电平有效。 用来锁存地址信号A 0 -A15,ALE为正脉冲,在T1状态出现,其作为地址锁存器的选通信号。 ⑤DT/R:数据发送/接收控制信号,三态输出。 为增加数据总线的驱动能力,需加总线收发器(8286/8287 )。此信号控制收发器的数据传送方向,DT/R=1,发送数据(写操作);DT/R=0 接收数据。 ⑥DEN:数据允许信号,三态输出,低电平有效。作为数据总线上收发器8286的选通信号。

  38. ⑦HOLD:总线请求信号,输入,高电平有效。 当其他总线控制设备(如DMA)要求使用总线时,则向CPU发一高电平的请求信号即HOLD =1。 ⑧HLDA:总线请求响应信号,输出,高电平有效。当HLDA有效时,表示CPU对其它控制器的总线请求作出响应,允许出让总线,此时,所有与三总线相接的CPU的线脚呈现高阻抗状态,从而让出总线。 当总线请求部件占有总线时, HOLD 、HLDA为高,使用完后,变为低电平,CPU恢复。 • 思考:最小模式下的典型配置

  39. 系统总线信号 +5V MN/MX* M/IO* RD* WR* M/IO* RD* WR* A19/S6 ~ A16/S3 8282 A19 ~ A16 OE* STB 8088 A15 ~ A8 8282 A15 ~ A8 OE* STB A7 ~ A0 AD7 ~ AD0 8282 OE* STB ALE 8286 D7 ~ D0 DT/R* DEN* T OE*

  40. 3、最大模式时的专用引脚 在最大模式下一般需加一个转换和扩展控制电路常用8288(总线控制器),其输出控制完成CPU要进行的各种操作。 ①S2、S1、S0:总线周期状态信号,三态输出。 S2 S1 S0 操作过程 产生信号 0 0 0 发中断响应信号 INTA 0 0 1 读I/O端口 IORC 0 1 0 写I/O端口 IOWC 0 1 1 暂停 1 0 0 取指令 MRDC 1 0 1 读存储器 MRDC 1 1 0 写存储器 MWTC 1 1 1 无源

  41. ② QS1、QS2:指令队列状态信号,输出。 QS1 QS2含义 0 0 无操作 0 1 将指令首字节送入指令队列 1 0 队列为空 1 1 将指令其余字节送指令队列 ③LOCK:总线封锁信号,三态输出,低电平有效。LOCK=0,CPU不允许其它控制器占用总线。此信号由指令前缀LOCK产生。

  42. ④RQ/GT0、RQ/GT1:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。④RQ/GT0、RQ/GT1:总线请求信号(输入)/总线请求允许信号(输出),双向,低电平有效。 可供两个协处理器向CPU申请总线使用权,每个信号是双向的,即作请求又作回答,如两线同时请求, RQ/GT0优先。 • 思考:最大模式下的典型配置。

  43. 4、8086与8088的区别 ①8088内部(CPU内)有16位数据线,而对外只有8位数据线,因此数据地址复用线与8086不同。 8086:AD0—AD15 8088: AD0—AD7 A8—A15 ② 第28号引脚规定相反。 8086:最小模式下为 M/IO 8088:最小模式下为 M/IO(与8085兼容) ③ 第34号引脚不同 8086:BHE/S 8088:在最大模式中,为高电平; 8088没有高8数据,输出SS0信号,此与其它信号组合表明当前的动作。

  44. M/IO DT/R SS0 操作过程 1 0 0 发中断响应信号 1 0 1 读I/O端口 IORC 1 1 0 写I/O端口 IOWC 1 1 1 暂停 0 0 0 取指令 MRDC 0 0 1 读存储器 MRDC 0 1 0 写存储器 MWTC 0 1 1 无源

  45. §4 8086的操作和时序 • 学习时序的目的: 了解时序的配合,加深对指令的理解。 • 8086的主要操作有以下几个方面: (1)系统复位和启动操作。 (2)暂停操作。 (3)总线操作。 (4)中断操作。 (5)最小模式下的总线保持。 (6)最大模式下的总线请求/允许。

  46. 一、系统的启动和复位 1、通过RESET引脚信号执行,至少维持4个时钟周期高电平,初次加电不少于50μs。 ①复位后各寄存器值如表格:

  47. 高阻状态 高电平 ② 因为IF=0 所以不能响应可屏蔽中断。 ③ 复位后总线的状态: AD15-AD0: A19/S6-A16/S3: BHE/S7: S2、S1、S0: LOCK、RD、INTA: ALE、HLDA、QS0、QS1: 低电平 RQ/GT0: RQ/GT1:

  48. 2、系统启动 • 复位后重新启动,需经过7个时钟周期自动进入启动装态。 • 启动时CPU自动从FFFF0H开始执行程序,因而,在FFFF0H处应存放无条件转移指令,转入系统初始化程序。(引导装配程序,并给出相应的提示信息)。

  49. 二、总线操作 利用总线完成一次具体的操作为总线操作。 基本操作有:存储器读、写;I/O读、写等。 例1:最小模式下的总线读周期

  50. T1 T2 T3 T4 CLK IO/M 高M低IO A19~A16/S6~S3 A19~A16 S6~S3 BHE/S7 AD15~AD0 A15~A0 DATA IN ALE RD DT/R DEN 8086的读周期时序

More Related