【教学课件】第二章微处理器和指令系统.ppt
《【教学课件】第二章微处理器和指令系统.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二章微处理器和指令系统.ppt(183页珍藏版)》请在三一办公上搜索。
1、1,第二章 微处理器和指令系统,2.1 Intel系列微处理器概述2.2 Intel 80486微处理器体系结构2.3 80486的数据类型与寻址方式2.4 80486的汇编级指令系统2.5 关于指令系统的说明,2,2.1 Intel系列微处理器概述,Intel 8086/8088 Intel 80286 Intel 80386/80486 Pentium(80586),3,2.1.1 Intel 8086/8088,8088 是准16位微处理器,8086/8088除了外数据总线位数及与此相关的部分逻辑稍有差别外,内部结构和基本性能相同,指令系统完全兼容。,8086 是全16位微处理器,在80
2、86/8088的设计中,引入了两个重要的结构概念:指令流水线 存储器分段,数据总线和地址总线的低16位/低8位分时复用。,这两个概念在以后升级的Intel系列微处理器中一直被沿用和发展。正是这两个概念的引入,使8086/8088比原来的8位MPU在运行速度、处理能力和对存储空间的访问等性能方面有很大提高。,4,2.1.1 Intel 8086/8088,8086/8088 MPU由两个独立的处理单元构成:总线接口单元BIU和执行单元EU。,5,2.1.1 Intel 8086/8088,当EU从指令队列中取出指令时,BIU便从内存中取出后续的代码放入队列中;当EU需要数据时,BIU根据EU输出
3、的地址,从指定的内存单元或外设中取出数据供EU使用;当运算结束时,BIU将运算结果送给指定的内存单元或外设。,EU控制电路从指令队列取出指令代码,经译码发出相应的控制信号;数据在ALU中进行运算;运算结果的特征保留在标志寄存器(FLAGS)中。,EU-负责分析和执行指令,BIU-负责执行所有的“外部总线”操作,指令队列的存在使EU和BIU并行工作,取指令和分析、执行指令操作可重叠进行,形成了两级指令流水线结构,减少了CPU等待时间,提高了CPU的利用率,加快了整机运行速度,降低了对存储器存取速度的要求。,6,2.1.1 Intel 8086/8088,4个段寄存器为8086/8088采用存储器
4、分段管理提供了主要硬件支持。通过分段管理,把1MB可寻址的物理存储空间分成若干个逻辑段,每段大小为64KB。段的起始单元地址叫段基址,存放在段寄存器中。通过4个段寄存器,CPU每次可同时对4个段进行寻址。且分段方式不唯一,各段之间可以连续、分离、部分重叠或完全重叠,具体取决于对各个段寄存器的预置内容。,7,2.1.1 Intel 8086/8088,采用分段管理,存储器地址有物理地址和逻辑地址之分。,物理地址是1MB存储空间中的某一单元地址,用20位地址码表示,CPU访问存储器时,地址总线上送出的就是物理地址。逻辑地址在编程时采用,由段基址和偏移地址组成,两者均为16位。,8,2.1.2 In
5、tel 80286,(1)内部有4个独立的可并行操作单元:执行单元(EU)、总线单元(BU)、指令单元(IU)和地址单元(AU),可实现4级流水线作业;(2)地址总线和数据总线完全分开;(3)存储空间有实地址和保护虚拟地址两种工作方式。两者的实地址空间分别为1MB和16MB;(4)在保护方式下,4个段寄存器装入的不再是段基址,而是指向段描述符表中某个段描述符的索引值,称为段选择符。,80286是增强型标准16位微处理器。与8086/8088相比,它结构上的改进和性能上的提高主要体现在4方面:,总之,80286主要是增加了多用户、多任务系统所必需的任务转换、虚拟存储器管理和多种保护功能,不仅提高
6、了运算速度,而且可支持多用户、多任务操作。但其优越性必须在多任务操作系统的支持下才能充分发挥。,9,2.1.3 Intel 80386/80486,1.内部寄存器数量明显增加,并可进行64位的数据运算,具有全32位数据处理能力。2.片内存储管理部件可实现段页式存储管理,比80286可提供更大的虚拟存储空间和物理存储空间。3.比80286新增了一种保护模式下的工作方式,即虚拟8086方式。4.80486的指令流水线增加到了6级。5.提供了32位外部总线接口,最大数据传输速率显著提高。6.运算速度大大加快。,80386/80486是针对多用户和多任务的应用而推出的32位微处理器。与80286相比,
7、80386/80486在结构和性能上的主要特点如下:,10,2.1.4 Pentium微处理器(80586),1.采用超标量体系结构,内含两条指令流水线。2.内置的浮点运算部件采用超流水线技术。3.增加了分支指令预测。4.内置了指令和数据两个独立的超高速缓存器,避免了预取指令和数据可能发生的冲突。5.采用64位外部数据总线。6.引入了大型机中采用的内部错误检测、功能冗余检验和错误报告等自诊断功能。7.进行了更多的可测性设计。8.提供了独特的性能监察功能,以利于软、硬件产品的优化和升级。9.提供了灵活的存储器页面管理。,Pentium是一种高性能的64位微处理器。其对80486作了下列重大改进:
8、,11,2.2 Intel 80486微处理器体系结构,80486的体系结构特点 80486的内部结构与内部寄存器 80486的三种工作方式及转换 80486的外部引脚信号,12,2.2.1 80486的体系结构特点,1.采用单倍的时钟频率,即CPU的CLK端输入的外部时钟频 率就是其内部的工作时钟频率。2.内部包含有8K字节的指令/数据合用型高速缓存。3.内部包含了相当于增强型80387功能的浮点协处理器(FPU)。4.对使用频率较高的基本指令,改为硬件逻辑直接控制,并在指 令执行单元采用了RISC技术和流水线技术。5.采用突发式总线传输方式。6.内部数据总线宽度有32位、64位和128位多
9、种,分别用于不同 单元之间的数据通路。7.对某些内部寄存器中部分位的内容进行了变动和增加。8.面向多处理器结构,增加了总线监视功能和支持多机操作的指令。,80486的特点主要表现在:,2.2.2 80486的内部结构与内部寄存器,内部结构构成,总线接口单元指令预取单元指令译码单元指令执行单元段管理单元页管理单元高速缓存单元浮点运算单元,1.内部结构,15,基本寄存器系统级寄存器调试和测试寄存器浮点寄存器,2.2.2 80486的内部结构与内部寄存器,2.内部寄存器 80486的内部寄存器除FPU部分外,与80386完全相同,按功能可分为4类:,16,2.2.2 80486的内部结构与内部寄存器
10、,1)基本寄存器,17,通用寄存器,为了与8086/8088兼容,它们的低16位 可以单独访问,并以同8086/8088中相 同的名称命名:AX、BX、CX、DX、SI、DI、BP、SP。,2.2.2 80486的内部结构与内部寄存器,8个32位通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP,其中AX、BX、CX、DX 还可进一步分成 两个8位寄存器单独访问。,18,指令指针寄存器(EIP),EIP用于保存下一条待预取指令相对于代码段基址的偏移量。,2.2.2 80486的内部结构与内部寄存器,19,2.2.2 80486的内部结构与内部寄存器,标志寄存器(EFLA
11、GS),32位的EFLAGS包含三种标志:,状态标志(S)-报告算术/逻辑运算指令执行后的状态;控制标志(C)-仅含一个标志DF,用于控制串操作指令的地址改变方向;系统标志(X)-用于控制I/O、屏蔽中断、调试、任务转换和控制保护方式与虚拟8086方式间的转换。,20,2.2.2 80486的内部结构与内部寄存器,21,2.2.2 80486的内部结构与内部寄存器,段寄存器,80486有6个段寄存器:,22,2.2.2 80486的内部结构与内部寄存器,段寄存器的结构,段选择器是编程者可直接访问的,而描述符高速缓存器则是编程者不能访问的。,段寄存器由16位的段选择器和64位的描述符高速缓存器组
12、成。,23,2.2.2 80486的内部结构与内部寄存器,关于对段寄存器的说明:,实地址方式和虚拟8086方式下,段选择器就是段寄存器,它保存的是逻辑段基址的高16位,将它的内容左移4位即可得到实际段基址,而不必使用描述符高速缓存器。,在保护虚地址方式下,为了描述每个段的基址、属性和边界,为每个段定义了一个描述符。操作系统使用的各任务公用的段描述符放在一起构成全局描述符表GDT;某个任务专用的段描述符放在一起构成局部描述符表LDT。,24,2.2.2 80486的内部结构与内部寄存器,25,为了说明一个段的描述符在哪个表中,表的序号是多少以及特权的高低,为每个段定义了一个16位的选择符,存于段
13、选择器中,其格式为:,2.2.2 80486的内部结构与内部寄存器,26,将一个选择符装入一个段选择器时,处理器将自动从GDT或LDT中找到其对应的描述符装入相应描述符高速缓存器中。,2.2.2 80486的内部结构与内部寄存器,以后,每当访问存储器时,与所用段相关的段描述符高速缓冲器就自动参与该次存储器访问操作。转换关系:线性地址=段描述符高速缓存器中段基址+偏移地址,27,2)系统级寄存器,2.2.2 80486的内部结构与内部寄存器,包括4个控制寄存器和4个系统地址寄存器。只能由特权级0的程序访问。,控制寄存器:,28,2.2.2 80486的内部结构与内部寄存器,系统地址寄存器(只在保
14、护方式下使用,所以又叫保护方式寄存器):,其中GDTR和LDTR分别用来存放GDT和LDT的32位线性基地址等内容;IDTR用来存放中断描述符表的基址和界限;TR用来存放任务状态段(TSS)的基址、界限和其他属性。,29,2.2.2 80486的内部结构与内部寄存器,3)调试和测试寄存器,8个32位可编程调试寄存器;5个32位测试寄存器。,30,2.2.2 80486的内部结构与内部寄存器,4)浮点寄存器,80486的FPU中含有13个浮点寄存器:,8个80位浮点数据寄存器R0R7-用作固定寄 存器组或硬件堆栈;1个16位标志字寄存器-用来标记每个数据寄存 器的内容;1个16位控制寄存器-用于
15、提供FPU的若干处理选 择项;1个16位状态寄存器-用于反映FPU的总状态;2个48位的指令、数据指针寄存器-可为用户编 写错误处理程序提供指令、数据指针。,31,2.2.3 80486的三种工作方式及转换,.IRETD指令.任务转换,32,2.2.4 80486的外部引脚信号(80486 CPU总线),33,2.3 80486的数据类型与寻址方式,数据类型寻址方式操作数宽度和地址宽度的确定,34,2.3.1 数据类型,80486在其内部定点处理单元CPU和浮点处理单元FPU的支持下,共可处理7类数据:,1.无符号二进制数2.带符号的二进制定点整数3.浮点数4.BCD码数5.串数据6.ASCI
16、I码数据块7.指针数据类,35,2.3.1 数据类型,1.无符号二进制数(序数),这类数有3种,受CPU支持:,字节:任何逻辑地址上的8位相邻位串。字:任何字节地址开始的2个相邻字节。低字节 地址为该字地址。双字:任何字节地址开始的2个相邻字,即4个 相邻字节。最小字节地址为双字的地址。,36,2.带符号的二进制定点整数(整数),2.3.1 数据类型,这类数均以补码表示,有8位数(字节)、16位数(字)、32位数(双字)、64位数(4字)四种。,CPU支持前3种,FPU支持后3种。,37,2.3.1 数据类型,3.浮点数(实数),这类数由FPU支持,有单精度、双精度和扩展精度三种形式:,38,
17、2.3.1 数据类型,关于浮点数格式的两点说明:,(1)3种浮点数的有效数字段都做了规格化处理,其整数位总是1。但需注意,只有扩展精度格式的整数位1真的存在,其余两种格式下整数位1是隐含的,并不真的被存放起来。,(2)格式中的阶码是以偏置形式存放的(即其阶码要加上一个常数偏置值才是格式阶码),且偏置后的格式阶码恒为正数。这样有利于简化浮点数大小的比较过程:对两个相同格式的实数进行比较时,就像对两个无符号二进制整数进行比较一样方便,当从高位到低位比较两个实数阶码时,若某位的阶码有大小之分,就不用再比较下去了。,39,2.3.1 数据类型,由于三种浮点数格式的阶码位数不同,其数值范围也不同。为了保
18、证统一偏置后的阶码恒为正数,其偏置值必然也为不同正值。,在作了上述偏置处理后,进行浮点数运算时,一个数的真阶码需要将其格式阶码减去偏置值来获得。,40,4.BCD码数,BCD码数有压缩BCD码数和非压缩BCD码数两种。CPU两种数都支持;FPU只支持压缩BCD码数,且最大长度为80位,最多可处理20位BCD码数。,2.3.1 数据类型,41,2.3.1 数据类型,5.串数据,包括位串、字节串、字串和双字串,仅CPU支持。位串是从任何字节的任何位开始的相邻位的序列,最长可达232-1位。字节/字/双字串是字节/字/双字的相邻序列,最长可达232-1字节。,42,2.3.1 数据类型,6.ASCI
19、I码数据类,包括ASCII码字符串和ASCII码数(0F)两种。,7.指针数据类,包括近指针和远指针两种:,近指针即32位指针,是一个32位的段内偏移量,段内寻址用。远指针即48位指针,由16位选择符和32位偏移量组成,用于跨段访问。,43,关于数据类型的两点说明:,2.3.1 数据类型,字和双字数据操作的对准和不对准 一般应尽可能将字操作对准于偶地址,将双字操作对准于4的 整数倍地址。但也允许不对准。对准和不对准获得的数据传递速度不一样:对准的字和双字可 一次传递完,而未对准时需几次才能传递完。,(2)采用低端低地址方式存储字和双字数据 字数据被存储在两个相邻的字节单元之中,低字节在低地址单
20、 元,高字节在高地址单元;双字数据存储在四个连续字节单元中,最低字节在最低地址单 元,最高字节在最高地址单元。字或双字数据的地址是指最低字节所在的单元地址。,44,2.3.2 寻址方式,1.寻址方式和有效地址概念,寻址方式:寻找指令中操作数地址的方式。,直接包含在指令中,即指令的操作数部分就是操作数本身。这种操作数叫立即数,对应的指令寻址方式称为立即数寻址。,包含在CPU的某个内部寄存器中。这时指令中的操作数部分是CPU的一个寄存器,这种指令寻址方式称为寄存器寻址。,在存储器中。这时指令的操作数部分包含着该操作数所在的存储器地址。这种指令寻址方式称为存储器寻址。,操作数所在地址有三种可能:,4
21、5,2.3.2 寻址方式,在8086系列MPU中,内存实际地址(PA)由段基地址和段内偏移地址两部分组成。,EA=基址+(变址比例因子)+位移量,其中段内偏移地址又叫有效地址(EA)。,46,16位和32位寻址时的四元素定义,2.3.2 寻址方式,47,物理地址,逻辑(虚拟)地址,2.3.2 寻址方式,48,2.3.2 寻址方式,2.11种寻址方式,偏移地址四元素可优化组合出9种存储器寻址方式,加上立即数寻址和寄存器寻址,80486共有11种寻址方式:,(1)立即数寻址(2)寄存器寻址(3)直接寻址(4)寄存器间接寻址(5)基址寻址(6)变址寻址(7)比例变址寻址(8)基址加变址寻址,(9)基
22、址加比例变址寻址(10)带位移的基址加变址寻址(11)带位移的基址加比例变址寻址,49,(1)立即数寻址,2.3.2 寻址方式,在这种寻址方式下,操作数作为立即数直接存在指令中,可为8位、16位或32位。,以第3条指令为例,动画演示立即数寻址过程。,注意:(1)源和目的操作数字长应一致;(2)立即数只能作为源操作数。,50,2.3.2 寻址方式,(2)寄存器寻址(寄存器直接寻址),在这种方式下,操作数包含在指令规定的8位、16位或32位寄存器中。,这种寻址方式指令编码短,无需从存储器取操作数,故执行速度快。,注意:(1)字节寄存器只有8个;(2)源和目的操作数的字长应一致;(3)CS不能用MO
23、V改变。,51,2.3.2 寻址方式,(3)直接寻址(存储器直接寻址),在这种方式下,指令中的操作数部分直接给出操作数有效地址EA,它和操作码一起放在存储器代码段中,可以是16位或32位整数。但操作数一般在数据段DS中。,例:MOV AX,DS:3000H,设DS=5000H,执行过程见动画演示,52,2.3.2 寻址方式,直接寻址主要用于单个操作数的相对寻址场合(如简单的标量操作数寻址和静态分配数组的起始地址寻址等)。,53,2.3.2 寻址方式,(4)寄存器间接寻址,在这种方式下,操作数在存储器中,但存储器有效地址EA放在寄存器中,即 EA=寄存器。,寄存器的使用规定在16位寻址和32位寻
24、址时不一样。,54,2.3.2 寻址方式,16位寻址时,偏移地址放在SI、DI、BP或BX中。这时又有两种段默认情况:,若以SI、DI、BX间接寻址,则默认操作数在DS段中。例如:MOV AX,SI;默认DS为段基址若以BP间接寻址,则默认操作数在SS段中。例如:MOV AX,BP;默认SS为段基址,如果操作数不在上述规定的默认段,而是在其他段,则必须在指令中相应的操作数前加上段超越前缀。例如:,MOV AX,ES:SIMOV AX,DS:BP,55,2.3.2 寻址方式,32为寻址时,8个32位通用寄存器均可用作寄存 器间接寻址。,除ESP、EBP默认段寄存器为SS外,其余6个通用寄存器均默
25、认段寄存器为DS。如操作数在默认段之外,指令中必须加段超越前缀。,寄存器间接寻址的应用场合与直接寻址的应用场合相似,但更灵活。,56,2.3.2 寻址方式,(5)基址寻址,在这种方式下,EA=基址寄存器+位移量。其中位移量一定要为常数,且跟随在操作码之后,与操作码一起存放在代码段中。,16位寻址情况下,BX和BP作为基址寄存器。在缺省段超越前缀时,BX以DS作为默认段寄存器,BP以SS作为默认段寄存器。位移量可为8位或16位;32位寻址情况下,8个32位通用寄存器均可作基址寄存器,其中ESP、EBP以SS为默认段寄存器,其余6个通用寄存器均以DS为默认段寄存器。位移量为8位或32位。,例如:M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第二 微处理器 指令系统
链接地址:https://www.31ppt.com/p-5661969.html