第二章IA32结构微处理器_第1页
第二章IA32结构微处理器_第2页
第二章IA32结构微处理器_第3页
第二章IA32结构微处理器_第4页
第二章IA32结构微处理器_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第二章80x86结构微处理器本章学习提要:1、书中内容以自学为主;2、掌握8086处理器的大体软、硬件结构体系;3、了解新型处理器的大体结构及运作方式;本章讲纲2.18086处理器结构2.1.18086结构概述2.1.28086的内部寄存器结构2.1.38086的编程结构2.1.48086的存储器结构2.280x86结构微处理器简介2.2.180x86结构处理器的功能结构2.2.280x86结构微处理器的执行环境2.18086处理器结构

2.1.18086结构概述8086结构有如下特点16位结构,内部所有寄存器均为16位,可直接处理16位数据;20根地址线,可以直接寻址1MB的存储空间;共40个外部引脚;需单相时钟,单5V供电;2.18086处理器结构

2.1.18086结构概述8086处理器内部分为两个部分总线接口单元(BusInterfaceUint,BIU)负责处理器与存储器间的信息传递取出指令并送入指令队列中根据指令获得操作数执行单元(ExecuteUnit,EU)负责指令的执行ESCSSSDSIPAHALBHBLCHCLDHDLSPBPSIDI标志65…1执行单元控制逻辑ALUΣ存储器接口BIU指令队列EUB-busA-busC-bus8086的总体功能结构示意2.18086处理器结构

2.1.28086的内部寄存器结构AHALBHBLCHCLDHDLSPBPSIDIIPPSWCSDSSSESBXAXDXCX累加器基址寄存器计数器数据寄存器堆栈指针基址指针源指针目的指针程序指针程序状态字代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器数据寄存器指针寄存器变址寄存器控制寄存器段寄存器通用寄存器0152.18086处理器结构

2.1.28086的内部寄存器结构通用寄存器包含数据寄存器、地址指针寄存器和变址寄存器数据寄存器:AX、BX、CX、DX地址指针寄存器:SP、BP变址寄存器:SI,DI段寄存器CS、DS、SS和ES控制寄存器IP、PSW2.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器用于暂时存放计算过程中所用到的操作数、结果或其他信息;每个通用寄存器均为16位,可以整体访问,但高字节和低字节也可以独立访问;2.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器AX:算术运算的主要寄存器,所有IO口指令必须经过AX交换数据。BX:在计算操作数的存放地址时,可以用来存放操作数的基地址。基地址:在访问操作数时,如果操作数的存放地址由一个相对固定的地址B和一个相对于B的偏移量构成,则B称为基地址。2.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器CX:在循环LOOP指令和串处理指令中用作隐含计数器。DX:可以作为数据寄存器使用。一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(口地址256)。2.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器地址指针SP和BPSP:堆栈指针寄存器,指示堆栈栈顶的偏移量,其与SS联合,可计算出堆栈栈顶的物理地址;BP:基址指针,可与SS结合计算出位于堆栈段中的某存储器单元的物理地址;200609122.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器地址指针SP和BPSP:堆栈指针寄存器,指示堆栈栈顶的偏移量,其与SS联合,可计算出堆栈栈顶的物理地址;BP:基址指针,可与SS结合计算出位于堆栈段中的某存储器单元的物理地址;200609122.18086处理器结构

2.1.28086的内部寄存器结构堆栈堆栈是按先进后出的原则组织起来的一段储存区域;用于堆栈的存储段一端固定,另外一端浮动,固定端称为栈底,浮动端称为栈顶。其实现方法为:设置一个指针(寄存器),保存堆栈的栈顶地址,其初值就为栈底,而需入栈的内容始终保存在栈顶端;根据堆栈指针移动方向,堆栈分为向上生长(栈顶向地址增方向移动)和向下生长(栈顶向地址减方向移动)型;根据堆栈指针所指向的单元是否为最后入栈数据,可分为空堆栈(入栈完成后指针指向入栈数据的下一个地址)和满堆栈(入栈完成后指针指向最后入栈数据的地址);2.18086处理器结构

2.1.28086的内部寄存器结构向上生长型空堆栈12h、34h、56h进栈过程及出栈过程1234H1235H1236H1237H1238H1239H123AH123BH123CH…………123412h34h56h1235123612372.18086处理器结构

2.1.28086的内部寄存器结构向上生长型满堆栈12h、34h进栈过程及出栈过程1234H1235H1236H1237H1238H1239H123AH123BH123CH…………123434h56h123512362.18086处理器结构

2.1.28086的内部寄存器结构1、通用寄存器变址寄存器SI和DISI:源变址寄存器;DI:目的变址寄存器;SI和DI一般与DS联合,可以确定源存储单元和目的存储单元的物理地址;SI和DI具有自动增加或减小1的能力;2.18086处理器结构

2.1.28086的内部寄存器结构2、段寄存器8086系统认为:程序=代码+数据,每种编码各自存放于自己的区域中,引入段的概念,并使用段寄存器来保存每种编码的起始地址;8086的寄存器包括CS、DS、SS和ES8086系统中的各个段所保存的内容均有特定含义;CS:代码段寄存器,保存指令代码存放的起始地址;DS:数据段寄存器,保存用户数据存放的起始地址;SS:堆栈段寄存器,保存程序堆栈数据的起始地址;ES:附加段寄存器,保存备用信息的起始地址;2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器IP:InstructionPointer,指令指针寄存器;IP用于存放即将执行指令的偏移量;IP与CS一起,才能得到指令的物理地址;PSW:ProgramStatuWord,程序状态字;PSW通常用于表征程序执行状态,所保存的内容可分为条件码标志及控制标志;8086的PSW为16位,使用了其中9位,其中6位为条件码标志,3位为控制标志;2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器1514131211109876543210OFDFIFTFSFZFAFPFCF位编号名称条件码标志包含CF、PF、AF、ZF、SF、OF。条件码标志的值一般由处理器根据运算结果自动设置,其值与操作数有关;控制标志:DF、IF、TF;控制标志值一般由运行的程序根据需要,利用指令来设置,其值与指令有关;2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器(条件码标志)OF,OverflowFlag,溢出标志OF=1时,表示运算过程中发生了溢出;OF=0时,表示运算过程中未发生溢出;CF,CarryFlag,进位标志表征运算过程中最高位(第15位)是否发生进位;ZF,ZeroFlag,零标志表征运算结果是否全为0;SF,SignFlag,符号标志表征运算结果的符号2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器(条件码标志)AF,AuxiliaryCarryFlag,辅助进位位表征运算过程中第3位是否向第4位发生进位;PF,ParityFlag,奇偶效验位当前累加器中所存放的数的奇偶效验情况;PF=1,低8位中有偶数个‘1’;PF=0,低8位中有奇数个‘1’;…432101415AF2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器(控制标志)程序对控制标志进行设置后,将对以后的操作起控制作用;TF:TrapFlag,陷阱标志位TF=1时,CPU在每执行一条指令会自动产生一次中断;TF使处理器处于单步执行方式,常用于程序的调试;IF:InterruptFlag,中断标志位IF=1时,CPU允许可屏蔽中断;否则不允许可屏蔽中断IF只对可屏蔽中断产生影响,而对软件中断及不可屏蔽中断无影响;2.18086处理器结构

2.1.28086的内部寄存器结构3、控制寄存器(控制标志)DF:DirectionFlag,方向控制位在串处理指令中,用于控制SI、DI的增/减方向DF=1时,每次串处理操所后,变址寄存器SI、DI内容自动减1,使串处理向地址递减方向进行;DF=0时,每次串处理操所后,变址寄存器SI、DI内容自动加1,使串处理向地址递增方向进行;2.18086处理器结构

2.1.38086的编程结构总线接口单元BIU负责处理器、存储器及IO口间的数据传送;从存储器中获得指令并填充到指令队列;CPU执行指令过程中,配合执行部件从指定的内存单元或IO口获取数据;将处理结果传送给指定的内存单元或IO口;执行单元EU2.18086处理器结构

2.1.38086的编程结构1、总线接口单元寄存器包括:CS、DS、SS、ES和IP;20位地址加法器6个字节的指令队列总线控制接口处理器与外部总线的接口电路外部总线包括地址总线(20),数据总线(16)及控制总线。2.18086处理器结构

2.1.38086的编程结构1、总线接口单元指令队列指令队列是一个按FIFO(先进先出)原则组织起来的存储体;BIU具有预取指令的能力,即在EU执行指令的同时,将下一条或几条指令填充到预取队列中;两种情况下BIU的行为顺序执行:BIU顺序取出指令并填充到指令队列中;程序转移:BIU清除指令队列,取出目标地址指令,并马上送入EU,然后重新填满指令队列;2.18086处理器结构

2.1.38086的编程结构1、总线接口单元物理地址的形成直观的说,8086内部所有寄存器均为16位,但外部地址线有20根,需要做一定的变换;8086的物理地址形成方式段寄存器内容×16+偏移量=物理地址逻辑地址段寄存器0000物理地址加法器1501501902.18086处理器结构

2.1.38086的编程结构2、执行单元功能:负责执行指令组成:寄存器:AX、BX、CX、DX和BP、SP、SI、DI;标志寄存器PSW:共9位,6个条件位,3个控制位;算术逻辑运算单元:16位加法器;EU控制逻辑接受BIU送入的指令并向EU各个逻辑部分发出相应的控制信号,完成指令执行;2.18086处理器结构

2.1.48086的存储器结构1、处理器的地址空间编址统一编址:IO口不单独编址,存储器地址与IO口地址位于一个地址空间;分开编址:IO口单独编址,存储器与IO口位于不同的地址空间,两套地址编号可重叠;8086的IO口地址与存储器地址采用分开编址;8086的存储空间1MB,IO口空间为64K利用段寄存器及偏移量,8086可直接管理1M存储器;利用输入/输出指令可直接寻址256个端口,使用DX可寻址64K个端口;2.18086处理器结构

2.1.48086的存储器结构1、处理器的地址空间编址0N0N存储器IO口存储器+IO口2.18086处理器结构

2.1.48086的存储器结构1、处理器的地址空间编址存储器分段8086的存储空间分为若干段,每段最大64KB,每段的起始地址由段寄存器保存,段内偏移量由具体的指令提供;根据BIU的存储器地址形成方式,段寄存器内容须左移4位后再与偏移量相加,所以各个段的起始地址肯定是能被16整除的数,这些数将1M空间分为64K段,这些段称为小段;2.18086处理器结构

2.1.48086的存储器结构2、逻辑地址与物理地址逻辑地址:由段寄存器与偏移量构成;逻辑地址记作:Segment:Offset 如:1234:1324、2000:1000…物理地址:处理器在访问存储器某单元时,地址总线上所出现的信号所对应的地址;根据BIU地址形成方式,8086的物理地址须由5位16进制数才能完整地表示出来;2.18086处理器结构

2.1.48086的存储器结构3、各段在存储器中的分配应用程序开始对该程序所用到的各个段寄存器赋值;各个段可以重叠,8086的每个段最大为64K,但根据具体情况,几个段可以位于同一个64K段内;如果段重叠,应用程序必须保证各个段的内容不冲突;当程序所使用的段超过64K时,程序在适当的时候必须动态的改变相应段寄存器的值;段寄存器值可以由操作系统自行管理,但分配原理如以上所述;2.18086处理器结构

2.1.48086的存储器结构64K程序64K数据64K堆栈64K数据1000H2400H4000H5500HESSSDSCS1000H2400H4000H5500H2.18086处理器结构

2.1.48086的存储器结构4、关于PC机的说明在IBMPC机中,整个存储器的首尾部分有特定的用途;00000H~003FFH共1K空间,用于存放中断向量;系统在上电后,将从0FFFF0H处取出第一条指令,即8086的上电复位程序入口地址为0FFFF0H,所以一般在0FFFF0H处放置一条无条件转移指令,将程序转移到系统初始化程序处;20060914ThursdayC2032.280x86结构微处理器简介

2.2.180x86结构微处理器的功能结构从80386开始,从功能结构上看,到80486形成了IA(IntelArchitecture)-32微处理器的基础;相对于8086,新的x86微处理器在硬件结构上使用了越来越先进的半导体制造工艺;引入了很多的新的技术措施,提高处理器处理指令的速度;桶形移位寄存器、流水线、多执行部件、高速缓存等;加入浮点数处理部件,提高处理器对浮点数的处理速度;2.280x86结构微处理器简介

2.2.180x86结构微处理器的功能结构相对于8086,微处理器在硬件结构上增强了对上层操作系统的支持;多操作模式、新的存储器管理机制、支持任务切换等;增强了对多媒体数据的处理能力;MMX、SSE等将原有的寄存器位数扩展为32位,增加了一些寄存器2.2x86结构微处理器简介

2.2.2x86结构微处理器的执行环境1、操作模式保护模式这种模式下,所有的指令及结构特性可用;实地址模式实现8086编程环境并有一定的扩展:寄存器32位,具有切换到另外两种模式的能力;系统管理模式为操作系统实现平台特定功能或系统安全提供的一种透明机制,处于这种模式下的处理器接受到中断后,会自动保存当前程序上下文并切换到一个独立的存储空间;80x86的工作模式主要介绍一下实地址方式和保护虚地址方式。1、实地址方式具有32条地址线的微处理器只有低20条地址线起作用,能寻址1M字节的物理地址。实地址方式和保护虚地址方式的区分是由控制寄存器CR0的最低位PE位决定的。若PE位为0,则工作在实地址方式;若PE位为1,工作在保护虚地址方式;实地址方式下,采用类似于8086的体系结构。归纳起来,有如下几个特点:①寻址机构、存储器管理、中断处理机构和8086一样

②操作数默认长度为16位,但允许访问处理器的32位寄存器组,在使用32位寄存器组时,指令中要加上前缀以表示越权存取。

③不用虚拟地址的概念,存储器容量最大为1M字节;采用分段方式,每段大小固定为64K字节,存储段可以彼此覆盖,即一个64K字节的段如未用完,另一个段可以覆盖未用的存储区。

④实地址方式下,存储器中保留两个固定区域,一个为初始化程序区,另一个为中断向量区。前者为FFFF0H—FFFFFH,后者为00000—003FFH。

⑤在实地址方式下,运行的程序不分特权等级,实际上,实地址方式下的程序相当于工作在特权级0,除保护虚地址方式下的一些专用指令外,所有其他指令都能在实地址方式下运行。2、保护虚地址方式在保护方式下,全部32根地址有效,可寻址达4G字节的物理空间;支持多任务,一个任务可运行多达16KB个段,每个段最大可为4G字节,故一个任务最大可达64MM字节的虚拟地址,能快速的进行任务切换和任务保护环境;在保护方式运行的程序分为4个特权级:0、1、2、3,操作系统核心运行在最高特权等级0,用户程序运行在最低特权等级3。

4级特权保护结构

如图所示:应用程序3级常用扩展程序内核0级2级系统服务程序1级系统和应用程序分离4级特权保护结构(1)保护方式下的寻址机制在保护方式下,一个存储单元的地址也是由段基地址和段内偏移量两部分组成。在保护方式下,段基地址也是32位的,所以就不能由段寄存器的内容直接形成32位的段基地址,而是要经过转换。于是在内存中就有一个表,每一个内存段对应着表中的一项,此项中包含32位的段基地址。在80x86中,一个段用一个8字节的描述符来描述,多个描述符构成一个表,称为描述表。

由描述符中所规定的段基地址加上32位的段内偏移量就可以寻址一个存储单元,如图所示。段寄存器偏移量访问权界限基地址存储器操作数段内基址段界}选择段大到4GB(2)描述符表和描述符描述符表 描述符表定义了访问存贮器的一种数据结构,是存放在存贮器空间中的一种特殊数据段,其表项是由段描述符或其

温馨提示

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

评论

0/150

提交评论