第2章微处理器与指令系统(同名40)课件.ppt

上传人(卖家):三亚风情 文档编号:3526160 上传时间:2022-09-11 格式:PPT 页数:158 大小:3.55MB
下载 相关 举报
第2章微处理器与指令系统(同名40)课件.ppt_第1页
第1页 / 共158页
第2章微处理器与指令系统(同名40)课件.ppt_第2页
第2页 / 共158页
第2章微处理器与指令系统(同名40)课件.ppt_第3页
第3页 / 共158页
第2章微处理器与指令系统(同名40)课件.ppt_第4页
第4页 / 共158页
第2章微处理器与指令系统(同名40)课件.ppt_第5页
第5页 / 共158页
点击查看更多>>
资源描述

1、第二章第二章 微处理器和指令系统微处理器和指令系统n2011.9.182.1.1 2.1.1 8086/8088 8086/8088 微处理器微处理器 8086 8086是是19781978年推出的全年推出的全1616位微处理器位微处理器,8088,8088是是19781978年推出年推出的准的准1616位微处理器。二者除外数据总线位数(位微处理器。二者除外数据总线位数(80868086为为1616位,位,80888088为为8 8位)及与此相关的部分逻辑稍有差别外位)及与此相关的部分逻辑稍有差别外,内部结构内部结构和基本性能相同和基本性能相同,指令系统完全兼容。指令系统完全兼容。在在8086

2、/80888086/8088的设计中,引入了两个重要的结构概念:的设计中,引入了两个重要的结构概念:指令流水线指令流水线 存储器分段存储器分段 这两个概念在以后升级的这两个概念在以后升级的IntelIntel系列微处理器中一直被沿用和发展。系列微处理器中一直被沿用和发展。正是这两个概念的引入,使正是这两个概念的引入,使8086/80888086/8088比原来的比原来的8 8位位MPUMPU在运行速度、在运行速度、处理能力和对存储空间的访问等性能方面有很大提高。处理能力和对存储空间的访问等性能方面有很大提高。2.2.1 8086/80881 8086/8088微处理器微处理器内部结构内部结构指

3、令流水线指令流水线存储器分段存储器分段 8086 8086是全是全1616位微处理器,位微处理器,80888088是准是准1616位微处理器。二位微处理器。二者除了外数据总线位数及与此相关的部分逻辑稍有差别外,者除了外数据总线位数及与此相关的部分逻辑稍有差别外,内部结构和基本性能相同,指令系统完全兼容。内部结构和基本性能相同,指令系统完全兼容。1.1.内部结构内部结构2.2.1.1 8086/80881.1 8086/8088微处理器微处理器2020位位ABABEUEU控制电路控制电路总线总线控制电路控制电路通用寄存器通用寄存器累加器累加器基址寄存器基址寄存器计数寄存器计数寄存器数据寄存器数据

4、寄存器堆栈指针堆栈指针基址指针基址指针目的变址目的变址源变址源变址指针寄存器指针寄存器变址寄存器变址寄存器地址加法器地址加法器运算暂存器运算暂存器ALUALU标志寄存器标志寄存器指令指针指令指针内部暂存器内部暂存器指令队列指令队列总线接口单元总线接口单元(BIU)BIU)执行单元执行单元(EU)EU)外部总线外部总线8086/80888086/8088DBDB8088:88088:8位位8086:168086:16位位CSCSDSDSSSSSESESIPIP1 2 3 4 5 61 2 3 4 5 68 8位位8088808880868086AX AH ALAX AH ALBX BH BLBX

5、 BH BLCX CH CLCX CH CLDX DH DLDX DH DL SPSPBPBPDIDISISIALU DBALU DB1616位位 8086 CPU 8086 CPU内部指令执行流程内部指令执行流程1.1.段寄存器段寄存器CS CS 程序指针寄存器程序指针寄存器IP IP 内容经过地址加法器形成内容经过地址加法器形成20 20 位地址;位地址;2.2.由由CPUCPU内部地址总线内部地址总线AB AB,经过总线地址控制电路,经过总线地址控制电路,向外部总线发向外部总线发读取指令的的控制信号,读取指令的的控制信号,外部总线开始总线操作;外部总线开始总线操作;3.3.读取指令送入到

6、指令队列中,读取指令送入到指令队列中,等待执行;等待执行;4.4.EUEU单元从队列中取一条指令到单元从队列中取一条指令到EUEU控制电路,译码指令需要做的系列控制电路,译码指令需要做的系列操作,包括寄存器的内容送累加器;操作,包括寄存器的内容送累加器;5.5.操作结果经过内部数据总线,操作结果经过内部数据总线,存放到寄存器或内部暂存器,同时置存放到寄存器或内部暂存器,同时置FRFR;6.6.根据根据DSDS寄存器的内容,及指令寻址方式产生的偏移量,经过地址加寄存器的内容,及指令寻址方式产生的偏移量,经过地址加法器,形成数据保存地址,并送到外部总线。法器,形成数据保存地址,并送到外部总线。CP

7、U CPU 发写总线操作命发写总线操作命令,将暂存器的内容,令,将暂存器的内容,通过总线,通过总线,写到指定内存单元。写到指定内存单元。2.2.指令流水线指令流水线 指令队列的存在使指令队列的存在使EUEU和和BIUBIU并行工作并行工作,取指令和分析、取指令和分析、执行指令操作可重叠进行,形成了两级指令流水线结构,执行指令操作可重叠进行,形成了两级指令流水线结构,减少了减少了CPUCPU等待时间,提高了等待时间,提高了CPUCPU的利用率,加快了整机的利用率,加快了整机运行速度,降低了对存储器存取速度的要求。运行速度,降低了对存储器存取速度的要求。BIUBIUEUEU 8086/8088 8

8、086/8088的指令的指令“流水流水”操作操作取指令取指令1 1取指令取指令2 2译码译码1 1取数据取数据1 1执行执行1 1取指令取指令3 3译码译码2 2存结果存结果1 1执行执行2 2取指令取指令4 4译码译码3 3取指令取指令5 5等待等待3.3.存储器分段存储器分段8086物理地址(1M=220)将将1 1MBMB的物理存储空的物理存储空间分成若干个逻辑段间分成若干个逻辑段,每每段大小为段大小为6464KBKB。64KB30000H(段基址段基址)段的起始单元地址段的起始单元地址叫叫段基址段基址,存放在段寄,存放在段寄存器中。通过存器中。通过4 4个段寄个段寄存器,存器,CPUC

9、PU每次可同时每次可同时对对4 4个段进行寻址。个段进行寻址。内存内存 00000H00001H00002H00003HFFFFFH 分段方式不分段方式不唯一,各段之间唯一,各段之间可以连续、分离、可以连续、分离、部分重叠或完全部分重叠或完全重叠,这主要取重叠,这主要取决于对各个段寄决于对各个段寄存器的预置内容。存器的预置内容。1000H2000H3100H3100H代码段代码段(64KB)堆栈段堆栈段(64KB)数据段与附加数据段与附加数据段重叠数据段重叠(64KB)CS10000H20000H31000HSSDSES1FFFFH2FFFFH40FFFH 存储器分段结构示例存储器分段结构示例

10、内存内存20000H20A00H0A00H物理地址物理地址20A00H2000 物理地址和逻辑地址物理地址和逻辑地址逻辑地址与逻辑地址与2020位物理地址的变换关系:位物理地址的变换关系:物理地址物理地址=段基址段基址16+16+偏移地址偏移地址偏移地址偏移地址段基址段基址段基址段基址 000000002020位物理地址位物理地址逻辑地址逻辑地址15 0 15 015 0 15 0 左移四位左移四位19 019 0地址地址加法器加法器 逻辑逻辑地址与物理地址的变换地址与物理地址的变换【例】若数据段寄存器DS2100H,试确定该存储区段物理地址的范围。一个逻辑段的最大容量为64KB;第一个存储单

11、元的偏移地址为0;最后一个存储单元的偏移地址为FFFFH。该数据区段由低至高相应存储单元的偏移地址为:0000H FFFFH。存储区的首地址 DS16偏移地址 2100H160000H21000H存储区的末地址DS16偏移地址 2100H16FFFFH 30FFFH2.2.2.3 Pentium2.3 Pentium的四种工作方式的四种工作方式1.实地址工作模式实地址工作模式n 最基本的工作方式。最基本的工作方式。n 8086/8088的实地址模式保持兼容。的实地址模式保持兼容。n 微处微处Pentium理器的实地址模式具有更强的功能,增理器的实地址模式具有更强的功能,增 加了寄存器,扩充了指

12、令,可进行加了寄存器,扩充了指令,可进行32位操作。位操作。实模式操作方式只允许微处理器寻址第一个实模式操作方式只允许微处理器寻址第一个1MB存储器存储器空间空间;当微处当微处Pentium理器工作于实地址模式时,存储器的管理器工作于实地址模式时,存储器的管理方式与理方式与8086微处理器存储器的管理方式完全相同。微处理器存储器的管理方式完全相同。2.2.2 Pentium2 Pentium微处理器微处理器2.保护虚拟方式保护虚拟方式 通常在程序运行过程中,应防止以下情况的发生:通常在程序运行过程中,应防止以下情况的发生:应用程序破坏系统程序。应用程序破坏系统程序。某一应用程序破坏了其他应用程

13、序。某一应用程序破坏了其他应用程序。错误地把数据当作程序运行。错误地把数据当作程序运行。为了避免出现以上情形的发生,所采取的措施称作为了避免出现以上情形的发生,所采取的措施称作“保护保护”。CPUCPU复位复位RSMRSM复位复位或或RSMRSMVM=0VM=0VM=1VM=1复位复位复位复位或或PE=0PE=0使使CRCR0 0的的PE=1PE=1系统管系统管理方式理方式保护保护方式方式虚拟虚拟80868086方式方式RSMRSMSMISMI实地址实地址方式方式SMISMISMISMI实地址实地址方式方式实地址方式实地址方式:工作原理工作原理与与80868086基本相同,主要基本相同,主要区

14、别是借助操作数长度区别是借助操作数长度前缀能处理前缀能处理3232位数据,位数据,运行速度也更高,且可运行速度也更高,且可使用使用4 4个数据段。个数据段。保护保护方式方式保护方式:保护方式:CPUCPU可访问的物理存可访问的物理存储空间为储空间为2 23232=4=4GBGB;程序可用程序可用的虚拟地址空间为的虚拟地址空间为2 24646=64=64TBTB。段长度在启动页功能时是段长度在启动页功能时是4 4GBGB,不启动页功能时是不启动页功能时是1 1MBMB。可支可支持多用户和单用户的多任务操持多用户和单用户的多任务操作作,并对各任务提供了多方面并对各任务提供了多方面的保护机制。的保护

15、机制。虚拟虚拟80868086方式方式虚拟虚拟80868086方式:方式:既有保护功能又能既有保护功能又能执行执行80868086代码的工作方式,是保护代码的工作方式,是保护方式的一种子方式。方式的一种子方式。CPUCPU的工作原理的工作原理与保护虚地址方式下相同,但程序与保护虚地址方式下相同,但程序指定的逻辑地址解释与指定的逻辑地址解释与80868086相同。相同。系统系统管理管理方式方式系统管理方式:系统管理方式:使设计使设计者实现高级管理功能,者实现高级管理功能,如对电源的管理以及为如对电源的管理以及为操作系统和正在运行的操作系统和正在运行的程序提供安全性。程序提供安全性。基本寄存器基本

16、寄存器系统级寄存器系统级寄存器调试和模型专用寄存器调试和模型专用寄存器 浮点寄存器浮点寄存器PentiumPentium的内部寄存器,按功能可分为的内部寄存器,按功能可分为4 4类:类:2.2.2.2 Pentium2.2 Pentium内部寄存器内部寄存器 2.2.2 Pentium2 Pentium微处理器微处理器标志寄存器标志寄存器指令指针寄存器指令指针寄存器EFLAGSEFLAGSFLAGSFLAGSEIPEIPIPIP31 15 031 15 031 15 031 15 031 16 15 7 031 16 15 7 0通通 用用 寄寄 存存 器器EAX EAX AH AH AX A

17、X ALALEBX EBX BH BH BX BX BLBLECX ECX CHCH CX CX CLCLEDX EDX DHDH DX DX DLDLEDI DIEDI DIESI SIESI SIEBP BPEBP BPESP SPESP SP1.1.基本寄存器基本寄存器选择器选择器CSCSSSSSDSDSESESFSFSGSGS15 0 63 015 0 63 0描述符高速缓存器描述符高速缓存器段段 寄寄 存存 器器 EIP EIP用于保存下一条待用于保存下一条待预取指令相对于代码基址预取指令相对于代码基址的偏移量。它的低的偏移量。它的低1616位也位也可单独访问,称之为可单独访问,称之

18、为IPIP。标志寄存器位定义标志寄存器位定义C CF FEFLAGSEFLAGSFLAGSFLAGS31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0A AC CV VMMR RF F0 0N NT TIOPLIOPLO OF FD DF FIFIFT TF FS SF FZ ZF F0 0A AF F0 0

19、P P F F0 0X X 对准检查标志对准检查标志X X 虚拟虚拟8686模式标志模式标志X X 恢复标志恢复标志X X 嵌套标志嵌套标志X X 特权级标志特权级标志S S 溢出标志溢出标志C C 方向标志方向标志X X 中断允许标志中断允许标志X X 自陷标志自陷标志S S 符号标志符号标志S S 零标志零标志S S 辅助进位标志辅助进位标志S S 奇偶标志奇偶标志S S 进位标志进位标志注注:S S表示状态标志表示状态标志,X X表示系统标志表示系统标志,C C表示控制标志表示控制标志X X 虚拟中断标志虚拟中断标志X IDX ID标志标志X X 虚拟中断挂起虚拟中断挂起0 0 0 0

20、0 0 0 0 0 0V VIFIFV VIPIPI ID D选择器选择器描述符高速缓存器描述符高速缓存器CSSSDSESFSGS15 0 63 015 0 63 0段段寄寄存存器器 段寄存器段寄存器PentiumPentium有有6 6个段寄存器:个段寄存器:CS-CS-指明当前的代码段指明当前的代码段SS-SS-指明当前的堆栈段指明当前的堆栈段DSDSESESFS FS GSGS决定程序使用决定程序使用存储器区域块存储器区域块指明当前的指明当前的4 4个数据段个数据段编程者可直编程者可直接访问的接访问的编程者不能编程者不能访问的访问的段选择符段选择符段描述符段描述符1.1.实地址方式和虚拟

21、实地址方式和虚拟80868086方式下相同,段的长度固方式下相同,段的长度固定为定为6464KB,KB,段选择器就是段寄存器段选择器就是段寄存器,它保存的是逻它保存的是逻辑段基址的高辑段基址的高1616位,将它的内容左移位,将它的内容左移4 4位即可得到位即可得到实际段基址,实际段基址,而不必使用描述符高速缓存器。而不必使用描述符高速缓存器。2.2.在保护虚地址方式下,在保护虚地址方式下,段的长度可以在段的长度可以在1 1字节到字节到4 4G G字节之间变化字节之间变化;为了描述每个段的基址、属性;为了描述每个段的基址、属性和边界,为每个段定义了一个和边界,为每个段定义了一个描述符描述符。Pe

22、ntiumPentium段的定义与段的定义与80868086有所不同:有所不同:这类数不带任何符号信息,只含有量值域这类数不带任何符号信息,只含有量值域,仅,仅CPUCPU支支持。分为三类持。分为三类:字节:字节:字:字:双字:双字:任何逻辑地址上的任何逻辑地址上的8 8位相邻位串。位相邻位串。任何字节地址开始的任何字节地址开始的2 2个相邻字节。个相邻字节。低字节地址低字节地址为该字地址。为该字地址。任何字节地址开始的任何字节地址开始的2 2个相邻字,即个相邻字,即4 4个相邻字个相邻字节。节。最小字节地址为双字的地址最小字节地址为双字的地址。1.1.无符号二进制数无符号二进制数(序数序数)

23、2.2.3.1 3.1 基本数据类型基本数据类型2.2.3 3 PentiumPentium微处理器指令系统微处理器指令系统 这类数均以补码表示这类数均以补码表示,有有8 8位数位数(字节字节)、1616位数位数(字字)、3232位数位数(双字双字)、6464位数位数(4(4字字)四种。四种。CPUCPU支持前支持前3 3种,种,FPUFPU支持后支持后3 3种。种。2.2.带符号的二进制定点整数带符号的二进制定点整数(整数整数)关于数据类型的两点说明:关于数据类型的两点说明:(1)(1)各类型数据中,基本的数据类型仍是字节、字和双字各类型数据中,基本的数据类型仍是字节、字和双字 尽可能将字操

24、作尽可能将字操作对准对准于偶地址,将双字操作于偶地址,将双字操作对准对准于于4 4的整数倍地址。的整数倍地址。对准的字和双字可一次传递完,未对准的字和双字对准的字和双字可一次传递完,未对准的字和双字需几次才能传递完。需几次才能传递完。(2)(2)对于字和双字数据,对于字和双字数据,8080X86X86是采用低端低地址方式来是采用低端低地址方式来存储存储 字数据被存储在两个相邻的字节单元之中,低位字字数据被存储在两个相邻的字节单元之中,低位字节在低地址单元,高位字节在高地址单元;节在低地址单元,高位字节在高地址单元;双字数据存储在四个连续字节单元中,最低位字节双字数据存储在四个连续字节单元中,最

25、低位字节在最低地址单元,最高字节在最高地址单元。在最低地址单元,最高字节在最高地址单元。而字或双字数据的地址是指而字或双字数据的地址是指最低位字节最低位字节所在的单元地所在的单元地址。址。2.2.3.2 3.2 操作数寻址方式操作数寻址方式1.1.寻址方式和有效地址概念寻址方式和有效地址概念2.112.11种寻址方式种寻址方式3.3.存储器寻址时的段约定存储器寻址时的段约定4.4.应用举例应用举例 寻址方式就是寻找指令中操作数地址的方式。操作数所寻址方式就是寻找指令中操作数地址的方式。操作数所在地址有三种可能:在地址有三种可能:n 直接包含在指令中直接包含在指令中,即指令的操作数部分就是操作,

26、即指令的操作数部分就是操作 数本身。这种操作数叫立即数数本身。这种操作数叫立即数,对应的指令寻址方对应的指令寻址方 式称为式称为立即数寻址。立即数寻址。n 包含在包含在CPU CPU 的某个内部寄存器中的某个内部寄存器中。这时指令中的操。这时指令中的操 作数部分是作数部分是CPUCPU的一个寄存器的一个寄存器,这种指令寻址方式称这种指令寻址方式称 为为寄存器寻址寄存器寻址。n 在内存储器中在内存储器中。这时指令的操作数部分包含着该操。这时指令的操作数部分包含着该操 作数所在的内存地址。这种指令寻址方式称为作数所在的内存地址。这种指令寻址方式称为存储存储 器寻址器寻址。1.1.寻址方式和有效地址

27、概念寻址方式和有效地址概念寻址方式寻址方式 在在PentiumPentium系列系列MPUMPU中,内存实际地址中,内存实际地址(PA)PA):PA=PA=段基地址段基地址 +段内偏移地址(段内偏移地址(EAEA )为了适应处理各种数据结构的需要,段内偏移地址为了适应处理各种数据结构的需要,段内偏移地址可由以下几部分组合而成:可由以下几部分组合而成:v 基址寄存器内容基址寄存器内容v 变址寄存器内容变址寄存器内容v 比例因子比例因子(仅与仅与3232位方式相关)位方式相关)v 位移量位移量 这四个基本部分称为偏移地址四元素,一般又将由这四个基本部分称为偏移地址四元素,一般又将由这四种元素组合形

28、成的偏移地址称为这四种元素组合形成的偏移地址称为有效地址有效地址EAEA。EA=EA=基址基址+(+(变址比例因子变址比例因子)+)+位移量位移量有效地址有效地址EAEA有效地址元素有效地址元素1616位寻址位寻址3232位寻址位寻址基址寄存器基址寄存器 BX,BP BX,BP 任何任何3232位通用寄存器位通用寄存器变址寄存器变址寄存器 SI,DI SI,DI 除除ESPESP外的任何外的任何3232位通用寄存器位通用寄存器比例因子比例因子 无(或无(或1 1)1 1,2 2,4 4,8 8位移量位移量 0 0,8 8,1616位位 0 0,8 8,3232位位n 指令寻址字段规定了操作数的

29、来源部件和如何计指令寻址字段规定了操作数的来源部件和如何计 算算EA的方法。的方法。n 实地址与保护方式的实地址与保护方式的PA 方法不同方法不同.无无AX、CX、DX、SP、IP寄存器寄存器 保护方式下的寻址过程保护方式下的寻址过程(地址转换过程地址转换过程)-虚拟存储虚拟存储有效地址计算有效地址计算变址变址位移位移基址基址比例因子比例因子+3232位位有效地址有效地址31 031 0BE7BE7BE0BE0A31A31A3A332 32 位位32 32 位位1313位位描述符检索描述符检索段寄存器段寄存器选择符选择符 TITIRPLRPL15 3 2 1 015 3 2 1 0分段分段部件

30、部件线性线性地址地址物理物理存储器存储器4G4G分页分页部件部件(可选可选)物理物理地址地址逻辑地址逻辑地址(虚拟虚拟)(CS,DS,ES,SS,FS,GSCS,DS,ES,SS,FS,GS)不分页不分页逻辑地址逻辑地址 =段选择符段选择符 :有效地址:有效地址 偏移地址四元素可优化组合出偏移地址四元素可优化组合出9 9种存储器寻址方式种存储器寻址方式,加上加上立即数寻址和寄存器寻址,立即数寻址和寄存器寻址,PentiumPentium共有共有1111种寻址方式种寻址方式:(1)(1)立即数寻址立即数寻址(2)(2)寄存器寻址寄存器寻址(3)(3)直接寻址直接寻址(4)(4)寄存器间接寻址寄存

31、器间接寻址(5)(5)基址寻址基址寻址(6)(6)变址寻址变址寻址(7)(7)比例变址寻址比例变址寻址(8)(8)基址加变址寻址基址加变址寻址(9)(9)基址加比例变址寻址基址加比例变址寻址(10)(10)带位移的基址加变址寻址带位移的基址加变址寻址(11)(11)带位移的基址加比例变址寻址带位移的基址加比例变址寻址2.112.11种寻址方式种寻址方式EA=EA=基址基址+(+(变址比例因子变址比例因子)+)+位移量位移量 在这种寻址方式下在这种寻址方式下,操作数作为立即数操作数作为立即数直接存在指直接存在指令中令中,可为可为8 8位、位、1616位或位或3232位。位。例:例:MOV AXM

32、OV AX,4567H4567HMOV BLMOV BL,78H78HMOV ECXMOV ECX,12345678H12345678H立即数寻址立即数寻址78563412顺序存放在指令后面顺序存放在指令后面 在这种方式下在这种方式下,操作数包含在指令规定的操作数包含在指令规定的8 8位、位、1616位位或或3232位寄存器中。位寄存器中。例:例:MOV EAXMOV EAX,EDXEDXINC CLINC CLMOV DSMOV DS,AXAX 这种寻址方式指令编码短,无需从存储器取操作数,这种寻址方式指令编码短,无需从存储器取操作数,故执行速度快。故执行速度快。(2)(2)寄存器寻址寄存器

33、寻址(寄存器直接寻址寄存器直接寻址)指令中的操作数部分直接给出操作数有效地址指令中的操作数部分直接给出操作数有效地址EAEA。与操作码一起放在存储器代码段中与操作码一起放在存储器代码段中,可以是,可以是1616位位或或3232位整数。位整数。操作数一般在数据段操作数一般在数据段DSDS中。中。(3)(3)直接寻址直接寻址(存储器直接寻址存储器直接寻址)实际中对于直接寻址实际中对于直接寻址,如操作数在如操作数在DSDS段中段中,则可直则可直接写成接写成:MOV AX,3000HMOV AX,3000H 如操作数在如操作数在DSDS之外的其他段之外的其他段(CS,SS,ES,FS,GS)CS,SS

34、,ES,FS,GS)中中,指令中则必须用段寄存器名前缀指令中则必须用段寄存器名前缀(称为段超越前缀称为段超越前缀)予以指明。例如:予以指明。例如:MOV AX,FS:3000HMOV AX,FS:3000H 直接寻址主要用于单个操作数的相对寻址场合直接寻址主要用于单个操作数的相对寻址场合(如如简单的标量操作数寻址和静态分配数组的起始地址简单的标量操作数寻址和静态分配数组的起始地址寻址等寻址等)。操作数放在存储器中操作数放在存储器中,但其有效地址但其有效地址EAEA在寄存器中在寄存器中,即即:EA =EA =寄存器寄存器 寄存器的使用规定在寄存器的使用规定在1616位寻址和位寻址和3232位寻址

35、时不一样。位寻址时不一样。1616位:位:BX ,BP BX ,BP,SI ,DISI ,DI 3232位:位:EAX EBX,ECX,EDXEAX EBX,ECX,EDX ESI.EDI.EBP,ESPESI.EDI.EBP,ESP(4)(4)寄存器间接寻址寄存器间接寻址8 8个通用寄存器个通用寄存器 16 16位寻址时,偏移地址放在位寻址时,偏移地址放在SISI、DIDI、BPBP或或BXBX中。这中。这 时又有两种段默认情况:时又有两种段默认情况:q若以若以SISI、DIDI、BXBX间接寻址间接寻址,则默认操作数在则默认操作数在DSDS段中。段中。例如:例如:MOV AX,SI ;MO

36、V AX,SI ;默认默认DSDS为段基址为段基址q若以若以BPBP间接寻址间接寻址,则默认操作数在则默认操作数在SSSS段中。段中。例如:例如:MOV AX,BP ;MOV AX,BP ;默认默认SSSS为段基址为段基址 如果操作数不在上述规定的默认段,而是在其他段,则如果操作数不在上述规定的默认段,而是在其他段,则必须在指令中相应的操作数前加上段必须在指令中相应的操作数前加上段超越前缀超越前缀。例如:。例如:MOV AX,ES:SIMOV AX,ES:SIMOV AX,DS:BPMOV AX,DS:BP 3232位寻址时位寻址时,8,8个个3232位通用寄存器均可作寄存器间接寻址位通用寄存

37、器均可作寄存器间接寻址 例如:例如:MOV EBX,EAX;MOV EBX,EAX;默认默认DSDS为段基址为段基址,传送双字给传送双字给EBXEBXMOV DX,EBX ;MOV DX,EBX ;默认默认DSDS为段基址为段基址,传送字给传送字给DXDXMOV CH,EAX ;MOV CH,EAX ;默认默认DSDS为段基址为段基址,传送字节给传送字节给CHCH 除除ESPESP、EBPEBP默认段寄存器为默认段寄存器为SSSS外,其余外,其余6 6个通用寄存器个通用寄存器均默认段寄存器为均默认段寄存器为DSDS。如操作数在默认段之外,指令中必须加段超越前缀。如操作数在默认段之外,指令中必须

38、加段超越前缀。寄存器间接寻址的应用场合与直接寻址的应用场合相寄存器间接寻址的应用场合与直接寻址的应用场合相似,当更灵活。似,当更灵活。在这种方式下在这种方式下,EA=EA=基址寄存器基址寄存器+位移量。位移量。其中位移量一定要为常数其中位移量一定要为常数,且跟随在操作码之后且跟随在操作码之后,与与操作码一起存放在代码段中。操作码一起存放在代码段中。1616位寻址情况下位寻址情况下,BXBX和和BPBP作为基址寄存器。作为基址寄存器。BX BX以以DSDS作为默认段寄存器作为默认段寄存器,BP BP以以SSSS作为默认段寄存器。作为默认段寄存器。位移量可为位移量可为8 8位或位或1616位;位;

39、3232位寻址情况下,位寻址情况下,8 8个个3232位通用寄存器均可作基址寄存器位通用寄存器均可作基址寄存器 其中其中ESPESP、EBPEBP以以SSSS为默认段寄存器,为默认段寄存器,其余其余6 6个通用寄存器均以个通用寄存器均以DSDS为默认段寄存器。为默认段寄存器。位移量为位移量为8 8位或位或3232位。位。例如:例如:MOV EAX,BX+24 ;MOV EAX,BX+24 ;也可写成也可写成MOV EAX,24BXMOV EAX,24BXMOV ECX,EBP+50;MOV ECX,EBP+50;也可写成也可写成MOV ECX,50EBPMOV ECX,50EBPMOV DX,

40、EAX+1500H;MOV DX,EAX+1500H;也可写成也可写成MOV DX,1500HEAXMOV DX,1500HEAX(5)(5)基址寻址基址寻址与32位寄存器间接寻址方式相同2-43 EA=EA=变址寄存器变址寄存器+位移量位移量 指令书写格式和寻址执行过程与基址寻址相同;指令书写格式和寻址执行过程与基址寻址相同;区别仅在于将基址寄存器改成变址寄存器。区别仅在于将基址寄存器改成变址寄存器。(6)(6)变址寻址变址寻址 1616位寻址时,仅位寻址时,仅SISI、DIDI可作变址寄存器,且可作变址寄存器,且 默认默认DSDS作为段基址寄存器。如:作为段基址寄存器。如:MOV AX,M

41、OV AX,COUNT COUNT SISI 3232位寻址时位寻址时,除除ESPESP外的任何通用寄存器均可作变址寄存器。外的任何通用寄存器均可作变址寄存器。默认默认EBPEBP以以SSSS作段基址寄存器作段基址寄存器,其余均以其余均以DSDS作段基址寄存器。作段基址寄存器。MOV EAX,5EBPMOV EAX,5EBPMOV ECX,MOV ECX,DATADATAEAXEAX 基址、变址寻址适于对一维数组的数组元素进行检索操基址、变址寻址适于对一维数组的数组元素进行检索操作。位移量表示数组起始地址偏移量;基址作。位移量表示数组起始地址偏移量;基址/变址表示数组变址表示数组元素的下标,可

42、变。元素的下标,可变。MOV ECX,DATAESP 是什么寻址方式?是什么寻址方式?答案:基址寻址方式。默认段寄存器答案:基址寻址方式。默认段寄存器SS 变址寻址不能使用变址寻址不能使用ESP在这种方式下:在这种方式下:EA=EA=变址寄存器变址寄存器 比例因子比例因子+位移量位移量这种寻址方式这种寻址方式只适于只适于3232位位寻址一种情况。例如:寻址一种情况。例如:MOV EAX,TABLEESIMOV EAX,TABLEESI*44 ;TABLE;TABLE是位移量是位移量,4,4是比例因子是比例因子(7)(7)比例变址寻址比例变址寻址 比例变址寻址和基址比例变址寻址和基址/变址寻址的

43、作变址寻址的作用相似用相似,也适用于对一维数组元素的检索。也适用于对一维数组元素的检索。但当数组元素大小为但当数组元素大小为2/4/82/4/8字节时,用它字节时,用它更方便、更高效。更方便、更高效。在这种寻址方式下,在这种寻址方式下,EA=EA=基址寄存器基址寄存器+变址寄存器变址寄存器 例如:例如:MOV AX,BX+SI ;MOV AX,BX+SI ;或写成或写成 MOV AX,BXSIMOV AX,BXSI MOV AX,BPSI MOV AX,BPSI 它有它有1616位寻址和位寻址和3232位寻址两种情况,每种情况下基址、变址寄存位寻址两种情况,每种情况下基址、变址寄存器的使用规定

44、和段寄存器的默认规定与前面所述相同。器的使用规定和段寄存器的默认规定与前面所述相同。基址寄存器与变址寄存器默认的段寄存器不相同时,一般规定由基基址寄存器与变址寄存器默认的段寄存器不相同时,一般规定由基址寄存器址寄存器(比如:比如:BP,BX)BP,BX)来决定默认哪一个段寄存器作段基址指针。来决定默认哪一个段寄存器作段基址指针。基址加变址寻址主要用于二维数组元素的检索和二基址加变址寻址主要用于二维数组元素的检索和二重循环等。重循环等。(8)(8)基址加变址寻址基址加变址寻址在这种方式下在这种方式下,EA=EA=基址寄存器基址寄存器+变址寄存器变址寄存器 比例因子比例因子它只有它只有3232位寻

45、址一种情况。位寻址一种情况。格式举例:格式举例:MOV ECX,EDXMOV ECX,EDX*8EAX;8EAX;或或MOV MOV ECX,EDXECX,EDX*8+EAX8+EAXMOV AX,EBXMOV AX,EBX*4ESI ;4ESI ;或或MOV AX,EBXMOV AX,EBX*4+ESI4+ESI 这种方式主要用于数组元素大小为这种方式主要用于数组元素大小为2/4/82/4/8字节时的二字节时的二维数组检索操作等场合。维数组检索操作等场合。(9)(9)基址加比例变址寻址基址加比例变址寻址在这种方式下:在这种方式下:EA=EA=变址寄存器变址寄存器+基址寄存器基址寄存器+位移量

46、位移量 这种方式也分这种方式也分1616位寻址和位寻址和3232位寻址两种情况。变址、位寻址两种情况。变址、基址寄存器的使用约定和对段寄存器的默认约定与前面基址寄存器的使用约定和对段寄存器的默认约定与前面所述相同。格式举例:所述相同。格式举例:MOV AX,BX+DI+MASK MOV AX,BX+DI+MASK 或或 MOVAX,MASKBXDIMOVAX,MASKBXDIADD EDX,ESIEBP+0FFFF000H ADD EDX,ESIEBP+0FFFF000H 或或ADD EDX,0FFFF000HESIEBPADD EDX,0FFFF000HESIEBP 这种寻址方式也是主要用于

47、二维数组操作,位移这种寻址方式也是主要用于二维数组操作,位移量即为数组起始地址。量即为数组起始地址。(10)(10)带位移的基址加变址寻址带位移的基址加变址寻址这种方式将偏移地址四元素都用上了,即:这种方式将偏移地址四元素都用上了,即:EA=EA=变址寄存器变址寄存器 比例因子比例因子+基址寄存器基址寄存器+位移量位移量 它只有它只有3232位寻址一种情况。各种约定和默认情况位寻址一种情况。各种约定和默认情况同前所述。同前所述。格式举例:格式举例:INC EDIINC EDI*8ECX+40 ;8ECX+40 ;或或INC EDIINC EDI*8+ECX+408+ECX+40 当二维数组的数

48、组元素大小为当二维数组的数组元素大小为2/4/82/4/8字节,且数组字节,且数组起始地址不为起始地址不为0 0时,适于用这种寻址方式进行数组检索时,适于用这种寻址方式进行数组检索操作。操作。(11)(11)带位移的基址加比例变址寻址带位移的基址加比例变址寻址3.3.存储器寻址时的段约定存储器寻址时的段约定访存操作类型访存操作类型 默认段寄存器默认段寄存器 允许超越的段寄存器允许超越的段寄存器 偏移地址寄存器偏移地址寄存器堆栈操作堆栈操作 SS SS 无无 (E)SP(E)SP取指令代码取指令代码 CSCS 无无 (E E)IPIP源串数据访问源串数据访问 DSDS CSCS、SSSS、ESE

49、S、FSFS、GS GS (E)SIE)SI目的串数据访问目的串数据访问 ES ES 无无 (E)DIE)DI通用数据访问通用数据访问 DS CSDS CS、SSSS、ESES、FSFS、GS GS 偏移地址偏移地址SSSSCSCS、DSDS、ESES、FSFS、GSGS偏移地址偏移地址以以(E)BPE)BP、(E)SP(E)SP间接寻址的指令间接寻址的指令4.4.应用举例应用举例 CPUCPUBXBX 0100H 0100HSISI 0002H 0002HDS DS 3000H3000H30100H30100H 12H 12H30101H30101H 34H 34H30102H 30102H

50、 56H 56H30103H30103H 78H 78H31200H31200H 2AH 2AH31201H31201H 4CH 4CH31202H31202H B7H B7H31203H 31203H 65H 65H M M 例例2.12.1 已知已知8048680486工作在实地址方式下工作在实地址方式下,其中一些寄存其中一些寄存器的内容和一些存储单元的内容如图所示,试指出下列各器的内容和一些存储单元的内容如图所示,试指出下列各条指令执行后,条指令执行后,AXAX中的内容。中的内容。MOV AXMOV AX,2010H2010H MOV AX MOV AX,BXBX MOV AX MOV

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第2章微处理器与指令系统(同名40)课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|