第 5 章 指令系统_第1页
第 5 章 指令系统_第2页
第 5 章 指令系统_第3页
第 5 章 指令系统_第4页
第 5 章 指令系统_第5页
已阅读5页,还剩184页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-7 第8版 2012.091第第 5 5 章章 指令系统指令系统2022-3-72本章学习内容 指令系统的设计方法指令系统的设计方法指令格式指令格式寻址方式寻址方式 CISCCISC和和RISCRISC的概念的概念2022-3-735.1 5.1 机器指令机器指令 指令指令:控制计算机执行某种操作的命令。:控制计算机执行某种操作的命令。 机器语言机器语言:计算机硬件实体直接表示控制信息的:计算机硬件实体直接表示控制信息的语言。语言。 机器语言程序机器语言程序:用机器语言编制的程序。:用机器语言编制的程序。 机器语言是计算机硬件能直接理解并执行的语言,机器语言是计算机硬件能直接理解

2、并执行的语言,任何用其它语言编制的程序,都必须经过任何用其它语言编制的程序,都必须经过 “翻翻译译”,翻译为机器语言程序,才能在机器中正确,翻译为机器语言程序,才能在机器中正确的运行。的运行。 一条指令就是机器语言的一个语句,用来说明机一条指令就是机器语言的一个语句,用来说明机器硬件应完成的操作。器硬件应完成的操作。 指令系统(指令集)指令系统(指令集):一台计算机所能执行的全:一台计算机所能执行的全部指令的集合。部指令的集合。2022-3-74 机器语言是面向机器的机器语言是面向机器的:不同的计算机系统,:不同的计算机系统,具有不同的指令,每一计算机系统都具有自己具有不同的指令,每一计算机系

3、统都具有自己的指令系统。的指令系统。 指令系统必须是完备的指令系统必须是完备的:即任何运算都可以用:即任何运算都可以用指令系统中的指令编程实现。指令系统中的指令编程实现。 指令系统是计算机体系结构的核心;是计算机指令系统是计算机体系结构的核心;是计算机系统硬件、软件的主要界面。它既是计算机硬系统硬件、软件的主要界面。它既是计算机硬件设计的主要依据,又是计算机软件设计的基件设计的主要依据,又是计算机软件设计的基石。所以一台计算机指令系统的优劣,直接影石。所以一台计算机指令系统的优劣,直接影响着计算机系统的性能。响着计算机系统的性能。2022-3-755.1.1 5.1.1 机器指令格式机器指令格

4、式 指令字指令字(指令代码):表示一条指令的一(指令代码):表示一条指令的一串二进制代码。串二进制代码。 指令格式的设计内容:指令格式的设计内容: 确定的指令字长度确定的指令字长度 划分指令字字段并加以定义划分指令字字段并加以定义2022-3-76 一条指令中应包含的信息:一条指令中应包含的信息: 操作码操作码:表示指令的操作特性和功能。:表示指令的操作特性和功能。 操作数的地址操作数的地址:指示操作数或操作数所在的:指示操作数或操作数所在的地址。地址。 存放操作结果的地址存放操作结果的地址。 下一条指令的地址下一条指令的地址。 指令的基本格式:指令的基本格式:操作码(操作码(OPOP)地址码

5、(地址码(A A)2022-3-77 各字段的指定方法:各字段的指定方法: 显式指定显式指定:在指令字中明显地指定。:在指令字中明显地指定。 隐含指定隐含指定:由设计者用约定的方法指定。:由设计者用约定的方法指定。 指令操作码均采用显式指定。指令操作码均采用显式指定。 下一条指令的地址多采用隐含指定。下一条指令的地址多采用隐含指定。 信息的存储结构不同,指定的地址也不一样,信息的存储结构不同,指定的地址也不一样,地址的结构也不同。地址的结构也不同。2022-3-785.1.2 5.1.2 指令字的长度指令字的长度 指令字长度指令字长度:一个指令字所包含的二进制信息的:一个指令字所包含的二进制信

6、息的位数。位数。 定长指令字定长指令字:机器的指令系统中:机器的指令系统中各种指令字的长各种指令字的长度均为固定的度均为固定的。 可变长指令字可变长指令字:机器的指令系统中:机器的指令系统中各种指令字的各种指令字的长度随指令的功能而异。长度随指令的功能而异。 2022-3-79 定长指令字的指令长度固定,结构简单,指令定长指令字的指令长度固定,结构简单,指令译码时间短,有利于硬件控制系统的设计,但译码时间短,有利于硬件控制系统的设计,但定长指令字指令平均长度长、容易出现冗余码定长指令字指令平均长度长、容易出现冗余码点、指令不易扩展。点、指令不易扩展。 可变长指令字的指令长度不定,结构灵活,能可

7、变长指令字的指令长度不定,结构灵活,能充分利用指令的每一位,指令的充分利用指令的每一位,指令的码点冗余少,码点冗余少,平均指令长度短,易于扩展。但平均指令长度短,易于扩展。但可变长指令的可变长指令的指令格式不规整,取指令时可能需要多次访存,指令格式不规整,取指令时可能需要多次访存,导致不同指令的执行时间不一致,硬件导致不同指令的执行时间不一致,硬件控制系控制系统复杂。统复杂。 2022-3-710 在按字节编址的存储器中,采用长度为字节的在按字节编址的存储器中,采用长度为字节的整倍数的指令,可以充分利用存储空间,增加整倍数的指令,可以充分利用存储空间,增加内存访问的有效性。内存访问的有效性。

8、为了合理地安排存储空间,并使指令能表达较为了合理地安排存储空间,并使指令能表达较丰富的内容,采用可变长指令将更加灵活有效。丰富的内容,采用可变长指令将更加灵活有效。 单字长指令单字长指令:指令长度等于机器字长。:指令长度等于机器字长。 双字长指令双字长指令:指令长度等于两个机器字长。:指令长度等于两个机器字长。 还有更多倍字长的指令及半字长指令等。还有更多倍字长的指令及半字长指令等。 短指令占存储空间少,有利于提高指令执行速度,短指令占存储空间少,有利于提高指令执行速度,因此通常把最常用指令(如算术逻辑运算指令、因此通常把最常用指令(如算术逻辑运算指令、数据传送指令等)设计成短指令格式。数据传

9、送指令等)设计成短指令格式。2022-3-7115.1.3 5.1.3 指令的地址结构指令的地址结构 CPUCPU可直接访问的存储结构可直接访问的存储结构 主存储器:访存时要给出存储器单元地址主存储器:访存时要给出存储器单元地址 CPUCPU寄存器:包括通用寄存器和专用寄存器。寄存器:包括通用寄存器和专用寄存器。 I/OI/O接口寄存器:包括数据寄存器和状态寄接口寄存器:包括数据寄存器和状态寄存器。存器。 堆栈。堆栈。2022-3-712 设计指令字的地址码格式时需解决的主设计指令字的地址码格式时需解决的主要问题:要问题: 一条指令中需要指明几个地址;一条指令中需要指明几个地址; 应当如何给出

10、地址;应当如何给出地址; 地址码应选多长。地址码应选多长。 2022-3-7131 1四地址指令四地址指令 四地址指令格式:四地址指令格式: A A1 1:第一源操作数的存储器地址或寄存器地址。:第一源操作数的存储器地址或寄存器地址。 A A2 2:第二源操作数的存储器地址或寄存器地址。:第二源操作数的存储器地址或寄存器地址。 A A3 3:存放操作结果的存储器地址或寄存器地址。:存放操作结果的存储器地址或寄存器地址。 A A4 4:指示下一条要执行指令的地址。:指示下一条要执行指令的地址。 四地址指令的功能:四地址指令的功能: (A(A1 1)OP(A)OP(A2 2)A)A3 3 A A4

11、 4指示下条指令地址指示下条指令地址OPOPA A1 1A A2 2A A3 3A A4 42022-3-714 四地址指令直观明了,程序的执行流向明确,四地址指令直观明了,程序的执行流向明确,不存在转移指令。但指令长度太长,因此在实不存在转移指令。但指令长度太长,因此在实际机器中基本不用。际机器中基本不用。2022-3-7152 2三地址指令三地址指令 程序在执行过程中大多数情况是按指令序列依程序在执行过程中大多数情况是按指令序列依次执行的,只有在执行转移指令时,程序的执次执行的,只有在执行转移指令时,程序的执行顺序才被改变。为了压缩指令长度,下一条行顺序才被改变。为了压缩指令长度,下一条指

12、令地址采用指令地址采用隐含隐含的方法给出。的方法给出。 通常用一个通常用一个程序计数器程序计数器 PC PC 来跟踪程序的执行来跟踪程序的执行并指示并指示将要执行的指令地址将要执行的指令地址。每执行一条指令,。每执行一条指令,PCPC自动增量,增量值取决于执行指令的长度。自动增量,增量值取决于执行指令的长度。 当程序出现转移时,用专门的转移指令将转移当程序出现转移时,用专门的转移指令将转移地址直接送入地址直接送入PCPC。 在三地址指令在三地址指令中不明显地指示下条指令地址。中不明显地指示下条指令地址。2022-3-716 三地址指令格式:三地址指令格式: A A1 1:第一源操作数的存储器地

13、址或寄存器地址;:第一源操作数的存储器地址或寄存器地址; A A2 2:第二源操作数的存储器地址或寄存器地址;:第二源操作数的存储器地址或寄存器地址; A A3 3:存放操作结果的存储器地址或寄存器地址;:存放操作结果的存储器地址或寄存器地址; 三地址指令功能为:三地址指令功能为: (A(A1 1)OP(A)OP(A2 2)A)A3 3; PC PC 指示下条指令地址指示下条指令地址OPOPA A1 1A A2 2A A3 32022-3-717 三地址指令编程方便,结果不影响运算三地址指令编程方便,结果不影响运算操作数,但指令长度仍比较长,所以一操作数,但指令长度仍比较长,所以一般在字长较长

14、的大、中型机中使用,而般在字长较长的大、中型机中使用,而微、小型机中很少使用三个地址均为存微、小型机中很少使用三个地址均为存储器地址的三地址指令。储器地址的三地址指令。2022-3-7183 3二地址指令二地址指令 二地址指令的格式为:二地址指令的格式为: A A1 1、A A2 2是操作数所在的存储器地址或寄存器地址。是操作数所在的存储器地址或寄存器地址。 二地址指令功能为:二地址指令功能为: (A(A1 1)OP(A)OP(A2 2)A)A1 1 或或 (A(A1 1)OP(A)OP(A2 2)A)A2 2 源地址源地址:仅提供操作数的地址:仅提供操作数的地址 目的地址目的地址:既提供一个

15、操作数,又存放操作结果:既提供一个操作数,又存放操作结果的地址的地址OPOPA A1 1A A2 22022-3-719二地址指令的意义二地址指令的意义 源地址中的操作数与目的地址中的操作源地址中的操作数与目的地址中的操作数进行操作码所规定的操作,结果存入数进行操作码所规定的操作,结果存入目的地址中。目的地址中。2022-3-720 存储器存储器存储器型(存储器型(S SS S型型)指令:)指令: A A1 1、A A2 2均为存储器地址的二地址指令。均为存储器地址的二地址指令。OPOPA A1 1A A2 2二地址指令的几种形式二地址指令的几种形式2022-3-721 寄存器寄存器寄存器型(

16、寄存器型(R RR R型型)指令:)指令: A A1 1、A A2 2均为寄存器地址的二地址指令。均为寄存器地址的二地址指令。OPOPR R1 1R R2 22022-3-722 寄存器寄存器存储器型(存储器型(R RS S型型)指令:)指令: A A1 1、A A2 2中一个是寄存器地址,另一个是存储器中一个是寄存器地址,另一个是存储器地址的二地址指令。也称一个半地址指令。地址的二地址指令。也称一个半地址指令。OPOPR Rn nA A2022-3-723 二地址指令的指令长度短,特别是二地址指令的指令长度短,特别是R RR R型指令,型指令,不需访问存储器取操作数,指令执行速度快,不需访问

17、存储器取操作数,指令执行速度快,因此是最常用的一种指令格式。尤其在因此是最常用的一种指令格式。尤其在RISCRISC结结构机器中,所有运算型指令均为构机器中,所有运算型指令均为R RR R型指令。型指令。 二地址指令执行后,二地址指令执行后,参加运算的操作数被破坏参加运算的操作数被破坏,若不希望被破坏,则需提前保护。若不希望被破坏,则需提前保护。2022-3-7244. 4. 一地址指令(单地址指令)一地址指令(单地址指令) 一地址指令也称单地址指令,指令中只有一地址指令也称单地址指令,指令中只有一个地址字段。一个地址字段。 一地址指令的格式为:一地址指令的格式为: A A可以是存储器地址,也

18、可是寄存器地址。可以是存储器地址,也可是寄存器地址。OPOPA A2022-3-725 一地址指令有两种情况一地址指令有两种情况 单操作数指令单操作数指令:如:如INCINC、DECDEC、NEGNEG等,等,只需一个操作数,其功能为:只需一个操作数,其功能为: OP(A)AOP(A)A 双操作数指令双操作数指令:另一个操作数通常采:另一个操作数通常采用隐含寻址的方法,将操作数隐含在约用隐含寻址的方法,将操作数隐含在约定的累加器定的累加器ACAC中,其指令功能为:中,其指令功能为: (AC)OP(A)AC(AC)OP(A)AC2022-3-726 一地址指令长度短,指令执行速度快一地址指令长度

19、短,指令执行速度快(若(若A A为存储器地址,只需一次访存取为存储器地址,只需一次访存取数),对于字长较短的微、小型机,是数),对于字长较短的微、小型机,是一种常用的指令格式。一种常用的指令格式。2022-3-7275 5零地址指令零地址指令 零地址指令中只有操作码而无地址码,其指令零地址指令中只有操作码而无地址码,其指令格式为;格式为; 零地址指令有两种情况:零地址指令有两种情况: 不需操作数的控制型指令,如不需操作数的控制型指令,如HALTHALT、WAITWAIT、NOPNOP等。等。 运算型零地址指令:操作数隐含在堆栈中。运算型零地址指令:操作数隐含在堆栈中。OPOP2022-3-72

20、85.1.4 5.1.4 指令的操作码指令的操作码 操作码用于指明指令要完成的操作功能及其特操作码用于指明指令要完成的操作功能及其特性。指令系统中的每一条指令都有一个唯一确性。指令系统中的每一条指令都有一个唯一确定的操作码,用以指示指令的操作功能。不同定的操作码,用以指示指令的操作功能。不同的指令具有不同的操作码。的指令具有不同的操作码。 为了能表示指令系统中的全部操作,指令字中为了能表示指令系统中的全部操作,指令字中必须有足够长度的操作码字段。假定指令系统必须有足够长度的操作码字段。假定指令系统中有中有 m m 种操作,则操作码位数种操作,则操作码位数 n n 应满足:应满足: nlognl

21、og2 2m m 指令操作码的编码有定长编码和变长编码两种。指令操作码的编码有定长编码和变长编码两种。2022-3-729 定长编码的指令操作码定长编码的指令操作码:所有指令的操作码长:所有指令的操作码长度一致,位置固定。是一种简单规整的编码方度一致,位置固定。是一种简单规整的编码方法。法。 定长编码操作码的特点:定长编码操作码的特点: 位数和位置固定,指令译码简单,有利于简化位数和位置固定,指令译码简单,有利于简化硬件设计。硬件设计。 在字长较长的大、中型机以及超小型机中定长在字长较长的大、中型机以及超小型机中定长编码的操作码被广泛采用,编码的操作码被广泛采用, 例如:在例如:在IBM 36

22、0/370IBM 360/370机中,所有指令的操作机中,所有指令的操作码均为码均为8 8位,最多可指定位,最多可指定256256种操作。种操作。1)1)定长编码定长编码2022-3-730 变长编码的指令操作码变长编码的指令操作码:不同指令的操作码长度:不同指令的操作码长度不完全相同,操作码的位数不固定,分散地放在不完全相同,操作码的位数不固定,分散地放在指令字的不同位置上。指令字的不同位置上。 变长编码变长编码操作码操作码的特点:的特点: 可用较短的指令字长表示更多的操作类型,寻址可用较短的指令字长表示更多的操作类型,寻址较大的存储空间。较大的存储空间。 操作码的位数不固定,且位置分散,增

23、加了指令操作码的位数不固定,且位置分散,增加了指令译码与分析的难度,使硬件设计复杂化。译码与分析的难度,使硬件设计复杂化。 在早期的微、小型机中,由于指令字较短,均采在早期的微、小型机中,由于指令字较短,均采用变长编码的指令操作码。如用变长编码的指令操作码。如Intel 8086Intel 8086、PDPPDP一一1111等机器。等机器。2) 2) 变长编码变长编码2022-3-731扩展操作码的方法扩展操作码的方法 最常用的变长操作码的编码方式是扩展操作码最常用的变长操作码的编码方式是扩展操作码法。法。 扩展操作码法扩展操作码法:当指令长度一定时,将操作数:当指令长度一定时,将操作数地址多

24、的指令选择短的操作码,操作数地址少地址多的指令选择短的操作码,操作数地址少的指令选择较长操作码。的指令选择较长操作码。 采用扩展操作码法即能充分地利用指令字的各采用扩展操作码法即能充分地利用指令字的各个字段,又能在不增加指令长度的情况下扩展个字段,又能在不增加指令长度的情况下扩展操作码长度,使它能表示更多的指令。操作码长度,使它能表示更多的指令。2022-3-732 例:设某机的指令长度为例:设某机的指令长度为1616位。操作码为位。操作码为4 4位,位,具有三个地址字段,每个地址字段长为具有三个地址字段,每个地址字段长为4 4位。其位。其指令格式为:指令格式为:15 1215 1211 81

25、1 87 47 43 03 0OPOPA A1 1A A2 2A A3 3 按照定长编码的方法,按照定长编码的方法,4 4位操作码可表示位操作码可表示1616条三条三地址指令。地址指令。 若指令系统中要求有若指令系统中要求有1515条三地址指令、条三地址指令、1515条二地条二地址指令、址指令、1515条一地址指令和条一地址指令和1616条零地址指令,共条零地址指令,共6161条指令。则需要采用条指令。则需要采用变长操作码方式进行编码。变长操作码方式进行编码。2022-3-733条条零零地地址址指指令令条条单单地地址址指指令令条条二二地地址址指指令令条条三三地地址址指指令令1615151511

26、11 1111 1111 11110000 1111 1111 1111xxxx 1110 1111 1111xxxx 0000 1111 1111xxxx xxxx 1110 1111xxxx xxxx 0000 1111xxxx xxxx xxxx 1110 xxxx xxxx xxxx 00002022-3-734 例例5.1 :设机器指令字长为:设机器指令字长为1616位,指令中地址字段位,指令中地址字段的长度为的长度为4 4位,共有位,共有1111条三地址指令,条三地址指令,7272条二地址条二地址指令,指令,6464条零地址指令。问最多还能规定多少条条零地址指令。问最多还能规定多少

27、条一地址指令?一地址指令? 解:三地址指令的地址字段共需解:三地址指令的地址字段共需1212位,所以可有位,所以可有4 4位操作码,可规定位操作码,可规定1616条三地址指令。现有条三地址指令。现有1111条三条三地址指令,所以还有地址指令,所以还有 161611115 5 个编码用于二地个编码用于二地址指令。址指令。 二地址指令的地址字段共需二地址指令的地址字段共需8 8位,可有位,可有8 8位操作码,位操作码,去掉三地址指令用掉的操作码,可规定去掉三地址指令用掉的操作码,可规定5 5161680 80 条二地址指令。现有条二地址指令。现有7272条二地址指令,条二地址指令,所以还有所以还有

28、808072728 8 个编码用于一地址指令。个编码用于一地址指令。2022-3-735 一地址指令的地址字段共需一地址指令的地址字段共需4 4位,可有位,可有1212位操位操作码,去掉二、三地址指令用掉的操作码,可作码,去掉二、三地址指令用掉的操作码,可规定规定 8 81616128 128 条单地址指令。条单地址指令。 由于要求有由于要求有6464条零地址指令,而条零地址指令,而4 4位操作码只位操作码只能提供能提供1616条指令,所以需要由单地址指令提供条指令,所以需要由单地址指令提供64/1664/164 4个操作码编码,因此还能规定个操作码编码,因此还能规定 1281284 4124

29、 124 条单地址指令。条单地址指令。2022-3-736条条零零地地址址指指令令条条单单地地址址指指令令条条二二地地址址指指令令条条三三地地址址指指令令6412472111111 1111 1111 1111 0000 1100 1111 1111xxxx 1011 1111 1111 xxxx 0000 1000 1111xxxx xxxx 0111 1111 xxxx xxxx 0000 1011xxxx xxxx xxxx 1010 xxxx xxxx xxxx 00002022-3-737 根据指令系统的要求,扩展操作码的组合方案根据指令系统的要求,扩展操作码的组合方案可以有很多种,

30、可以采用等长扩展,也可采用可以有很多种,可以采用等长扩展,也可采用不等长扩展。不等长扩展。 例如,例如,PDPPDP1111机的指令操作码有机的指令操作码有4 4、7 7、8 8、1010、1111和和1313位等不同的长度。位等不同的长度。 在进行操作码扩展的过程中,必须注意的是:在进行操作码扩展的过程中,必须注意的是: 不同指令的操作码编码一定不能重复。不同指令的操作码编码一定不能重复。 在设计不同长度的操作码时,要尽量考虑安在设计不同长度的操作码时,要尽量考虑安排指令排指令使用频度高的指令使用短的操作码,使使用频度高的指令使用短的操作码,使用频度低的指令使用较长的操作码。用频度低的指令使

31、用较长的操作码。 这样可以缩短经常使用的指令的译码时间,加这样可以缩短经常使用的指令的译码时间,加快系统整体的运行速度。快系统整体的运行速度。 2022-3-7385.2 5.2 寻址方式寻址方式 寻址方式:形成本条指令的操作数地址寻址方式:形成本条指令的操作数地址和下一条要执行指令的地址的方法。和下一条要执行指令的地址的方法。 寻址分为寻址分为指令地址的寻址指令地址的寻址和和操作数地址操作数地址的寻址的寻址。2022-3-739指令的执行过程指令的执行过程ALUAPCMARMEMMDRRSIRIDPLA控制信号控制信号2022-3-740 1. 1. 顺序方式顺序方式: PCPC增量增量PC

32、PC 由于指令通常顺序存放,所以当程序顺序由于指令通常顺序存放,所以当程序顺序执行时,可以采用执行时,可以采用PCPC增量的方式形成下条增量的方式形成下条指令地址。即按照指令地址。即按照PCPC的内容依次取指。增的内容依次取指。增量的多少取决于一条指令所占的存储单元量的多少取决于一条指令所占的存储单元数。数。5.2.1 5.2.1 指令的寻址方式指令的寻址方式 2022-3-7412022-3-7422. 2. 跳越方式跳越方式 当程序发生转移时,修改当程序发生转移时,修改PCPC的内容。的内容。 当程序需要转移时,由转移类指令产生当程序需要转移时,由转移类指令产生转移地址并送入转移地址并送入

33、PCPC中。中。 转移地址的形成有各种方法。转移地址的形成有各种方法。2022-3-74362022-3-744 由于操作数的存放往往是随机的,所以由于操作数的存放往往是随机的,所以希望有多种方式产生操作数地址。另外希望有多种方式产生操作数地址。另外为了提高程序设计质量,也希望能提供为了提高程序设计质量,也希望能提供多种灵活的寻址方式。多种灵活的寻址方式。 因此,因此,寻址方式主要是指操作数地址的寻址方式主要是指操作数地址的寻址方式。寻址方式。操作数地址有多种寻址方式。操作数地址有多种寻址方式。5.2.2 5.2.2 操作数的寻址方式操作数的寻址方式 2022-3-745 形式地址形式地址:指

34、令中给出的地址。:指令中给出的地址。 由于有多种寻址方式,指令中地址字段给出的由于有多种寻址方式,指令中地址字段给出的地址,不一定是操作数的实际地址,称为形式地址,不一定是操作数的实际地址,称为形式地址。地址。 有效地址有效地址:形式地址经过一定的运算而得:形式地址经过一定的运算而得到的操作数的实际地址。到的操作数的实际地址。 有效地址是有效地址是CPUCPU实际访问的主存单元的地址。实际访问的主存单元的地址。 讨论各种寻址方式的目的:讨论各种寻址方式的目的: 确定由形式地址变换为有效地址的算法,并按确定由形式地址变换为有效地址的算法,并按照这些算法确定相应的硬件结构,自动地实现照这些算法确定

35、相应的硬件结构,自动地实现寻址。寻址。2022-3-746 设计寻址方式的要求:设计寻址方式的要求: 指令内包含的地址尽可能短,以缩短指令长度。指令内包含的地址尽可能短,以缩短指令长度。 能访问尽可能大的存储空间。能访问尽可能大的存储空间。 即能提供尽可能长的地址信息。根据程序所具有即能提供尽可能长的地址信息。根据程序所具有的局部性特性,大多数程序在一段时间内都使用的局部性特性,大多数程序在一段时间内都使用存储器的一个小区域,所以,可以用短地址访问存储器的一个小区域,所以,可以用短地址访问该区域内的任一单元的。该区域内的任一单元的。 希望地址能隐含在寄存器中。希望地址能隐含在寄存器中。 因为寄

36、存器地址比较短,而寄存器长度一般与机因为寄存器地址比较短,而寄存器长度一般与机器字长相同,在字长较长的机器中寄存器内存器字长相同,在字长较长的机器中寄存器内存放的地址可访问很大的存储空间,所以地址隐含放的地址可访问很大的存储空间,所以地址隐含在寄存器,可以减少指令长度。在寄存器,可以减少指令长度。2022-3-747 能在不改变指令的情况下改变地址的实际能在不改变指令的情况下改变地址的实际值。值。 即在数组、向量、线性表、字符串等数据结构即在数组、向量、线性表、字符串等数据结构的操作中,能够实现操作数地址的最大增减量。的操作中,能够实现操作数地址的最大增减量。 寻址方式尽可能简单、规范,以便简

37、化硬寻址方式尽可能简单、规范,以便简化硬件设计。件设计。2022-3-748常用寻址方式常用寻址方式 一地址指令格式一地址指令格式 MOD:寻址方式字段寻址方式字段 A:形式地址:形式地址 形式地址按相应的寻址方式计算得到的操作数形式地址按相应的寻址方式计算得到的操作数的有效地址记作的有效地址记作EA。 OPOP寻址方式寻址方式 MODMOD形式地址形式地址 A A2022-3-7491 1立即寻址立即寻址 立即寻址方式是指指令的地址码部分给出的不是立即寻址方式是指指令的地址码部分给出的不是操作数的地址而是操作数的地址而是操作数本身操作数本身。即指令所需的操。即指令所需的操作数由指令的形式地址

38、直接给出。作数由指令的形式地址直接给出。 采用立即寻址时,操作数采用立即寻址时,操作数DataData就是形式地址部分就是形式地址部分给出的内容给出的内容D D, D D也称为也称为立即数立即数。 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H ;将数据;将数据2000H2000H存入存入 累加器累加器AXAX中中OPOP立即寻址立即寻址D DDataDataD D2022-3-750 立即寻址方式在取指令的同时操作数即被取出,立即寻址方式在取指令的同时操作数即被取出,不必再次访问存储器,提高了指令执行速度。不必再次访问存储器,提

39、高了指令执行速度。 由于指令字长有限,立即寻址方式使得操作数的由于指令字长有限,立即寻址方式使得操作数的范围受到限制。范围受到限制。 立即寻址方式通常用于给某一寄存器或存储器单立即寻址方式通常用于给某一寄存器或存储器单元赋予初值或提供一个常数。元赋予初值或提供一个常数。2022-3-7512.2.直接寻址直接寻址 直接寻址方式是指操作数的有效地址在指直接寻址方式是指操作数的有效地址在指令字中直接给出,指令的地址码部分给出令字中直接给出,指令的地址码部分给出的形式地址的形式地址A就是操作数的有效地址就是操作数的有效地址EA。 OP 直接寻址 A 操作数 主存 EA EAA 2022-3-752直

40、接寻址直接寻址2022-3-753 例:例:Intel 8086Intel 8086指令:指令: MOV AXMOV AX,2000H 2000H 将有效地址为将有效地址为2000H2000H的内存单元的内容读的内存单元的内容读入累加器入累加器AXAX中。中。2022-3-754 简单直观,不需要另外计算操作数地址,在指令简单直观,不需要另外计算操作数地址,在指令执行阶段只需访问一次主存即可得到操作数,便执行阶段只需访问一次主存即可得到操作数,便于硬件实现。于硬件实现。 随着存储器容量不断扩大,采用直接随着存储器容量不断扩大,采用直接寻址方式寻址方式寻寻址整个主存空间,将造成指令长度加长。址整

41、个主存空间,将造成指令长度加长。 采用直接寻址方式编程时,如果操作数地址发生采用直接寻址方式编程时,如果操作数地址发生变化,就必须修改指令中变化,就必须修改指令中A A的值,给编程带来不便。的值,给编程带来不便。 由于操作数地址在指令中给定,使程序和数据在由于操作数地址在指令中给定,使程序和数据在内存中的存放位置受到限制。内存中的存放位置受到限制。 直接寻址的特点直接寻址的特点2022-3-7553 3间接寻址间接寻址 间接寻址方式是指指令的地址码部分给出的是间接寻址方式是指指令的地址码部分给出的是操作数的有效地址操作数的有效地址EAEA所在的存储单元的地址或所在的存储单元的地址或是指示操作数

42、地址的地址指示字。即有效地址是指示操作数地址的地址指示字。即有效地址EAEA是由形式地址是由形式地址A A间接提供的。间接提供的。 间接寻址分为一级间接寻址和多级间接寻址。间接寻址分为一级间接寻址和多级间接寻址。2022-3-756 一级间接寻址一级间接寻址 指令的形式地址指令的形式地址A A给出的是给出的是EAEA所在的存储单元所在的存储单元的地址,这时存储单元的地址,这时存储单元A A中的内容就是操作数中的内容就是操作数的有效地址的有效地址EAEA。 EA(A) Data (A) OP 间接寻址 A A 主存 EA EA 操作数 EA(A) 2022-3-757一级间接寻址一级间接寻址20

43、22-3-758 例:某计算机指令:例:某计算机指令: MOV ALMOV AL,2000H2000H E E(A)(A)(2000H)(2000H)3000H3000H DataData50H50H00H00H30H30H50H50H2000H2000H3000H3000H2001H2001H50H50HALAL2022-3-759 多级间接寻址多级间接寻址 指令的地址码部分给出的是操作数地址的地址指令的地址码部分给出的是操作数地址的地址指示字,即存储单元指示字,即存储单元A A中的内容还不是有效地中的内容还不是有效地址址EAEA,而是指向另一个存储单元的地址或地址,而是指向另一个存储单元的

44、地址或地址指示字。指示字。 在多级间址方式中,通常把地址字的高位作为在多级间址方式中,通常把地址字的高位作为标志位,以指示该字是有效地址,还是地址指标志位,以指示该字是有效地址,还是地址指示字。示字。 2022-3-760三级间址的寻址过程三级间址的寻址过程 地址指示字的高位地址指示字的高位为为1,表示该单元内,表示该单元内容仍为地址指示字,容仍为地址指示字,需继续访存寻址。需继续访存寻址。 地址指示字的高位地址指示字的高位为为0,表示该单元内,表示该单元内容即为操作数所在容即为操作数所在单元的有效地址单元的有效地址EA。 E(A) 1 A1 1 A2 0 EA 操作数 OP 间接寻址 A A

45、 主存 A2 EA A1 EA(A) 2022-3-761三级间接寻址三级间接寻址2022-3-762 间接寻址比直接寻址灵活,可扩大寻址范围,间接寻址比直接寻址灵活,可扩大寻址范围,以短的地址码访问大的存储空间。以短的地址码访问大的存储空间。 如:指令字长与存储器字长均为如:指令字长与存储器字长均为1616位,指令中地位,指令中地址码长为址码长为1010位,其直接寻址范围为位,其直接寻址范围为1k1k空间;如果空间;如果用间接寻址,有效地址为用间接寻址,有效地址为1616位,其寻址空间为位,其寻址空间为64k64k,比直接寻址扩大比直接寻址扩大6464倍。倍。 采用间接寻址,当操作数地址需要

46、改变时,可采用间接寻址,当操作数地址需要改变时,可不必修改指令,只要修改地址指示字中内容不必修改指令,只要修改地址指示字中内容( (即存即存放有效地址的单元内容放有效地址的单元内容) )即可。即可。 间接寻址需多次访存才能取得操作数,尤其是间接寻址需多次访存才能取得操作数,尤其是多级间接寻址,因而降低了指令的执行速度。多级间接寻址,因而降低了指令的执行速度。 大多数计算机只允许一级间接寻址。在一些大型大多数计算机只允许一级间接寻址。在一些大型高速计算机中,很少采用间接寻址。高速计算机中,很少采用间接寻址。间接寻址的特点间接寻址的特点2022-3-7634 4寄存器直接寻址(寄存器寻址)寄存器直

47、接寻址(寄存器寻址) 寄存器直接寻址也称寄存器寻址。寄存器直接寻寄存器直接寻址也称寄存器寻址。寄存器直接寻址是指在指令地址码中给出的是某一通用寄存器址是指在指令地址码中给出的是某一通用寄存器的编号(也称寄存器地址),该寄存器的内容即的编号(也称寄存器地址),该寄存器的内容即为指令所需的操作数。采用寄存器寻址方式时,为指令所需的操作数。采用寄存器寻址方式时,有效地址有效地址EAEA是寄存器的编号。是寄存器的编号。 O P 寄 存 器 直 接 寻 址 Ri 操 作 数 寄 存 器 Ri E A Ri R0 R1 . . . . 2022-3-764 例:例: Intel 8086Intel 808

48、6指令:指令: MOV ALMOV AL,BL BL ; ALBLALBL,将寄存器将寄存器BLBL中的中的 内容传送到寄存器内容传送到寄存器ALAL中。中。 寄存器存取信息的速度比主存快,需要的地址寄存器存取信息的速度比主存快,需要的地址短,可压缩指令长度,有利于加快指令执行速短,可压缩指令长度,有利于加快指令执行速度。但寄存器的数量有限。度。但寄存器的数量有限。2022-3-7655. 5. 寄存器间接寻址寄存器间接寻址 寄存器间接寻址方式是指指令中地址码部分所指寄存器间接寻址方式是指指令中地址码部分所指定的寄存器中的内容是操作数的有效地址。定的寄存器中的内容是操作数的有效地址。 OP 寄

49、存器间接寻址 Ri EA 寄存器 Ri EA(Ri) R0 R1 . . . . 操作数 主存 EA 2022-3-766 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,BXBX 设设 BXBX2000H2000H,(2000H)(2000H)80H80H,则,则 AL80HAL80H 由于寄存器间接寻址方式中,地址存放在寄存由于寄存器间接寻址方式中,地址存放在寄存器中,因此只需一次访存即可取得操作数,而器中,因此只需一次访存即可取得操作数,而且寄存器又能给出全字长的地址码,可寻址较且寄存器又能给出全字长的地址码,可寻址较大的存储空间。大的存储空间。2

50、022-3-7676 6变址寻址变址寻址 变址寻址方式是指操作数的有效地址是由指令变址寻址方式是指操作数的有效地址是由指令中指定的变址寄存器的内容与指令字中的形式中指定的变址寄存器的内容与指令字中的形式地址相加形成的。地址相加形成的。 变址寄存器变址寄存器R Rx x可以是专用寄存器,也可以是通可以是专用寄存器,也可以是通用寄存器中的某一个。用寄存器中的某一个。 OP 变址寻址 Rx A 操作数 主存 EAAX EAA(Rx) X Rx ALU 2022-3-768变址寻址变址寻址2022-3-769 例:例:Intel 8086Intel 8086指令:指令: MOV ALMOV AL,SI

51、SI44 设设 SISI2000H2000H,SISI4 42004H2004H (2004H)(2004H)82H82H,所以,所以 AL82HAL82H 在某些计算机中,变址寄存器还可以自动增量在某些计算机中,变址寄存器还可以自动增量或减量。每存取一个数据,根据数据的长度,或减量。每存取一个数据,根据数据的长度,变址寄存器的内容自动增量或自动减量,前者变址寄存器的内容自动增量或自动减量,前者称为称为自增型变址寻址自增型变址寻址;后者称为;后者称为自减型变址寻自减型变址寻址址。 也有资料称为也有资料称为自增型寄存器间接寻址和自减型自增型寄存器间接寻址和自减型寄存器间接寻址。寄存器间接寻址。2

52、022-3-770 例例5.8 VAX5.8 VAX1111指令:指令: MOV (RMOV (R1 1)+)+,R R0 0 MOV -(R MOV -(R1 1) ),R R0 0 (R(R1 1)+)+表示自增型变址寻址,寄存器表示自增型变址寻址,寄存器R R1 1中内中内容先作为源操作数地址,读数后容先作为源操作数地址,读数后R R1 1按操作数长按操作数长度增量。度增量。 设操作数字长为一个字节,每次增量为设操作数字长为一个字节,每次增量为1 1,若若R R1 11000H1000H,则指令执行后,则指令执行后,R R1 1自增加自增加1 1,R R1 11001H1001H。 -(

53、R-(R1 1) )表示自减型变址寻址,寄存器表示自减型变址寻址,寄存器R R1 1先按先按操作数长度减量后作为源操作数地址,并将减操作数长度减量后作为源操作数地址,并将减量结果送回量结果送回R R1 1。 设每次减量为设每次减量为1 1,R R1 11000H1000H,指令执行时先将,指令执行时先将R R1 1减减1 1,R R1 10FFFH0FFFH,然后将,然后将R R1 1的内容作为有效的内容作为有效地址访问源操作数。地址访问源操作数。2022-3-771 变址寻址可用于数组、向量、字符串等数据的变址寻址可用于数组、向量、字符串等数据的处理。处理。 例:例: Intel 8086指

54、令:指令: LODS ;AL(SI),SISI1SISIAAa0A1a1A2a2+1+12022-3-772 变址寻址还可以与间接寻址相结合,形成复合变址寻址还可以与间接寻址相结合,形成复合型寻址。型寻址。 先间址后变址先间址后变址 OP 间址加变址寻址 Rx A1 A2 操作数 主存 EAA2X EA(A)(Rx) X Rx ALU A1 2022-3-773先间址后变址先间址后变址2022-3-774 先变址后间址先变址后间址 EA 操作数 主存 EA EA(A(Rx) X Rx ALU A1X OP 变址加间址寻址 Rx A1 2022-3-775先变址后间址先变址后间址2022-3-7

55、767 7相对寻址相对寻址 相对寻址方式是将程序计数器相对寻址方式是将程序计数器 PC PC 的当前内容与的当前内容与指令中给出的形式地址相加形成操作数的有效地指令中给出的形式地址相加形成操作数的有效地址。址。 OP 相对寻址 Disp 主存 EA=K+1+Disp EA(PC)Disp K1 PC ALU OP 相对寻址 Disp 操作数 K Disp . . . 指令 2022-3-777相对寻址相对寻址2022-3-778 PCPC当前内容当前内容一般为现行指令的下一单元的地址。一般为现行指令的下一单元的地址。 形式地址形式地址是操作数地址相对于是操作数地址相对于PCPC当前内容的一当前

56、内容的一个相对位移量(个相对位移量(DispDisp),),位移量可正可负,一位移量可正可负,一般用补码表示般用补码表示。 在相对寻址中,只要保持位移量不变,就可实在相对寻址中,只要保持位移量不变,就可实现指令带着数据在存储器中搬家,有利于实现现指令带着数据在存储器中搬家,有利于实现程序再定位。程序再定位。KOP OP 相对寻址相对寻址 5 5K+1K+2K+6操作数操作数MOP OP 相对寻址相对寻址 5 5M+1M+2M+6操作数操作数2022-3-779 相对寻址还经常用于转移指令中,以相对寻址还经常用于转移指令中,以PCPC内容为内容为基准,加上相对位移量形成转移地址。例如基准,加上相

57、对位移量形成转移地址。例如PDPPDP1111转移指令格式为:转移指令格式为: 其转移地址为其转移地址为(PC)(PC)2Disp2Disp。之所以加。之所以加 2Disp2Disp,是因为是因为PDPPDP一一1111是以字节为单位对主存进行编是以字节为单位对主存进行编址的,而址的,而DispDisp是相对于是相对于PCPC的字位移,一个字为的字位移,一个字为2 2个字节。个字节。15 815 87 07 0OPOPDispDisp2022-3-780 例例5.9 Intel 80865.9 Intel 8086的进位为的进位为0 0转移指令转移指令 JNC D JNC D 的功能为:如果进

58、位为的功能为:如果进位为0 0,则转移到目标地址为,则转移到目标地址为 (PC)(PC)D D处执行。该指令为双字节指令。设本条指处执行。该指令为双字节指令。设本条指令的地址为令的地址为1000H1000H。 设指令为设指令为JNC 03H:JNC 03H:如果进位为如果进位为0 0,则转移到目标,则转移到目标地址为地址为(PC)(PC)03H03H处进行执行处进行执行本条指令取指后,本条指令取指后, PCPC1002H1002H转移目标地址为转移目标地址为 1002H1002H0003H0003H1005H1005H 设指令为设指令为JNC 0FDHJNC 0FDH则转移目标地址为则转移目标

59、地址为 1002H1002HFFFDHFFFDH0FFFH0FFFH0FFDH0FFDH0FFEH0FFEH0FFFH0FFFH1000H1000HJNCJNC1001H1001H03H03H1002H1002H1003H1003H1004H1004H1005H1005HDFDHD03H2022-3-7818 8基址寻址基址寻址 基址寻址方式是指操作数的有效地址等于指令中的基址寻址方式是指操作数的有效地址等于指令中的形式地址与基址寄存器中的内容之和。基址寄存器形式地址与基址寄存器中的内容之和。基址寄存器可以是一个专用的寄存器,也可以是由指令指定的可以是一个专用的寄存器,也可以是由指令指定的通用

60、寄存器,基址寄存器中的内容称为通用寄存器,基址寄存器中的内容称为基地址基地址。 OP 基址寻址 Rb Disp 主存 EA EA(Rb)Disp 操作数 Base Rb ALU 2022-3-782基址寻址基址寻址2022-3-783 基址寻址主要用于将用户程序的逻辑地址(用户基址寻址主要用于将用户程序的逻辑地址(用户编写程序时所使用的地址)转换成主存的物理地编写程序时所使用的地址)转换成主存的物理地址(程序在主存中的实际地址),以便实现程序址(程序在主存中的实际地址),以便实现程序的再定位。的再定位。 在多道程序运行时,系统的管理程序将多道程序在多道程序运行时,系统的管理程序将多道程序装入主

温馨提示

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

评论

0/150

提交评论