




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陈俊周 微机原理与接口技术 第二章 8086微处理技术 CPU核心内最基本的单位三极管 80 x86微处理器 8086编程结构8086工作模式和引脚功能8086的操作和时序8086的存储器及I O组织 8086和8088 8086CPU 是Intel系列的16位CPU 数据线 16根D0 D15 地址线 20根A0 A19 可寻址的地址空间达220 即1M字节 采用单5V电源工作 8088CPU Intel公司为了与当时已有的一整套外围设备接口芯片直接兼容 推出了一种准16位微处理器8088 8088的内部寄存器 内部运算部件以及内部操作都是按16位设计的 但对外的数据总线只有8条 本章重点介绍8086 对8088也将作出说明 编程结构 指从程序员和使用者角度看到的结构 这种结构和CPU内部物理结构和实际布局不同 从编程结构看 8086CPU由两部分组成 总线接口单元BIU BusInterfaceUnit 执行单元EU ExecutionUnit 8086 8088微处理器的内部组成结构 总线接口部件BIU BusInterfaceUnit CPU对外部三总线的控制并与外部进行数据交换 指令执行部件EU ExecutionUnit 执行指令 总线接口单元BIU 功能 负责CPU与存储器 I O设备之间的数据传送 包括对存储器读写数据操作 对I O接口的读写操作以及取指令操作 组成 段寄存器 CS DS SS ES 16b指令指针寄存器IP20b地址加法器内部暂存器指令队列缓冲器I O控制电路 总线控制逻辑 段寄存器8086CPU内部数据结构为16位 而外部可以访问的存储空间为1MB 需要20位地址线 为了能寻址1MB空间 8086引入了 段 的概念 将内存分为若干个段 段地址存放到段寄存器 内存的实际物理地址由一个段地址和段内偏移量来确定 根据段寄存器主要用途 设有4个段寄存器 CS 16位的代码段寄存器 CodeSegmentregister DS 16位的数据段寄存器 DataSegmentregister ES 16位的扩展段寄存器 ExtraSegmentregister SS 16位的堆栈段寄存器 StackSegmentregister 16b指令指针计数器IP指示下1条指令所在的逻辑地址 偏移地址 又称为指令计数器或程序计数器 20b地址加法器功能 用于产生20b物理地址 物理地址获取方法 物理地址 段地址 10H 偏移地址即将段寄存器的内容左移4b 或乘16D 与逻辑地址 段内偏移地址 在地址寄存器内相加 产生20b物理地址 段地址存放于段寄存器 偏移地址 根据寻址方式不同 可以来自IP或其它寄存器 例 假设CS 8200H IP 1234H 则物理地址为 8200H 10H 1234H 83234H 8086微处理器寻址内存地址的方法 采用段地址 偏移地址 寻址64K的地址空间 CS DS ES SS的命名方便区分程序 数据 扩展 堆栈 内存的管理及内容的写保护检查过程简便 内部暂存器用于内部数据的暂存 该部分对用户透明 用户无权访问 指令队列缓冲器8086的指令队列为6个字节 8088为4个字节 在执行单元EU执行指令的同时 总线接口单元BIU可以从内存中取出下一条或下几条指令放在指令队列 I O控制电路 总线控制逻辑 控制CPU与外部电路的数据交换 8086有20根地址线和16根数据线 由I O控制电路控制CPU芯片16条引脚的分时复用 2 1 2执行单元EU 功能 负责指令的执行 组成 通用寄存器专用寄存器算术逻辑单元标志寄存器内部控制逻辑 通用寄存器8086CPU有4个16位通用寄存器AX BX CX和DX 这4个通用寄存器既可用作16b寄存器 也可用作8b寄存器 用途 AX AH AL 累加器 Accumulator 算术和逻辑运算以及输入 输出 BX BH BL 基地址寄存器 Base 在间接寻址中作为偏移地址寄存器 在基址寻址中作为基地址寄存器 DX DH DL 数据寄存器 Data 在乘除法指令中固定充当辅助的操作数寄存器 在输入 输出指令中固定作为外设口地址寄存器 CX CH CL 计数寄存器 Count 在块传送和循环等指令中固定的充当计数器 专用寄存器8086CPU有4个16位的专用寄存器 基数指针寄存器BP BasePointerRegister 堆栈指针寄存器SP StackPointerRegister 源变址寄存器SI SourceIndexRegister 目的变址寄存器DI DestinationIndexRegister BP一般用于访问堆栈段任意单元 SP在堆栈操作时用于确定堆栈顶在内存中的位置 BP SP也常用来指示相对于段起始地址的偏移量 SI DI则可用作寄存器间接访问 相对寻址 基址变址寻址 相对基址变址寻址寄存器 访问数据段任意单元 算术逻辑单元 ArithmeticLogicUnit 完成16位或8位算术逻辑运算 标志寄存器 FlagRegister 标志寄存器为16位寄存器 其标志分为两类 状态标志 表示前面的操作执行后 算术逻辑部件所处状态 这种状态会将影响后面的操作 控制标志 人为设置的 指令系统中有专门的指令用于控制标志的设置和清除 每个控制标志都对某一种特定的功能起控制作用 状态标志6个 SF ZF PF CF AF和OF 控制标志3个 DF IF TF 状态标志各位含义 符号标志SF SignFlag 和运算结果的最高位相同 指出前面的运算执行后的结果是正还是负 结果为正数时SF 0 负数时SF 1 零标志ZF ZeroFlag 当前运算结果为零时ZF 1 当前的运算结果非零时ZF 0 奇 偶标志PF ParityFlag 若运算结果的低8位中所含的1的个数为偶数 则PF 1 否则为0 进位标志CF 当执行加法运算使最高位产生进位 或者执行减法运算引起最高位产生借位时 则CF 1 除此之外 循环指令也会影响此标志 溢出标志OF 当运算过程中产生溢出时 会使OF为1 所谓溢出 就是当字节运算的结果超出了范围 128 127 27 1 或者当字运算的结果超出了范围 32768 32767 215 1 时称为溢出 辅助进位标志AF 加法运算时第3位往第4位有进位 或者减法运算时第3位从第4位有借位 则AF为1 此标志在BCD码运算中作为是否进行十进制调整的判断依据 状态标志举例 0101010000111001 21561 0100010101101010 17770 1001100110100011 39331 32767 ZF 0 OF 1 两个正数相加后 结果为负数 溢出 控制标志有3个 即DF IF TF方向标志DF DirectionFlag 控制串操作指令用的标志 如果DF为0 则串操作过程中地址会不断增值 如果DF为1 则串操作地址会不断减值 中断标志IF InterruptEnableFlag 可屏蔽中断允许标志 如果IF为0 则CPU不能对可屏蔽中断请求作出响应 如果IF为1 则CPU可以接受可屏蔽中断请求 跟踪标志TF TrapFlag 如果TF为1 则CPU按跟踪方式执行指令 此方式便于进行程序的调试 内部控制逻辑电路从指令队列缓冲器中取出指令 进行译码 产生各种控制循环 控制各部件的工作 26 总线接口单元与执行单元的管理 总线接口部件BIU和执行部件EU并行工作 但并不是同步的 两者互相配合工作 两者的动作管理遵循如下原则 当8086的指令队列中有2个空字节 8088有1个字节空闲 时 BIU就会自动把指令取到指令队列中 当EU要执行指令时 从指令队列头部取出一条指令 后续指令自动前移 并用几个时钟周期去执行指令 指令执行中若要访问内存或I O设备 EU将向BIU申请总线周期 若BIU空闲则立即响应 若BIU正在取一条指令 则取指令操作完成后响应EU的总线请求 当指令队列已满 而且EU又无总线访问请求时 BIU便进入空闲状态 在执行转移 调用和返回指令时 指令队列中的原有内容被自动清除 从新地址开始重新填充指令队列 27 当CPU分成多个相对独立的部件 如80286 并且把一条指令分解成多个子过程 不同的部件分别对指令流中不同的子过程进行操作 形成流水作业操作方式 流水线是CPU实现高速运算的关键技术 80286的指令流水作业 BIU IU EU AU 取指1 28 2 28086工作模式和引脚功能 2 2 18086CPU工作模式8086 8088CPU有两种基本的工作模式 最小模式 指系统中只有8086或者8088一个微处理器 系统中 所有的总线控制信号都直接由8086或8088产生 整个系统总线的控制线路最简单 最大模式 指系统中包含有两个或多个微处理器 其中一个主处理器就是8086或者8088 其他的处理器称为协处理器 用在中等规模的或者大型的8086 8088系统 说明 8086 8088工作在何种模式 完全由硬件决定 当CPU引脚的接高电平时工作在最小模式 当CPU引脚的接低电平时工作在最大模式 29 2 2 28086 8088引脚和功能 图2 38086 8088引脚分配图 括号中为最大模式 30 对于8086 8088的引脚信号 应注意 8086 8088的数据线和地址线分时复用 即某一时候总线上出现的是地址 另一时候 总线上出现的是数据 8088只能传输8位数据 所以8088只有8个地址引脚兼为数据引脚 8086有16个地址 数据复用引脚 第28引脚和第34脚 28引脚 最小模式时 8088的第28脚为低电平为存储器操作 高电平为IO操作 而8086则正好相反 34引脚 8086的第34脚是高8位数据允许信号 低电平时传送1个字 高电平时传送1个字节 8088只能进行8位传输 所以第34脚 HIGH 只用来指出状态信息 而不作复用 31 1 8086主要引脚信号 最大 最小模式通用 GND VCC 地和电源 AD15 AD0 地址 数据复用引脚 双向工作 A19 S6 A16 S3 地址 状态复用引脚 输出 S6 0表示8086CPU占用总线 S5 表明中断允许标志IF的当前设置 S5 1表明当前允许可屏蔽中断请求 S5 0表明CPU禁止一切可屏蔽中断 S4 S3 二者组合表明当前正在使用的段寄存器 表2 1 注 当CUP让出总线时 A19 S6 A16 S3均为高阻状态 表2 1S3 S4代码组合的意义 32 4 BusHighEnable 高8位数据总线允许引脚 输出 BHE信号和A0组合起来告诉连接在总线上的存储器和接口 当前数据在总线上以何种格式出现 5 Read 读信号输出 指出将要执行一个内存或I O端口的读操作 择存储器奇 偶地址单元以及字节 字传送的方法 35 6 NMI Non MaskableInterrupt 非屏蔽中断输入引脚 上升沿触发 不受中断允许标志IF的影响 这类不能用软件进行屏蔽 7 INTR InterruptRequest 可屏蔽中断请求信号输入 高电平有效 受中断允许标志IF的影响 这类中断可以用软件屏蔽 8 CLK Clock 时钟输入 8086要求时钟信号的占空比为33 即1 3周期为高电平 2 3周期为低电平 9 READY Ready 准备好 信号输入 由所访问的存储器或者I O设备发来 高电平有效 表示内存或I O设备准备就绪 36 10 RESET Reset 复位信号输入 高电平有效 8086 8088要求复位信号至少维持4个时钟周期的高电平才有效 CPU被复位后 标志寄存器 指令指针寄存器IP 段寄存器DS SS ES和指令队列都被清零 但是代码段寄存器CS被设置为FFFFH 8086 8088将从地址CS IP FFFF 0000H开始执行指令 11 测试信号 输入 低电平有效 它和WAIT指令结合使用 在CPU执行WAIT指令时 CPU进行等待 当TEST信号有效时 等待状态结束 CPU继续往下执行被暂停的指令 和WAIT配合可以实现CPU与外设同步工作 12 Minimum MaximumModeControl 最小 最大模式控制信号输入 它决定了8086 8088工作模式 如果接为 5V 则CPU处于最小模式 如果接地 则CPU处于最大模式 最小模式 38 2 最小模式下的引脚和系统配置 最小模式下的引脚 InterruptAcknowledge 中断响应信号 输出 用来对外设的INTR中断请求作出响应 ALE AddressLatchEnable 地址锁存允许信号 输出 高电平有效 表示当前在地址 数据复用总线上输出的是地址信息 地址锁存器将ALE作为锁存信号 对地址进行锁存 DataEnable 数据允许信号 输出 为收发器提供一个控制信号 表示CPU当前准备发送或接收一个数据 总线收发器将作为输出允许信号 DataTransmit Receive 数据收发信号 输出 作为数据收发方向的控制信号 如果为高电平 则进行数据发送 如果为低电平 则进行数据接收 39 5 Memory InputandOutput 存储器 输入输出控制信号 输出 区分CPU进行存储器访问还是输入 输出访问的控制信号 为高电平 表示CPU和存储器之间进行数据传输 如为低电平 表示CPU和I O端口之间进行数据传输 6 Write 写信号 输出 低电平有效 表示CPU当前正在进行存储器或I O写操作 具体到底为哪种写操作 则由M IO信号决定 40 7 HOLD HoldRequest 总线保持请求信号输入线 当8086 8088CPU外的总线主设备要求占用总线时 通过该引脚向CPU发一个高电平的总线保持请求信号 8 HLDA HoldAcknowledge 总线保持响应输出线 当CPU接收到HOLD信号后 便发出高电平有效的HLDA信号给以响应 此时 CPU让出总线控制权 发HOLD请求的总线主设备获得总线的控制权 说明 除了8086 8088CPU可以占用总线外 还有其它总线主设备可以占用总线 如DMA控制器8237 当它要占用总线时 会向CPU发出总线请求 CPU同意释放总线时发出总线响应 之后DMA控制器获得总线控制权 当DMA控制器要释放总线时使总线请求无效 CPU重新获得总线控制权 41 最小模式下的系统配置 在8086的最小模式中 硬件连接上有如下特点 最小模式 引脚接 5V 时钟发生器 用一片8284A 地址锁存器 用三片8282或74LS373 总线收发器 当系统中所连接的存储器和外设比较多时 需要增加系统数据总线的驱动能力 这时 可选用两片8286或74LS245作为总线收发器 控制总线 最小模式下一般负载较轻 不需要驱动 故直接从8086 8088引出 42 图2 48086最小工作模式下的典型配置 存储器 I O端口 43 1 8284A和CPU的连接 功能 8284A除提供频率恒定的时钟信号外 还对准备好 READY 信号和复位 RESET 信号进行同步 这样 从外部来说 可以在任何时候发出这两个信号 但是 8284A的内部逻辑电路设计成在时钟后沿 下降沿 处使READY和RESET有效 根据不同的震荡源 8284A和震荡源之间有两种不同连接方式 右图为常用的一种 图2 5时钟发生器8284与8086连接图 8086 8088CPU的数据线 地址线复用技 45 2 8282和CPU的连接 地址锁存器功能 锁存地址信号 增强总线驱动能力 必要时隔离地址总线和系统总线 OE 图2 6 地址锁存器8282与8086的连接 8位锁存器芯片的内部结构及功能表 47 说明 8282是具有三态输出的8位锁存器芯片 其选通信号输入端STB和CPU的ALE端相连 第一个锁存器的DI7 DI0接CPU和AD7 AD0 其输出DO7 DO0就是系统地址总线的低7位 为输出允许信号 当为低电平时 8282的输出信号DO7 DO0有效 而当为高电平时 DO7 DO0变为高阻抗 在不带DMA控制器的8086 8088单处理器系统中 将接地就可以了 除了8282外 8086 8088系统也常用74LS373作为地址锁存器 用法与8282几乎一样 48 3 8286和CPU的连接 数据收发器功能 选通 隔离CPU数据线和系统总线 选择数据传送方向 增强总线驱动能力 8286为8位收发器 引脚T 输入 决定数据传送方向 T 1时数据发送 T 0时数据接收 引脚OE 输出允许信号 当OE 0时才能进行数据传输 图2 7总线驱动器8286和8086的连接 8位双向数据收发器的内部结构和功能表 50 3 最大模式下的引脚和系统配置 最大模式下的引脚 1 QS1和QS0 InstructionQueueStatus 指令队列状态输出线 二者的组合指明指令队列的状态 表2 4QS1和QS0代码组合的含义 51 2 S2 S1 S0 BusCycleStatus 总线周期状态信号输出线 最小模式中 控制信号 ALE 等都是直接由CPU给出的 在最大模式系统中 状态信号隐含了这些信息 8288从这些状态信息的组合中完成这些信号的译码和输出 表2 5的代码组合和对应的操作 52 3 和 Request Grant 总线请求信号输入 总线请求允许信号输出线 功能 供CPU以外的处理器用来发出使用总线的请求信号和接收CPU对总线请求信号的回答信号 每个引脚相当于最小模式下HOLD和HLDA的功能 双向传输 总线请求信号和允许信号在同一个引脚上传输 但方向相反 采用分时复用方式工作 优先级 比优先级高 53 最大模式下的典型配置 最大模式配置和最小模式配置主要的差别 最大模式 接低电平 控制总线 最大模式下需要总线控制器 8288 需要总线控制器来组合控制信号的原因 在最大模式系统中 包含2个或多个处理器 需要用总线控制器解决主处理器和协处理器之间的协调工作问题和对总线的共享控制问题 54 图2 88086最大工作模式典型配置 8259A中断控制电路 55 最大模式系统中 8288总线控制器的连接 8282锁存器 3个 STB 图2 9总线控制器8288与8086的连接 56 CEN CPU对系统总线的控制允许 输入0 隔离CPU与系统总线 使8288输出引脚为高阻态1 连通CPU与系统总线 使8288输出引脚有效IOB 总线工作方式选择 输入0 系统总线可共享 CPU何时让出总线由AEN决定 1 系统总线不可共享 CPU独占 地址允许 输入0 产生DEN有效信号 使CPU与系统数据总线连通1 产生DEN无效信号 使CPU与系统数据总线隔离 57 读存储器命令 MemoryReadCommand 信号 用来通知内存将所寻址的单元中的内容送到数据总线 写存储器命令 MemoryWriteCommand 信号 用来通知内存接收数据总线上的数据 并将数据写入所寻址的单元中 读I O命令 I OReadCommand 用来通知I O接口将所寻址的端口中的数据送到数据总线 写I O命令 I OWriteCommand 信号 用来通知I O接口去接收数据总线上的数据 并将数据送到所寻址的端口中 如何通过程序区分寻址存储器和外设端口 下区分寻址存储器和外设端口 练习 1 8086CPU由哪两部分组成 它们的主要功能是什么 8086与8088的主要区别是什么 8086 8088微处理器的内部组成结构按照功能可分成总线接口部件BIU BusInterfaceUnit 和指令执行部件EU ExecutionUnit 两大部分 BIU的主要作用是实现CPU对外部三总线的控制并与外部进行数据交换 具体的操作主要是根据指令的要求合成20位的地址信号及产生与外部总线数据传输需要的控制信号时序 最终实现与外部的数据交换 1 8086CPU由哪两部分组成 它们的主要功能是什么 8086与8088的主要区别是什么 EU的作用则是执行指令 指令队列中的指令经EU控制系统转换成具体的操作控制信号并实现指令规定的运算或操作 8088与8086在芯片内部是完全一样的 主要区别是在外部将数据线缩减成了8位 另有几根外部引脚定义不同 2 8086 8088CPU内部有哪些寄存器 其主要作用是什么 通用寄存器 AX BX CX DXAX AH AL 累加器 Accumulator 是寄存器中最忙的一个 大多数的算术和逻辑运算以及输入 输出都必须经由它进行 BX BH BL 基地址寄存器 Base 在间接寻址中作为偏移地址寄存器 在基址寻址中作为基地址寄存器 CX CH CL 计数寄存器 Count 在块传送和循环等指令中固定的充当计数器 DX DH DL 数据寄存器 Data 在乘除法指令中固定充当辅助的操作数寄存器 在输入 输出指令中固定作为外设口地址寄存器 2 8086 8088CPU内部有哪些寄存器 其主要作用是什么 SI 源变址寄存器 SourceIndex 用于在数据块传送类指令中固定与DS一起提供源数据块地址 其值可自动加减 另外它还可以为DS或ES提供偏移地址或变址值 DI 目的变址寄存器 DestinationIndex 用于在数据块传送类指令中固定与ES一起提供目的数据块地址 其值可自动加减 由标志寄存器FR中的DF位指定 另外它还可以为DS或ES提供偏移地址或变址值 2 8086 8088CPU内部有哪些寄存器 其主要作用是什么 CS 代码段寄存器 CodeSegment 固定与IP一起寻址内存代码区 SS 堆栈段寄存器 StackSegment 固定与SP或BP寻址内存的堆栈区 DS 数据段寄存器 DataSegment 可与SI DI BP等寻址内存数据区 ES 附加段寄存器 ExtradataSegment 可与SI DI BP等寻址内存数据区 3 试述8086 8088CPU中的SP BP SI DI有何种特殊用途 SP 堆栈指针 StackPointer 固定配合SS来指定 寻址 内存中的堆栈区栈顶的当前偏移地址 当执行完入栈 出栈指令后 SP的值会自动减2 加2 其值将始终指向栈顶位置 BP 基数指针 BasePointer 用于提供多种寻址方式中的偏移地址或基地址 还用于配合SS提供堆栈区的非栈顶单元偏移地址 3 试述8086 8088CPU中的SP BP SI DI有何种特殊用途 SI 源变址寄存器 SourceIndex 用于在数据块传送类指令中固定与DS一起提供源数据块地址 其值可自动加减 另外它还可以为DS或ES提供偏移地址或变址值 DI 目的变址寄存器 DestinationIndex 用于在数据块传送类指令中固定与ES一起提供目的数据块地址 其值可自动加减 由标志寄存器FR中的DF位指定 另外它还可以为DS或ES提供偏移地址或变址值 4 8086CPU有哪些程序状态字 哪些属于状态标志哪些属于控制标志 它们各自的作用是什么 状态标志 CF 进位标志 CarryFlag 运算 操作结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九年级道德与法治上册 第二单元 民主与法治 第三课 追求民主价值 第2框 参与民主生活说课稿2 新人教版
- 第13课 修饰美化工作表(教案)2023-2024学年五年级下册信息技术人教版
- 可穿戴医疗设备在慢性病管理中的创新应用与发展报告
- 消防知识中心培训课件
- 大型工程项目联合招标协议
- 1.2 空间向量基本定理说课稿-2025-2026学年高中数学人教A版2019选择性必修第一册-人教A版2019
- 第3课 演奏音乐说课稿-2025-2026学年小学信息技术(信息科技)第三册上粤教版
- 乡村新型农业合作示范项目协议
- 环保集团资金管理制度及流程手册
- 2025年图书馆RFID行业需求分析及创新策略研究报告
- 2025年新人教版小升初分班考试数学试卷
- 2022年版 义务教育《数学》课程标准
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 口腔科车针分类
- 急性st段抬高型心肌梗死
- 幼儿文学课件完整版
- DB6101T3128-2022养老服务规范 助餐服务
- GB/T 21709.8-2008针灸技术操作规范第8部分:皮内针
- 资本论第三卷讲义课件
- 离心式压缩机试车记录
- 穴位敷贴中医护理技术操作规范
评论
0/150
提交评论