2012第二章8086的体系结构幻灯片_第1页
2012第二章8086的体系结构幻灯片_第2页
2012第二章8086的体系结构幻灯片_第3页
2012第二章8086的体系结构幻灯片_第4页
2012第二章8086的体系结构幻灯片_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

早期使用过的微处理器 更详尽情况看这里 第2章微处理器 第2章微处理器 8086是高性能的第三代微处理器 是Intel系列的16位微处理器 8086有16根数据线和20根地址线 因为可用20位地址 所以可寻址的地址空间达220字节即1M字节 8088是准16位的微处理器 内部总线和寄存器16位对外的数据总线8位 1 8086的编程结构2 8086的寄存器的用法3 8086 8088存储器组织和I O组织4 8086 8088的引脚信号和功能5 8086的工作时序6 总线介绍 第2章微处理器 所谓编程结构 就是指从程序员和使用者的角度看到的结构 当然 这种结构与CPU内部的物理结构和实际布局是有区别的 编程结构如下图所示 18086的编程结构 从功能上 8086分为两部分 总线接口部件BIU BusInterfaceUnit 执行部件EU ExecutionUnit 体系结构的改进 把取指令和执行指令的操作分开 这两个单元并行工作 即所谓的流水线结构 总线接口部件执行部件流水线结构 1 总线接口部件 BusInterfaceUnit 功能 1 从内存取指令送到指令队列2 访问内存单元和外设端口结构 4个16位的段地址寄存器CS 代码段寄存器DS 数据段寄存器SS 堆栈段寄存器ES 扩展段寄存器 8086编程结构图 结构 16位的指令指针寄存器IP20位的地址加法器 6个字节的指令队列缓冲器 1 总线接口部件 BusInterfaceUnit 8086编程结构图 说明 1 8086的指令队列为6个字节 8088的指令队列为4个字节 2 地址加法器用来产生20位地址 段地址寄存器的内容左移4位 偏移量 20位的实际物理地址段地址 16 偏移量 20位的实际物理地址 例 CS FE00H IP 0200H 则指令的物理地址是FE000H 0200H FE200H 2 执行部件 ExecutionUnit 功能 负责指令的执行 结构 4个16位的通用寄存器AX 累加器BX 基址寄存器CX 计数器DX 数据寄存器 4个16位的专用寄存器SP 堆栈指针寄存器BP 基址指针寄存器SI 源变址寄存器DI 目的变址寄存器 16位算术逻辑单元ALU16位的标志寄存器 8086编程结构图 3 流水线 结构 总线接口部件和执行部件协调工作 取指令执行指令取指令执行指令取指令执行指令 8086的寄存器按照其功能可以分成四组 数据寄存器组指针和变址寄存器组段寄存器组标志寄存器 28086的寄存器用法 它包括AX BX CX DX 作用 保存运算的操作数 中间运算结果例如 MOVAX 3456HADDAX 30HAX AH AL BX BH BLCX CH CLDX DH DL例如 MOVDL 04HADDDL 30H 1 数据寄存器组 特点 具有良好的通用性 使用十分灵活 在某些指令中规定了某些通用寄存器的专门用法 8086编程结构图 通用寄存器的隐含用法 AX累加器隐含用法 乘法除法运算MUL DIV输入 输出操作IN OUT BX基址寄存器隐含用法 用到存储单元地址时 BX可以提供 而AX CX DX不行 在查表指令XLAT中 将BX作为表首地址的表中第AL个元素的值查出来放于AL寄存器中 通用寄存器的隐含用法 CX计数寄存器隐含用法 当字符串操作时 CX起到倒计数的作用 在循环程序设计时 CX起到控制循环次数的作用 通用寄存器的隐含用法 DX数据寄存器隐含用法 整字乘法 存放结果的高位部分 整字除法 存放被除数的高位 在输入 输出操作时存放设备的地址 通用寄存器的隐含用法 2 指针和变址寄存器组 这组寄存器包括IP SP BP SI DI IP InstructionPointer 指令指针CS IP程序的下一条指令的地址 SP StackPointer 堆栈指针SS SP堆栈操作的地址BP BasePointer 基址指针SI SourceIndex 源变址寄存器DI DestinationIndex 目的变址寄存器 特点 在进行存储器访问时 用于形成20位物理地址的偏移地址部分 在任何情况下 它们都不能单独形成访问内存的地址码 8086编程结构图 指针和变址寄存器的隐含用法 IP InstructionPointer 指令指针 作用 是与代码段寄存器CS一起指出程序的下一条指令的地址 隐含用法如下图所示 SP StackPointer 堆栈指针 作用 它与堆栈段寄存器SS一起提供堆栈操作的地址 隐含用法如下图所示 指针和变址寄存器的隐含用法 BP BasePointer 基址指针 作用 在某些寻址方式中 BP的内容构成段内偏移的一部分 注意 凡偏移地址中含有BP内容时 如果不加特殊说明 其段地址由堆栈段寄存器SS提供 隐含用法如下图所示 指针和变址寄存器的隐含用法 SI SourceIndex 和DI DestinationIndex 是两个变址寄存器 作用 在有变址的寻址方式中 其内容作为段内偏移的组成部分 注意 凡偏移地址中仅含有SI DI内容与常数时 如果不加特殊说明 其段地址由数据段寄存器DS提供 在字符串操作指令中 默认的操作对象是DS SI指向的内存单元或者ES DI指向的内存单元 指针和变址寄存器的隐含用法 隐含用法如下图所示 当然 这些指针和变址寄存器除了有地址方面的用途外 也可以作为普通的16位寄存器使用 但IP除外 例如 MOVAX DI 将DI寄存器的内容送入AX寄存器 3 段寄存器组 作用 提供段地址8086 8088可访问的存储空间为1MB字节 地址编码20位是由段地址和偏移地址共同合成 形成示意图如下 8086编程结构图 8086 8088有4个段寄存器CS CodeSegment 代码段寄存器DS DataSegment 数据段寄存器SS StackSegment 堆栈段寄存器ES ExtraSegment 附加段寄存器 CS 与IP一起提供将要执行的指令的内存地址 SS 与SP一起构成堆栈操作的内存地址 DS 提供一般内存数据的段地址 而内存数据的偏移地址可以由多种寻址方式提供 ES CS SS 在有些情况下提供一般内存数据的段地址 而内存数据的偏移地址也可以由多种寻址方式提供 形成物理地址举例 例 寄存器的值如下CS 1000H DS 2000H SS 3000H ES 4000H IP 100H SP 200H BP 300H SI 400H DI 500H 1 隐含下条指令的地址为多少 CS IP 即1000H 16 100H 10100H表示地址为10100H的内存单元内存放的是下条指令的编码 形成物理地址举例 例 寄存器的值如下CS 1000H DS 2000H SS 3000H ES 4000H IP 100H SP 200H BP 300H SI 400H DI 500H 2 如果有堆栈操作 则堆栈对应的内存单元的地址为多少 SS SP即3000H 16 200H 30200H 3 有如下指令 注意默认段寄存器的使用 MOVAL SI 将DS SI对应的内存单元的内容放入AL 即地址20400HMOVAL ES SI 内存地址ES SI 地址40400HMOVAL BP 内存地址SS BP 地址30300HMOVAL CS BP 内存地址CS BP 地址10300HMOVAL ES DI 内存地址ES DI 地址40500H 例 寄存器的值如下CS 1000H DS 2000H SS 3000H ES 4000H IP 100H SP 200H BP 300H SI 400H DI 500H 4 标志寄存器 Flags 状态标志CF AF OF SF PF ZF控制标志DF IF TF CF CarryFlag 进位标志 运算结果最高位是否发生进 借 位 也可用循环移位指令移入的内容来决定 CF 1进 借 位 CF 0无进 借 位 状态标志 表示处理器当前运行的状态 AF AuxiliaryCarryFlag 辅助进位标志 低4位向前有进 借 位 一般在BCD码运算中作为是否进行十进制调整的判断依据 AF 1进 借 位 AF 0无进 借 位 OF OverflowFlag 溢出标志 运算结果是否溢出 溢出 就是数据在规定的范围内无法正确表示了 OF 1结果超出运算长度的补码表示范围 OF 0无溢出 状态标志 表示处理器当前运行的状态 SF SignFlag 符号标志 表示补码运算结果的正负号 SF 1负值 SF 0正值 状态标志 表示处理器当前运行的状态 PF ParityFlag 奇 偶标志 运算结果低8位中1的个数的奇偶数 用于数据传输时的奇偶校验 PF 1运算结果低8位中1的个数为偶数 否则为奇数 ZF ZeroFlag 零标志 指出当前运算结果是否为0 ZF 1当前运算结果为0 否则为非0 DF DirectionFlag 方向标志 指定字符串处理指令的地址变化方向 DF 0地址增量变化 DF 1地址减量变化 控制标志 控制处理器的某一特定功能 IF InterruptEnableFlag 可屏蔽中断允许标志 IF对不可屏蔽中断和内部中断无影响 IF 1表示允许CPU响应外部可屏蔽中断请求 TF TrapFlag 陷阱标志 单步执行标志 TF 1CPU执行单步方式 TF 0CPU正常执行 标志寄存器举例 0101010000111001 01000101011010101001100110100011最高位 1 SF 1低8位中偶数为4个 PF 1运算结果不为0 ZF 0低4位向前有进位 AF 1最高位向前没有进位 CF 0次高位向前有进位 Cs 0 Cp 1 OF CsCp 1 48086 8088的引脚信号和功能 8086CPU双列直插式的封装形式40条引脚分时复用的地址 数据总线 8086 8088CPU的引脚信号大致相同 40引脚中按功能分为地址线 数据线 控制和状态线 定时信号 电源和地线 部分引脚功能8086 8088的工作模式8086的对外总线连接 引脚信号图 引脚信号图 引脚信号图 引脚信号图 二 工作模式 最小模式 只有一个CPU工作 所有总线控制逻辑都直接由CPU产生 8086 8088有对系统的绝对控制权 最大模式 有多个CPU工作 系统中除了8086 8088外 还有8087数学处理器或者8089输入输出处理器 因而牵涉到总线控制协调问题 38086 8088存储器组织和I O组织 Intel808616位微处理器20位的地址总线可寻址多大空间 用20根地址总线来管理220 1MB的存储器空间 用16根地址总线来管理216 64K的端口地址 8086 8088的存储器组织访问8086 8088存储器的寻址方式 一 8086 8088的存储器组织 分段管理的技术 微处理器内部的寄存器16位的 最大寻址空间64K 为了寻址20位的地址空间 在8086对存储器管理的设计中 采用了分段管理的技术 把整个存储空间分成许多个逻辑段 每个逻辑段的容量不超过64KB 允许它们在整个存储空间中浮动 这样每个逻辑段都有一个20位的起始地址 其中低4位二进制码全部为0 而其高16位是该段的段基地址 存放在相应的段寄存器中 段内各内存单元的相对地址称为偏移地址 可用系统中的16位通用寄存器来存放 每个逻辑段长度64K 物理地址 存储单元的实际地址 20位逻辑地址 编程时所用的地址段基址 偏移地址物理地址 段基址 16 偏移地址段的开始地址是一定能被16整除段与段之间允许重叠 图2 5存储空间逻辑段结构和不重叠段结构 例 逻辑地址1000H 2345H1234H 0005H对应的物理地址都是12345H 一个物理地址 可对应多个逻辑地址 二 访问8086 8088存储器的寻址方式 所谓的寻址方式 指的是指获得操作数所在的地址或操作地址的各种方法也就是得到段地址 偏移地址的方式 寻址方式分类 获得指令操作数的寻址方式获得转移地址的寻址方式 程序转移 调用等 获得操作数的寻址方式 1 立即数寻址操作数直接存放在指令中 例如 MOVAL 12H 将16进制数12H送入AL寄存器MOVCX 5678H 将16进制数1200H送入CX寄存器 图2 7立即数寻址方式示意图 2 寄存器寻址操作数在CPU的内部寄存器中 可将寄存器的内部编号放入指令中 例如 MOVAX DX 获得操作数的寻址方式 图2 8寄存器寻址方式示意图 获得操作数的寻址方式 3 存储器寻址 直接寻址数据总在存储器中 存储单元的有效地址总是由指令直接给出 例2 4 指令 MOVAX 2080H 的寻址过程 设DS 1600H 则操作数的逻辑地址为1600H 2080H 其物理地址 16000H 2080H 18080H指令执行后 AL 18080H 单元的内容 AH 18081H 单元的内容 指令执行情况如图2 9所示 注意 这里的默认的段地址寄存器是DS 寄存器间接寻址操作数存放在存储器中 而操作数的偏移地址存放在指令指明的寄存器中 书写时寄存器必须加上 间接寻址的寄存器只能是BX BP SI和DI之一以BX SI和DI进行间接寻址 则操作数默认存放在DS段中 获得操作数的寻址方式 例2 6 指令 MOVAX DI 的寻址过程默认段寄存器DS 设DS 3000H DI 2500H则源操作数的物理地址 30000H 2500H 32500H指令执行后 AL 32500H 单元的内容 AH 32501H 单元的内容 具体执行情况如图2 10所示 执行结果是 AX 6655H 图2 10寄存器间接寻址方式示意图 寄存器相对寻址操作数在内存中的偏移地址是间址寄存器和指令中指定的8位或16位位移量之和间址寄存器 BXBPSIDIBXSIDI默认的段寄存器为DSBP默认的段寄存器为SS 获得操作数的寻址方式 例2 8 指令 MOVAX BX 100H 的寻址过程 MOVAX 100H BX MOVAX BX 100H MOVAX 100H BX MOVAX 100H BX MOVAX BX 100H 获得操作数的寻址方式 例如 MOVAL BP 100H 物理地址 SS 16 BP 100H 注意 在此种寻址方式中 如果采用的段不是SS段 则必须在指令的前面加前缀指出段寄存器名 例如 MOVAL ES BP 100H 物理地址 ES 16 BP 100 获得操作数的寻址方式 SI和DI源变址寄存器和目的变址寄存器例如 MOVAX COUNT SI 如果采用的段不是DS段 则必须在指令的前面加前缀指出段寄存器名 用这两个寄存器进行寻址也称作变址寻址 获得操作数的寻址方式 基址变址寻址BP和BX基址指针寄存器和基址寄存器 基址类寄存器 SI和DI源变址寄存器和目的变址寄存器 变址类寄存器 说明 此类寻址方式采用的默认段寄存器依赖基址类寄存器是BX还是BP来确定是DS还是SS 获得操作数的寻址方式 例2 10 指令 MOVAX BX DI 的寻址过程 设DS 7000H BX 1000H DI 5000H则操作数的物理地址 70000H 1000H 5000H 76000H指令执行后 AL 76000H 单元的内容 AH 76001H 单元的内容 具体执行情况如图2 12所示 MOVAX BX DI 等价 获得操作数的寻址方式 例2 11 指令 MOVAX BP SI 的寻址过程 设SS 5000H BP 2000H SI 6000H则操作数的物理地址 50000H 2000H 6000H 58000H指令执行后 AL 58000H 单元的内容 AH 58001H 单元的内容 MOVAX BX BP 错误 同时使用了两个基址寄存器MOVAX DI SI 错误 同时使用了两个变址寄存器 基址变址相对寻址操作数的偏移地址是由基址寄存器 变址寄存器的内容再加上在指令中指明的8位或16位的相对位移量而得到的 例2 12 指令 MOVAX BP DI 8 的寻址过程 设SS 4000H BP 1000H DI 0005H则操作数的物理地址 40000H 1000H 0005H 0008H 4100DH指令执行后 AL 4100DH 单元内容 AH 4100EH 单元内容 具体执行情况如图2 13所示 获得操作数的寻址方式 4 隐含寻址有些指令的指令码中不包含指明操作数的地址的部分 而其操作码本身隐含的指明了操作数的地址 如乘除法指令 字符串操作类指令等 例2 13 指令 MULCL 的功能是将AL中的内容与CL中的内容相乘 乘积送到AX累加器中 这条指令隐含了被乘数AL与乘积AX 58086的工作时序 在微机系统中 CPU是在时钟信号控制下 按节拍有序地执行指令序列 所谓时序 就是指CPU执行各种操作时 引脚信号在时间上的工作关系 几个概念 指令执行周期 从取指令开始 经过分析指令 对操作数寻址 然后执行指令 保存操作结果的过程 总线周期 在一个指令执行周期中 通过总线进行一次对存储单元或I O端口读或写的操作过程 时钟周期 时钟脉冲信号的一个循环时间 又称为一个 T 状态 是CPU的基本时间计量单位 它由计算机主频决定 一个最基本的总线周期由4个时钟周期组成 总线周期的时序 在1个最基本的总线周期中 习惯上将4个时钟周期分别称为4个状态 即T1状态 T2状态 T3状态和T4状态 等待时钟周期Tw 在总线周期的T3和T4之间插入 总线处于等待状态 T1状态CPU往多任务总线上发出地址信息 以指出要寻址的存储单元或外设端口的地址 T2状态CPU从总线上撤消地址 而使总线的低16位浮置成高阻状态 为传输资料作准备 总线的最高4位 Al9一A16 用来输出本总线周期状态信息 这些状态信息用来表示中断允许状态 当前正在使用的段寄存器名等 总线周期的时序 T3状态多路总线的高4位继续提供状态信息 而多路总线的低16位 8088则为低8位 上出现由CPU写出的资料或者CPU从内存或端口读入的资料 如果外设或内存速度较慢 不能及时地配合CPU传送资料 这时 外设或内存会通过 READY 信号线在T3状态启动之前向CPU发一个 资料未准备好 信号 于是CPU会在T3之后插入1个或多个附加的时钟周期Tw Tw也叫等待状态 在Tw状态 总线上的信息情况和T3状态的信息情况一样 当指定的内存或外设完成资料传送时 便在 READY 线上发出 准备好 信号 CPU接收到这一信号后 会自动脱离Tw状态而进入T4状态 总线周期的时序 T4状态总线周期结束 需要指出 只有在CPU和内存或I O接口之间传输资料 以及填充指令队列时 CPU才执行总线周期 可见 如果在1个总线周期之后 不立即执行下1个总线周期 那么 系统总线就处在空闲状态 此时 执行空闲周期 在空闲周期中 可以包含1个时钟周期或多个时钟周期 这期间 在高4位上 CPU仍然驱动前一个总线周期的状态信息 而且 如果前一个总线周期为写周期 那么 CPU会在总线低16位上继续驱动资料信息 如果前一个总线周期为读周期 则在空闲周期中 总线低16位处于高阻状态 总线周期的时序 1 读周期时序 高 位数据总线允许 地址锁存 数据使能信号 写 读 说明 总线 Bus 是计算机各种部件之间传送信息的公共通路 它是CPU 内存 输入 输出设备传递信息的公用通道 6总线 1 总线的带宽 总线数据传输速率 总线的带宽指的是单位时间内总线上传送的数据量 即每钞钟传送多少字节 总线的带宽取决于总线的位宽和工作频率 2 总线的位宽总线的位宽指的是总线能同时传送的二进制数据的位数 或数据总线的位数 即32位 64位等总线宽度的概念 总线的主要技术指标 3 总线的工作频率 时钟频率 总线的工作频率既是总线工作的时钟频率 以MHZ为单位 工作频率越高 总线工作速度越快 总线的主要技术指标 为了便于和外设相连 总线都有统一的标准 各种适配器可以按照这种标准进行设计 这样 任何一款适配器都可以通过统一的插槽跟总线相连 所以 所谓的总线标准 就是总线插槽的标准 常见的系统总线有 ISA IndustryStandardArchitecture 总线 PCI PeripheralComponentInterconnected 总线 AGP AcceleratedGraphicsPort 总线等 2 4 2PC机系统总线 ISA IndustryStandardArchitecture 总线EISA IndustryStandardArchitecture 总线8 16位标准数据总线1981 2 PCI PeripheralComponentInterconnected外围部件互连 总线PCI总线理论上的最大传输率为133Mbps 3 AGP AcceleratedGraphicsPort 总线1996 3 AGP AcceleratedGraphicsPort 总线1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论