欢迎来到天天文库
浏览记录
ID:49108214
大小:1.09 MB
页数:82页
时间:2020-01-31
《2-1调试程序DEBUG.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章微处理器和系统结构本章内容提要2.1Intel8086微处理器(重点)2.2微处理器(CPU)的主要组成部分及各部分功能2.3高性能微处理器简介2.4X86系统组成2.18086微处理器(重点)8086是一种单片微处理器芯片,内外部数据总线16位,对外40条引脚,主时钟5MHz、8MHz、10MHz等。20条地址引脚,直接寻址220=1MByte,可访问64K个I/O端口,具有24种寻址方式,可以对位、字节、字、字符串、字串、BCD码、ASCll码等多种数据类型进行处理。8086CPU的功能结构8086CPU的寄存器结构8086微处理器
2、对存储器的管理一、8086CPU的功能结构采用了流水线处理技术:将指令执行部件和总线接口部件分为两个独立的部分,并可并行操作。•一部分为BIU(BUSInterfaceUnit);专门负责取指令和存取操作数。它与BUS打交道。•一部分为EU(ExecutionUnit)。专门负责分析指令与执行指令。它不与系统BUS打交道。流水技术:在执行指令时预取下一条指令的技术称为流水线。可见,3条指令共需8个时间单位,即可全部执行完;如果完全串行执行,则需3X6=18个时间单位。显然,采用“流水线”技术可以显著提高计算机的处理速度。012345678取指译
3、码计算EA取数执行存结果取指译码计算EA取数执行存结果取指译码计算EA取数执行存结果第一条指令第二条指令第三条指令“指令流水”是一种实现多条指令重叠执行的重要技术。内部暂存器IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位8086CPU内部功能结构图8086CPU的功能结构(续)BIU总线接口单元8086CPU与外设的接口部件,提供16位数据总线与20位地址总线
4、。内部由段REG、IP、内部通信REG、指令队列、地址加法器和总线控制逻辑等组成;完成取指令、指令排队、读/写操作数、地址转换与总线控制等工作;队列为先进先出的原则组织(FIFO),实现流水线操作,高性能CPU更是如此。8086有6个Byte指令队列;需要两个指针,OUT与IN指针;EU执行单元组成:ALU、FR、8个通用REG、暂存器、队列控制逻辑与时序控制逻辑(EU控制器)等;完成指令译码与执行指令工作;EU没有连接到总线上,所以对系统总线来说,它是“外界”的。二、8086的寄存器结构寄存器是CPU内部临时存放数据的部件。这里我们主要介绍和
5、编程有关的寄存器,即可编程寄存器1、通用寄存器包括AX,BX,CX和DX四个16位寄存器。其中任意一个寄存器均可分为两个8位寄存器使用,它们的作用如下图所示。通用寄存器中的4个数据寄存器可以分成8个8位寄存器使用:AX→AH,ALBX→BH,BLCX→CH,CLDX→DH,DL程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。2、指针和变址寄存器经常的用途是在存储器寻址时,提供偏移地址。具体为:SP(堆栈指针寄存器):SS(堆栈段寄存器)一起确定栈顶的当前位置;BP(基址指针寄存器):SS用来确定堆栈段中的某一存储单元的
6、地址;SI和DI是在为了能更灵活地寻找操作数而增设的几种寻址方式中使用的,它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式(在第3章有详细介绍),为以不同的地址形式访问存储单元提供方便。堆栈什么是堆栈?堆栈是一个按照后进先出(LIFO—LastInFirstOut)的原则存取数据的部件或区域。INTEL系列的CPU用内存作为堆栈,工作速度慢,容量大,内存有多大,堆栈就有多大,堆栈由一个堆栈指针SP和一个栈区组成。为什么要用堆栈?主程序与子程序,主程序调用子程序,或者子程序调用子程序,或者处理中断服务程序,CPU必须
7、把主程序调用子程序指令的下一条指令的地址(或中断时的断点)即PC值保留下来,才能保证子程序(或中断服务程序)执行完之后正确返回到主程序继续执行。另外,调用子程序之前的有关REG、标志位也要及时正确的保存下来。堆栈(续)堆栈如何操作?堆栈必须设有一个区域(栈区),还需一个指针(SP),指示栈在什么位置。8086与栈有关的寄存器是SS和SP。SS:标识现行堆栈的段(基)地址;SP:标识现行堆栈的段内偏移量(偏移地址)。8086中的栈是“向下生成”的栈,即随着入栈数据增加,SP值减小。有些处理器或单片机还有“向上生成”的栈。空栈时,栈顶与栈底是重合的
8、,随着压入栈中数据增加,堆栈扩展,SP减小,SP始终指向栈顶。堆栈操作有专门的指令PUSH××与POP××。8086的入栈与出栈弹出操作每次是一个字,
此文档下载收益归作者所有