微机原理与接口技术 第3章笔记

#第3章 80x86微处理器

  • Intel 8086微处理器

    • Intel 8086微处理器是由美国Intel公司1978年推出的高性能的16位微处理器,是第三代处理器的典型代表。
    • Intel 8086微处理器有 20根地址线,直接寻址能力达 1MB。具有16根数据总线。内部总线和ALU均为16位,可进行8位和16位操作。

  • 8086的存储器组织

    1. 寻址空间和数据存储格式

      • 寻址空间:存储器地址允许的最大范围,即CPU能访问多大范围的地址。

      • 计算机的寻址地址是由CPU地址总线的位数决定的。当存储器按字节编址时,若地址总线为n位,CPU寻址范围是 2n 字节。

      • 8086地址总线20位,寻址能力1MB.每个字节用唯一的一个地址码标识。地址的范围位0~220-1,即0000H~FFFFH。这种每个字节对应一个地址的方式成为按字节编址,如下图所示。
        微机原理与接口技术 第3章笔记

      • 8086系统的存储空间虽然按照字节编址,但在实际编程时,一个变量可以是字节、字或双字类型

        • 字节数据BYTE
          字节数据8位,对应的地址可以时偶地址(地址的最低位A0=0),也可以是奇地址(A0=1)。当CPU存取字节数据的时候,只需给出对应的实际地址即可。
        • 子数据WORD
          8086字长16位,每个字数据存放在两个连续的字节单元中。其中高8位存放在高地址字节(称为高字节),低8位存放在低地址字节(称为低字节),并规定将低字节的地址作为这个字的地址(字地址)。若该字地址位于偶地址,则称为规则字,否则称为非规则字
          微机原理与接口技术 第3章笔记

        *双字数据DOUBLE WORD
        双字数据占用4个连续字节单元,并规定最低字节地址为双字的地址。与数据总线D15~D8相连的块称为高位字节块,和数据总线D7~D0相连的块称为低位字节块
        高位字节块利用 BHE ‾ \overline{\text{BHE}} BHE信号作为该块的选择信号;低位字节块利用地址线A0=0作为该块的选择信号。
        微机原理与接口技术 第3章笔记

    2. 存储器的分段结构和物理地址的形成

      • 在8086CPU可以直接寻址的1MB存储器的物理空间中,其一一对应的20位地址00000H~FFFFFH,称为存储单元的物理地址。
      • 内存单元的逻辑地址由段地址和偏移地址来表示,格式为:
        段地址:偏移地址
      • 物理地址的计算过程:
        物理地址=段地址×16+偏移地址
        当CPU寻址某个存储单元时,首先将段地址左移4位,再与16位偏移地址相加,从而形成20位的物理地址。

  • 8086微处理器的内部结构

    1. CPU内部结构
      • 8086CPU内部由两大功能部件组成:总线接口部件 BIU执行部件 EU
        微机原理与接口技术 第3章笔记

      • BIU部件负责存取指令和数据,EU部件负责执行命令,两者是各自独立工作的,在EU执行命令的同时,BIU可以预取下面一条或几条指令。

    2. CPU寄存器结构
      • 8086微处理器内部共有14个16位寄存器。这14个寄存器按用途可分为数据寄存器、段寄存器、地址指针与变址寄存器、控制寄存器
        微机原理与接口技术 第3章笔记

        1.数据寄存器:用来暂时存放计算过程中所用到的操作数、结果或其他信息,包括累加器AXAccumulator、基址寄存器BXBase、计数寄存器CXCount和数据寄存器DXData

        1. 段寄存器:访问存储器的地址码由段地址和段内偏移地址组成,而段寄存器用来存放段地址,包括4个16位寄存器:代码段寄存器CSCode Segment、数据段寄存器DSData Segment、堆栈段寄存器SSStack Segment和附加段寄存器ESExtra Segment
        2. 地址指针与变址寄存器:一般用于存放主存地址的段内偏转地址,用于形成20位的物理地址。包括四个16位寄存器:堆栈指针寄存器SPStack Pointer、基址指针寄存器BPBase Pointer、源变址寄存器SISource Index和目的变址寄存器DIDestination Index
        3. 控制寄存器:包括指令指针寄存器IP和标志寄存器FLAGS。
        • 指令指针寄存器IPInstruction Pointer:用来存放下一条将要执行的指令在代码段中的偏移地址。它具有自动加1功能。
        • 标志寄存器FLAGS:存放该处理器的程序状态字。状态标志反映了当时运算和操作结果的状态条件,可作为程序控制转移与否的依据,分别是CF、PF、AF、ZF、SF和OF。

    数据就是 A B C D, 段寄存器 C D E S,指针变址 S B S D, 指针寄存器是IP,标志寄存器FLAGS,为什么能够红旗飘飘,因为树汁是它的状态(COZ SAP),莫码DIT是它的控制位。


  • 8086总线工作周期

    1.时钟周期:在统一的时钟脉冲CLK的控制下,按节拍逐步进行的执行的指令,一个时钟脉冲时间称为一个时钟周期Clock Cycle。时钟周期由计算机的主频决定,如8086的主频为5MHz,一个时钟周期为200ns。
    2.总线周期:CPU通过总线对存储器或外设I/O接口进行以此访问所需要的时间称为总线周期Bus Cycle一个基本的总线周期由4个时钟周期组成,分别称为T1、T2、T3和T4
    3.等待周期Tw:当被选中进行数据读/写的存储其或外设无法在3个周期内完成数据读/写时,就由其发出一个请求延长总线周期的信号到READY引脚,CPU收到请求后,就在T3和T4中间插入等待周期Tw
    4.空闲周期Ti:如果在一个总线周期后不立即执行下一个总线周期,即总线上无数据传输操作,系统总线处于空闲状态,则这是执行空闲周期Ti
    微机原理与接口技术 第3章笔记

    5.指令周期:一条指令从开始到最后执行完毕所需的时间。一个指令周期由一个或若干个总线周期组成。


  • 8086中断系统

    8086中断系统可以直接识别和处理256个不同的中断源。这256个中断源都有唯一的一个中断识别号(0~255)
    1. 硬件中断

    • 可屏蔽中断:CPU在当前指令周期的最后一个T状态采样中断请求先INTR,若发现由可屏蔽中断请求,且中断时开放的(IF=1),则CPU转入中断响应周期。
    • 非屏蔽中断:**中断类型码为2。**非屏蔽中断NMI具有比可屏蔽中断INTR更高的优先权。

    2.软件中断
    软件中断由处理器内部时间产生的中断,又称内部中断。它主要是由指令驱动或由指令通过CPU状态间接驱动来引起中断。

    • 除法错中断:中断类型码为0.
    • 单步中断: 中断类型码为1.
    • 断点中断: 中断类型码为3.
    • 溢出中断: 中断类型码为4.
    • 中断指令INTn引起的中断。

    3.中断向量与中断向量表

    • 由中断类型码来查找中断入口地址进而转向中断服务程序的方法,称为向量中断,每一个中断类型码对应一个中断向量,即用来提供中断入口地址的一个地址指针。
    • 每一个中断服务程序都有其唯一确定的入口地址,包括中断服务程序的段地址CS和偏移地址IP,共4B。
    • 用于存放中断入口地址的存储区就称为中断向量表。8086微机系统中断向量表需要占用256×4=1KB的地址空间。

  • ###8086微处理器外部基本引脚与工作模式
    1.8086系统总线结构
    8086设计为可工作在两种模式下,即最小模式和最大模式。最小模式用于由8086单一微处理器构成的小型系统;最大模式用于实现多处理机系统。
    8086采用双列直插式封装,具有40条引脚,使用+5V电源供电。
    微机原理与接口技术 第3章笔记

    2.最小模式
    当8086CPU的MN/ MX ‾ \overline{\text{MX}} MX引脚接+5V电源时,CPU处于最小模式。
    微机原理与接口技术 第3章笔记

    • 使用一片8284,作为时钟信号发生器。
    • 使用三片74LS373,作为地址锁存器。2×8=16<20,3×8=24>20
    • 使用两片74LS245,作为总线收发器。2×8=16

    3.最大模式


  • 8086微处理器的时序

    1. 系统的复位与启动
      8086CPU的RESET引脚用来启动或重启动系统。要求在RESET引脚上的复位正脉冲信号宽度至少为4个时钟周期,如果时初次加点启动,则要求宽度不少于50μs。
      8086CPU复位时,结束原有的操作和状态,维持在复位状态,各内部寄存器及指令队列被设置为初始值。
      微机原理与接口技术 第3章笔记

    2. 最小模式系统总线周期时序
      微机原理与接口技术 第3章笔记

    3. 总线保持
      如果CPU以外的其他模块需要占用总线,就会向CPU提出请求。CPU接收到请求后,如同意让出总线使用权,就会发出响应信号,由请求模块占用总线,请求模块使用完后再将总线控制权还给CPU,这一过程称为总线保持。
      在总线保持期间,CPU继续执行已取到得指令队列中的指令,直到指令需要使用总线或指令队列为空为止。
      微机原理与接口技术 第3章笔记