版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-7-11第第4章章 指令系统指令系统Chapter 4 Instruction System4.1 指令格式指令格式4.2 指令的寻址方式指令的寻址方式4.3 指令系统设计举例指令系统设计举例 4.4 CISC和和RISC的基本概念的基本概念 2022-7-12本章学习要求本章学习要求 指令的基本格式、定长和扩展操作码指令格式指令的基本格式、定长和扩展操作码指令格式 各种寻址方式的寻址执行过程各种寻址方式的寻址执行过程 定长操作码指令系统的设计示例定长操作码指令系统的设计示例 CISC和和RISC指令系统的思想及特点指令系统的思想及特点 指令系统的设计:指令类型(规模)、指令长度、指
2、令系统的设计:指令类型(规模)、指令长度、操作码长度、寻址方式操作码长度、寻址方式2022-7-13 一台计算机所有指令的集合称为该计算机的一台计算机所有指令的集合称为该计算机的指令系指令系统统,不同类型的计算机由于结构的差别具有不同的,不同类型的计算机由于结构的差别具有不同的指令系统。计算机的性能与其所设置的指令系统有指令系统。计算机的性能与其所设置的指令系统有很大关系,而指令系统又与计算机硬件结构密切相很大关系,而指令系统又与计算机硬件结构密切相关,因此计算机指令系统的设计是计算机组成结构关,因此计算机指令系统的设计是计算机组成结构设计中一个非常重要的环节。设计中一个非常重要的环节。 本章
3、主要介绍指令的格式、指令的寻址方式、本章主要介绍指令的格式、指令的寻址方式、CISC和和RISC的指令系统的指令系统 2022-7-144.1 指令格式指令格式 指令指令(Instruction):指示计算机执行某种操作的):指示计算机执行某种操作的命令,它由一串二进制数码组成命令,它由一串二进制数码组成 。每条指令可以。每条指令可以完成一个独立的算术运算或逻辑运算操作。完成一个独立的算术运算或逻辑运算操作。 指令系统指令系统(Instruction Set):是一台计算机全部):是一台计算机全部指令的集合,是计算机所有功能的体现。指令系统指令的集合,是计算机所有功能的体现。指令系统是表征一台
4、计算机性能的重要因素,它的格式与功是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适应范围响到系统软件,影响到机器的适应范围 。 指令系统的改进指令系统的改进是围绕着缩小指令与高级语言的语是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的。义差异以及有利于操作系统的优化而进行的。2022-7-154.1 指令格式指令格式4.1.1 指令格式指令格式 计算机通过执行指令来处理各种数据。为了指出数计算机通过执行指令来处理各种数据。为了指出数据的来源、操作结果的去向及所执行
5、的操作据的来源、操作结果的去向及所执行的操作 。 一条指令一般包含下列信息一条指令一般包含下列信息: (1)操作码,说明操作的性质及功能)操作码,说明操作的性质及功能 (2)操作数的地址,说明参与运算的数据来源)操作数的地址,说明参与运算的数据来源 (3)操作结果的存储地址,说明操作结果存放何)操作结果的存储地址,说明操作结果存放何处处 (4)下一条指令的地址,当遇到非顺序执行指令)下一条指令的地址,当遇到非顺序执行指令时,给出转移地址时,给出转移地址 2022-7-164.1 指令格式指令格式4.1.1 指令格式指令格式 在计算机内部,每条指令都表示一串二进制位,称在计算机内部,每条指令都表
6、示一串二进制位,称为为指令字指令字。指令字划分为若干个域,分别对应指令。指令字划分为若干个域,分别对应指令的构成部分,指令字的结构称为的构成部分,指令字的结构称为指令格式指令格式 计算机的指令格式与机器的字长、存储器的容量及计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系指令的功能都有很大的关系 指令格式的设置指令格式的设置一般遵循以下规则:一般遵循以下规则: (1)包含尽量多的信息;)包含尽量多的信息; (2)长度尽可能与机器字长相匹配;)长度尽可能与机器字长相匹配; (3)指令中包含尽量少的冗余信息。)指令中包含尽量少的冗余信息。 2022-7-174.1 指令格式指令
7、格式4.1.1 指令格式指令格式 指令由指令由操作码操作码和和地址码地址码两部分组成,其基本格式如两部分组成,其基本格式如图图4-1所示所示 :操作码字段操作码字段地址码字段地址码字段操作码操作码:用来表示指令所要完成的操作:用来表示指令所要完成的操作地址码地址码:用来指出该指令的源操作数地址、结果:用来指出该指令的源操作数地址、结果 地址以及下一条指令的地址地址以及下一条指令的地址2022-7-184.1 指令格式指令格式4.1.1 指令格式指令格式 指令字长度指令字长度 :指一条指令中所包含的二进制代码:指一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的位数,它取
8、决于操作码字段的长度、操作数地址的个数及长度。指令长度可以等于机器字长,也可的个数及长度。指令长度可以等于机器字长,也可以与机器字长不等以与机器字长不等 。 固定字长指令结构固定字长指令结构:指令系统中所有指令的长度都:指令系统中所有指令的长度都是一样的。优点是控制简单,实现方便。但占用地是一样的。优点是控制简单,实现方便。但占用地址空间较大,不够灵活址空间较大,不够灵活 变长指令字结构变长指令字结构 :各种指令的长度随指令的不同:各种指令的长度随指令的不同而有所不同而有所不同 。变长指令字结构字长不确定,指令。变长指令字结构字长不确定,指令执行周期与指令功能有关系,往往不能在相同的周执行周期
9、与指令功能有关系,往往不能在相同的周期内完成。优点是节省存储空间,指令系统灵活,期内完成。优点是节省存储空间,指令系统灵活,被广泛应用于现代计算系统的设计中被广泛应用于现代计算系统的设计中2022-7-194.1 指令格式指令格式4.1.1 指令格式指令格式 操作码(操作码(Operation Code) :用来表示指令所要完:用来表示指令所要完成的操作,如加法、减法、传送、移位、转移等成的操作,如加法、减法、传送、移位、转移等 。 每条指令都有不同于其它指令的操作码编码。操作每条指令都有不同于其它指令的操作码编码。操作码占用的二进制位数一般取决于计算机指令系统的码占用的二进制位数一般取决于计
10、算机指令系统的规模,实际上也就是与指令的条数有关。规模,实际上也就是与指令的条数有关。 一般来讲,如果操作码固定,占一般来讲,如果操作码固定,占m位位,则该机器最,则该机器最多包含多包含2m条指令条指令 操作码的长度操作码的长度可以是固定的,也可以是变化的。相可以是固定的,也可以是变化的。相应的指令格式可分为应的指令格式可分为定长操作码指令格式定长操作码指令格式和和扩展操扩展操作码指令格式两类作码指令格式两类 2022-7-1104.1 指令格式指令格式4.1.1 指令格式指令格式 地址码(地址码(Address Code) :用来指出该指令的源:用来指出该指令的源操作数地址、结果地址以及下一
11、条指令的地址。这操作数地址、结果地址以及下一条指令的地址。这里的里的“地址地址”可以是主存地址,也可以是寄存器地可以是主存地址,也可以是寄存器地址或者址或者I/O设备的地址设备的地址 。 不是不是所有的指令都必须包含地址码,所有的指令都必须包含地址码,也不是也不是所有指所有指令的地址码段数都相同。根据指令中包含的地址码令的地址码段数都相同。根据指令中包含的地址码的段数,的段数,可以将指令分为可以将指令分为零地址指令、一地址指令、零地址指令、一地址指令、二地址指令、三地址指令二地址指令、三地址指令 2022-7-111 根据地址码部分给出的地址个数分类:根据地址码部分给出的地址个数分类:1. 零
12、地址指令零地址指令 指令中指令中只有操作码只有操作码,而,而没有操作数没有操作数或没有操作数地或没有操作数地址。这种指令有两种可能:址。这种指令有两种可能: (1) 无需任何操作数。如空操作指令、停机指令等无需任何操作数。如空操作指令、停机指令等 (2) 操作数按照某种约定隐含,如堆栈类指令操作数按照某种约定隐含,如堆栈类指令 2. 一地址指令一地址指令 指令中只给出指令中只给出一个地址一个地址。一种是单操作数运算,如。一种是单操作数运算,如加加1,减,减1,移位,取反等,该地址既是操作数的地,移位,取反等,该地址既是操作数的地址,又是操作结果存储地址。对这一地址所指定的址,又是操作结果存储地
13、址。对这一地址所指定的操作数执行相应的操作后,产生的结果又存回该地操作数执行相应的操作后,产生的结果又存回该地址中。另一种情况是双操作数,另一个操作数必须址中。另一种情况是双操作数,另一个操作数必须存放在事先约定的专门的寄存器中存放在事先约定的专门的寄存器中 2022-7-1123. 二地址指令二地址指令 这是最常见的指令格式,两个地址指出两个源操作这是最常见的指令格式,两个地址指出两个源操作数地址,其中一个还是存放结果的目的地址数地址,其中一个还是存放结果的目的地址4. 三地址指令:三地址指令: 指令中包含三个地址段,其中的两个地址段用来存指令中包含三个地址段,其中的两个地址段用来存放源操作
14、数地址,第三个地址段用来存放目的操作放源操作数地址,第三个地址段用来存放目的操作数地址数地址 5. 四地址指令四地址指令 指令中包含四个地址段,其中前两个地址段用来存指令中包含四个地址段,其中前两个地址段用来存放源操作数地址,第三个地址段用来存放目的操作放源操作数地址,第三个地址段用来存放目的操作数地址,第四个地址段给出下一条指令的地址。数地址,第四个地址段给出下一条指令的地址。2022-7-1136. 多地址指令多地址指令 高档机或大型机中用于处理成批数据的指令,如字高档机或大型机中用于处理成批数据的指令,如字符串处理指令,向量、矩阵运算指令等。为了描述符串处理指令,向量、矩阵运算指令等。为
15、了描述一批数据,指令中需要多个地址来指出数据存放的一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下标等信息。首地址、长度和下标等信息。具有不同数量地址码的指令系统格式如图具有不同数量地址码的指令系统格式如图4-2所示所示 适应范围适应范围: 零地址、一地址和两地址指令具有指令短,执行速零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,字度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用长较短的小型、微型机所采用 两地址、三地址及多地址指令具有功能强,便于编两地址、三地址及多地址指令具有功能强,便于编程等特点,多为字长较长的大,
16、中型机所采用程等特点,多为字长较长的大,中型机所采用 2022-7-114图4-2 具有不同数量地址码的指令系统格式OP零地址一地址三地址OPA1OPA2A1二地址OPA2A1A3四地址OPA2A1A3A42022-7-1154.1.2 定长操作码指令格式定长操作码指令格式 定长操作码指令格式将定长操作码指令格式将操作码集中放在指令字的一操作码集中放在指令字的一个字段内个字段内,这种格式便于硬件设计,指令译码时间,这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的大、中型计算机和超级短,广泛应用于字长较长的大、中型计算机和超级小型机以及小型机以及RISC(Reduced Instruc
17、tion Set Computer)中)中 。 IBM370机机就采用定长操作码指令格式。就采用定长操作码指令格式。IBM370机机是一种是一种32位机,机器字长位机,机器字长32位,有三种结构的指令,位,有三种结构的指令,分别是半字长指令(指令长度为分别是半字长指令(指令长度为16位)、单字长指位)、单字长指令(指令长度为令(指令长度为32位)、位)、1.5倍字长指令(指令长倍字长指令(指令长度为度为48位)。不同类型的指令编码格式有所不同,位)。不同类型的指令编码格式有所不同,但操作码字段的长度都是固定的但操作码字段的长度都是固定的8位。位。2022-7-1164.1.2 定长操作码指令格
18、式定长操作码指令格式 图图4-3列出了列出了IBM370机的指令系统格式机的指令系统格式 。OP图4-3 IBM370机的指令系统格式R2R1RR型OPX2R18 4 4 4 12RX型B2D2OPR2R18 4 4 4 12RS型B2D2OPI28 8 4 12SI型B1D1OPL18 8 4 12 4 12SS型B1D1B2D22022-7-1174.1.3 扩展操作码指令格式扩展操作码指令格式 扩展操作码指令格式将扩展操作码指令格式将操作码分散在指令字的不同操作码分散在指令字的不同字段字段中,可有效压缩操作码平均长度,在字长较短中,可有效压缩操作码平均长度,在字长较短的微型计算机中广泛应
19、用,如的微型计算机中广泛应用,如Z80、Intel80 x86、Pentium等,操作码长度都是可变的等,操作码长度都是可变的 。 操作码长度不固定将操作码长度不固定将增加指令译码和分析的难度增加指令译码和分析的难度,使控制器设计复杂化,因此对使控制器设计复杂化,因此对操作码的编码操作码的编码至关重至关重要。通常是在指令字中用一个要。通常是在指令字中用一个固定长度固定长度的字段来表的字段来表示示基本操作码基本操作码,而对于一部分不需要某个地址码的,而对于一部分不需要某个地址码的指令,把它们的操作码指令,把它们的操作码扩展扩展到该地址字段,这样既到该地址字段,这样既能充分利用指令字的各字段,又能
20、在不增加指令长能充分利用指令字的各字段,又能在不增加指令长度情况下扩展操作码的长度,使它表示更多指令。度情况下扩展操作码的长度,使它表示更多指令。2022-7-118设某机器的指令长度为设某机器的指令长度为16位,包括位,包括4位基本操作码和位基本操作码和三个三个4位地址码段。位地址码段。 15 12 118 7 4 3.0 OP A1 A2 A32022-7-1194.1.3 扩展操作码指令格式扩展操作码指令格式 设某机器的指令长度为设某机器的指令长度为16位,包括位,包括4位基本操作码位基本操作码字段和字段和3个个4位地址字段,其指令格式如图位地址字段,其指令格式如图4-4所示。所示。4位
21、基本操作码可表示位基本操作码可表示16个状态,如全部用于表示个状态,如全部用于表示三地址指令,只有三地址指令,只有16条。若该机器有三地址指令条。若该机器有三地址指令15条,两地址指令条,两地址指令15条,一地址指令条,一地址指令15条,零地址指条,零地址指令令16条,共条,共61条,应该如何安排操作码呢条,应该如何安排操作码呢 ?图4-4 某机器指令格式OPA115 12 11 8 7 4 3 0A2A32022-7-1204.1.3 扩展操作码指令格式扩展操作码指令格式 只用只用4位基本操作码明显是不够的,必须将操作码的长度向地址位基本操作码明显是不够的,必须将操作码的长度向地址码字段扩展
22、才行。一种可供扩展的方法和步骤如下:码字段扩展才行。一种可供扩展的方法和步骤如下: (1)15条三地址指令的操作码由条三地址指令的操作码由4位基本操作码从位基本操作码从00001110给出,给出,剩下一个码点剩下一个码点1111把操作码扩展到把操作码扩展到A1,即,即4位扩展到位扩展到8位;位; ( 2)15条二地址指令的操作码由条二地址指令的操作码由8位操作码从位操作码从1111000011111110给给出,剩下一个码点出,剩下一个码点11111111把操作码扩展到把操作码扩展到A2,即从,即从8位扩展到位扩展到12位;位; ( 3)15条一地址指令的操作码由条一地址指令的操作码由12位操
23、作码从位操作码从111111110000111111111110给出,剩下一个码点给出,剩下一个码点111111111111把把操作码扩展到操作码扩展到A3,即从,即从12位扩展到位扩展到16位;位; ( 4)16条零地址指令的操作码由条零地址指令的操作码由16位操作码从位操作码从1111111111110000111111111111给出给出 。2022-7-121操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X X Y ZY Z 1110 1110 X Y ZX Y Z.11111111 0000 0000 Y Y Z Z 1111 1111 1110
24、 1110 Y Y Z Z.三地址指令三地址指令 1515条条二地址指令二地址指令 1515条条11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515条条11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616条条2022-7-1224.1.3 扩展操作码指令格式扩展操作码指令格式 除了这种方法以外,还有其他多种扩展方法,如还可除了这种方法以外,还有其他多种扩展方法,
25、如还可以形成以形成15条三地址指令,条三地址指令,14条两地址指令,条两地址指令,31条一地条一地址指令和址指令和16条零地址指令,共条零地址指令,共76条指令:条指令:15条三地址为:条三地址为:0000 111014条二地址为:条二地址为:11110000 1111110131条一地址为:条一地址为:111111100000 11111111111016条零地址为:条零地址为:11111111111000011111111111111112022-7-1234.1.3 扩展操作码指令格式扩展操作码指令格式 在可变长度的指令系统的设计中,到底使用何种扩展在可变长度的指令系统的设计中,到底使用
26、何种扩展方法还有一个重要原则方法还有一个重要原则-指令指令使用频率使用频率 (1)使用频率使用频率高高的指令应分配较的指令应分配较短短的操作码的操作码 (2)使用频率)使用频率低低的指令应分配较的指令应分配较长长的操作码的操作码 这样可有效地缩短操作码在程序中的平均长度,节省这样可有效地缩短操作码在程序中的平均长度,节省存储空间,缩短经常使用的指令的译码时间,可提高存储空间,缩短经常使用的指令的译码时间,可提高程序的运行速度。程序的运行速度。 操作码扩展技术是一种重要的操作码扩展技术是一种重要的指令优化技术指令优化技术,它可以,它可以缩短指令的平均长度,减少程序的总位数以及增加指缩短指令的平均
27、长度,减少程序的总位数以及增加指令字所能表示的操作信息。令字所能表示的操作信息。 扩展操作码比固定操作码译码扩展操作码比固定操作码译码复杂复杂,使控制器的设计,使控制器的设计难度增大,且需更多的硬件来支持难度增大,且需更多的硬件来支持 2022-7-1244.1 指令格式指令格式比较:比较: 定长操作码定长操作码 - 操作码长度固定操作码长度固定 优点:便于控制;优点:便于控制; 缺点:会限制指令系统规模;缺点:会限制指令系统规模; 扩展操作码扩展操作码 -操作码长度不固定操作码长度不固定 优点:合理利用存储空间;优点:合理利用存储空间; 缺点:缺点:增加指令译码和分析难度,使控制器设计复杂化
28、;增加指令译码和分析难度,使控制器设计复杂化;2022-7-1254.2 指令的寻址方式指令的寻址方式 组成程序的组成程序的指令代码指令代码:一般在存储器中:一般在存储器中 程序执行程序执行过程中的过程中的操作数操作数:可能在运算部件的某个寄存器:可能在运算部件的某个寄存器中或存储器中,也可能就在指令中中或存储器中,也可能就在指令中 寻址方式寻址方式(Addressing mode):确定本条指令的数据地址以确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能相关,而且直接影响指令格式和
29、指令功能 。 从程序员角度看从程序员角度看,寻址方式与汇编程序设计的关系极为密,寻址方式与汇编程序设计的关系极为密切,与高级语言的编译程序设计也同样密切。切,与高级语言的编译程序设计也同样密切。2022-7-1264.2 指令的寻址方式指令的寻址方式4.2.1 有效地址有效地址 通常把指令中地址码字段给出的地址称作通常把指令中地址码字段给出的地址称作形式地址形式地址(用字(用字母母A表示),这个地址一般不能直接用来访问存储器。表示),这个地址一般不能直接用来访问存储器。 形式地址经过某种运算而得到的可用来访问存储器的地址形式地址经过某种运算而得到的可用来访问存储器的地址称作有称作有效地址效地址
30、(用(用EA表示),有效地址实际上是操作数所表示),有效地址实际上是操作数所在单元位置到段地址的距离,由在单元位置到段地址的距离,由段地址段地址和和有效地址有效地址可以直可以直接得出操作数在存储器中的接得出操作数在存储器中的物理地址物理地址 不同的寻址方式,从不同的寻址方式,从形式地址形式地址A计算得到计算得到有效地址有效地址EA的方的方法也不一样法也不一样 2022-7-1274.2 指令的寻址方式指令的寻址方式4.2.2 数据寻址和指令寻址数据寻址和指令寻址 寻址方式分为数据寻址和指令寻址两大类。寻址方式分为数据寻址和指令寻址两大类。 指令寻址方式指令寻址方式实际上是程序执行的过程,即计算
31、机在执行实际上是程序执行的过程,即计算机在执行程序的过程中如何在主存中找到将要执行的指令的地址程序的过程中如何在主存中找到将要执行的指令的地址 数据寻址方式数据寻址方式是指操作数的有效地址的寻址方式是指操作数的有效地址的寻址方式 2022-7-1284.2 指令的寻址方式指令的寻址方式4.2.2 数据寻址和指令寻址数据寻址和指令寻址1. 数据寻址数据寻址 数据寻址方式数据寻址方式通过指令中的地址码字段计算操作数的通过指令中的地址码字段计算操作数的有效有效地址地址,地址码字段由,地址码字段由形式地址形式地址和寻址方式特征位组合而成,和寻址方式特征位组合而成,因此,通常指令中给出的地址码并不是操作
32、数的有效地址因此,通常指令中给出的地址码并不是操作数的有效地址 。 数据寻址过程就是把地址码字段中的操作数数据寻址过程就是把地址码字段中的操作数形式地址形式地址转换转换为操作数的为操作数的有效地址有效地址的过程的过程 数据寻址方式种类较多,将在数据寻址方式种类较多,将在4.2.3节中详细介绍节中详细介绍 2022-7-1294.2 指令的寻址方式指令的寻址方式4.2.2 数据寻址和指令寻址数据寻址和指令寻址2. 指令寻址指令寻址指令寻址方式有两种指令寻址方式有两种(1)顺序寻址)顺序寻址 指令地址在内存中按指令地址在内存中按顺序顺序安排,当执行一段程序时,通常安排,当执行一段程序时,通常是一条
33、指令接一条指令的顺序执行是一条指令接一条指令的顺序执行 指令在执行过程中,根据指令在执行过程中,根据程序计数器程序计数器PC的值去寻址存储器,的值去寻址存储器,在指定的存储器中取出指令后,在指定的存储器中取出指令后,PC自动加自动加1,从而指向下一,从而指向下一条指令所在的地址条指令所在的地址 主要用在程序执行过程中,从存储器中取出第一条指令,主要用在程序执行过程中,从存储器中取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令行第二条指令;接着再取出第三条指令2022-7-1304.2 指令的寻
34、址方式指令的寻址方式4.2.2 数据寻址和指令寻址数据寻址和指令寻址2. 指令寻址指令寻址(2)跳转寻址)跳转寻址 当程序遇到当程序遇到非顺序非顺序执行时,指令寻址就采用跳转寻址方式。执行时,指令寻址就采用跳转寻址方式。跳转是指下一条指令的地址跳转是指下一条指令的地址不是由程序计数器不是由程序计数器PC给出,而给出,而是由是由本条指令本条指令给出。给出。 跳转指令就是程序中的跳转指令就是程序中的转移指令转移指令,当程序执行至转移指令,当程序执行至转移指令时,下一条将要执行的指令可能就不是程序中的下一行时,下一条将要执行的指令可能就不是程序中的下一行 采用跳转寻址方式,可实现程序转移或构成循环程
35、序,缩采用跳转寻址方式,可实现程序转移或构成循环程序,缩短程序长度,或将某些程序作为公共程序引用。指令系统短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令中的各种条件转移或无条件转移指令,就是为了实现指令的跳转寻址而设置的的跳转寻址而设置的 2022-7-1314.2.3 常见寻址方式常见寻址方式 不同的计算机有不同的寻址方式,但其基本原理是相同的不同的计算机有不同的寻址方式,但其基本原理是相同的 寻址方式一般可归结为寻址方式一般可归结为立即寻址立即寻址、直接寻址直接寻址、寄存器寻址寄存器寻址、基址寻址基址寻址、变址寻址变址寻址、间接寻址间接
36、寻址以及以及相对寻址相对寻址等几种寻址等几种寻址方式,或者这几种方式的组合与变形方式,或者这几种方式的组合与变形 。 寻址过程寻址过程:从:从“形式地址形式地址”到到“有效地址有效地址”的转换的转换 对对寻址方式的评价寻址方式的评价包括:寻址能力;地址计算的复杂性包括:寻址能力;地址计算的复杂性 约定约定:A形式地址,指令地址字段中的内容形式地址,指令地址字段中的内容 EA有效地址,包含被访问操作数的实际单元有效地址,包含被访问操作数的实际单元 (X)表示单元表示单元X中的内容中的内容 R寄存器寄存器2022-7-1321. 立即寻址立即寻址 指令的地址字段指出的不是操作数的地址,而是操指令的
37、地址字段指出的不是操作数的地址,而是操作数本身,又称之为立即数作数本身,又称之为立即数 这种方式的特点是指令执行时间很短,只要取出指这种方式的特点是指令执行时间很短,只要取出指令便可获得操作数,不需要访问存储器取数。地址令便可获得操作数,不需要访问存储器取数。地址字段字段A的位数限制了这类指令所能表示的立即数的的位数限制了这类指令所能表示的立即数的范围范围 例:例: MOV AX,1234HOP A 立即数立即数指令字指令字2022-7-1332. 直接寻址直接寻址 指令的地址码部分给出操作数在存储器中的地址。指令的地址码部分给出操作数在存储器中的地址。 优点是简单直观,不需专门计算机操作数地
38、址,指优点是简单直观,不需专门计算机操作数地址,指令执行阶段对主存只访问一次,便于硬件实现令执行阶段对主存只访问一次,便于硬件实现 地址字段地址字段A的位数限制了操作数的寻址范围,而且的位数限制了操作数的寻址范围,而且必须修改必须修改A的值,才能修改操作数的地址的值,才能修改操作数的地址 例:例: MOV AX,1234H存储器存储器OP A 操作数操作数 1234H2022-7-1342. 直接寻址直接寻址 有些指令中增加一个有些指令中增加一个M字段字段,例如例如3位位,可表示可表示8种寻种寻址方式址方式存储器存储器 M A 操作数操作数 0110HOP2022-7-1353. 寄存器寻址寄
39、存器寻址 指令地址码部分给出某一通用寄存器地址,所需的操指令地址码部分给出某一通用寄存器地址,所需的操作数就在这一寄存器(作数就在这一寄存器(R)中)中 地址码短地址码短,从寄存器中存取数据比从存储器中存取快,从寄存器中存取数据比从存储器中存取快得多;得多;速度快速度快,是提高性能的常用手段,是提高性能的常用手段 寄存器寻址方式可以寄存器寻址方式可以缩短指令长度、节省存储空间,缩短指令长度、节省存储空间,提高指令的执行速度提高指令的执行速度,在计算机中得到广泛应用。,在计算机中得到广泛应用。 缺点:寻址空间受寄存器数量限制缺点:寻址空间受寄存器数量限制 例:例:MOV AX,BX BX为源操作
40、数地址,为源操作数地址,AX为目的操作数地址,操作的为目的操作数地址,操作的结果为将结果为将BX中的数据传送(拷贝)到中的数据传送(拷贝)到AX中。中。2022-7-1364. 基址寻址基址寻址 在计算机中设置或由指令指定一个通用寄存器为在计算机中设置或由指令指定一个通用寄存器为基基址寄存器址寄存器(BR)。)。操作数的地址由基址寄存器的操作数的地址由基址寄存器的内容和指令的地址码内容和指令的地址码A相加得到,地址码相加得到,地址码A通常被通常被称为称为位移量位移量(disp) EA=(BR)+A 例:例:MOV AX,BX+50H 程序员可以不用考虑程序加载到内存中的位置,编程序员可以不用考
41、虑程序加载到内存中的位置,编程只需使用程只需使用逻辑地址逻辑地址即可(程序转换到即可(程序转换到物理地址物理地址) 当存储器容量较大,由指令的地址码部分直接给出当存储器容量较大,由指令的地址码部分直接给出的地址不能直接访问到存储器所有单元时,通常把的地址不能直接访问到存储器所有单元时,通常把整个存储空间分成若干段,段首地址放于基址寄存整个存储空间分成若干段,段首地址放于基址寄存器或段寄存器中,段内位移量由指令给出。器或段寄存器中,段内位移量由指令给出。2022-7-137OPA操作数存储器. . . . . . .加法器(b)通用寄存器作为基础寄存器指令字OPA操作数存储器. . . . .
42、. .加法器(a)专用寄存器寻址基址寄存器B通用寄存器. . . . . . . .图图4.7 基址寻址过程基址寻址过程2022-7-1385. 变址寻址变址寻址 指令地址码部分给出的指令地址码部分给出的地址地址A和指定的和指定的变址寄存器变址寄存器X的的内容内容通过加法器相加,所得的和作为地址从存储器中通过加法器相加,所得的和作为地址从存储器中读出所需的操作数。读出所需的操作数。 当计算机中还有基址寄存器时,计算有效地址时还需当计算机中还有基址寄存器时,计算有效地址时还需加上基址寄存器内容加上基址寄存器内容 EA=(X)+A 例:例:MOV AX,SI+50H 变址操作支持一维数组,结合变址
43、操作支持一维数组,结合循环循环方法进行,逐次改方法进行,逐次改变变址寄存器的值,变变址寄存器的值,来访问来访问一片主存地址一片主存地址 变址寄存器的自动增量和自动减量功能,每存取一个变址寄存器的自动增量和自动减量功能,每存取一个数据,自动增减,指向下一单元,为存取下一数据作数据,自动增减,指向下一单元,为存取下一数据作准备准备2022-7-139OPA操作数存储器.加法器图4-8 变址寻址方式指令字X通用寄存器.2022-7-140 基址寻址基址寻址面向系统面向系统,主要解决程序的存储定位问题,主要解决程序的存储定位问题,即解决程序逻辑空间与物理空间的无关性;即解决程序逻辑空间与物理空间的无关
44、性; 变址寻址变址寻址面向用户面向用户,主要是为了可以编写出高效的,主要是为了可以编写出高效的访问一片存储空间的程序,用以访问字串和数组访问一片存储空间的程序,用以访问字串和数组2022-7-1416. 间接寻址间接寻址 地址码中给出的不是操作数地址,而是存放操作数地址码中给出的不是操作数地址,而是存放操作数地址的地址,这种方式称为间接寻址或间址。地址的地址,这种方式称为间接寻址或间址。 根据地址码指的是寄存器地址还是存储器地址,间根据地址码指的是寄存器地址还是存储器地址,间接寻址又可分为接寻址又可分为寄存器间接寻址寄存器间接寻址和和存储器间接寻址存储器间接寻址两种方式。两种方式。 间接寻址有
45、一次间址和多次间址两种情况。间接寻址有一次间址和多次间址两种情况。 存储器间接寻址存储器间接寻址:EA=(A),寻址空间大,执行速寻址空间大,执行速度慢;至少需要两次访存才能获得操作数,如一次度慢;至少需要两次访存才能获得操作数,如一次间址情况,第一次从存储器读出操作数地址,第二间址情况,第一次从存储器读出操作数地址,第二次读出操作数次读出操作数 寄存器间接寻址寄存器间接寻址:EA=(R) ,需要一次访存需要一次访存 例:例:MOV AX,BX2022-7-142OPA存储器.(b)存储器间址图4-9 间接寻址方式指令字OPR操作数存储器.(a)寄存器间址指令字通用寄存器.A1操作数.A1A2
46、022-7-143 以转移指令以转移指令Jump为例,来说明在直接寻址和间为例,来说明在直接寻址和间接寻址方式下如何确定下一条要执行的指令的接寻址方式下如何确定下一条要执行的指令的地址。地址。 2022-7-1447. 相对寻址相对寻址 把把程序计数器程序计数器PC的内容的内容(即当前执行指令的地址即当前执行指令的地址)与与指令的地址码部分给出的指令的地址码部分给出的位移量位移量(disp)之之和和作为操作为操作数的地址或转移地址,称为相对寻址。主要用于作数的地址或转移地址,称为相对寻址。主要用于转移指令。转移指令。 EA=(PC)+disp 相对寻址有两个特点:相对寻址有两个特点: (1)
47、转移地址不是固定的,但是无论程序装入存储转移地址不是固定的,但是无论程序装入存储器的任何地方,只要指令间的相对位置不变,均能器的任何地方,只要指令间的相对位置不变,均能正确运行,对浮动程序很适用。正确运行,对浮动程序很适用。 (2) 位移量可正、可负,通常用补码表示。位移量可正、可负,通常用补码表示。2022-7-145 计算机的程序和数据一般是分开存放的,计算机的程序和数据一般是分开存放的,程序区程序区在在程序执行过程中不允许修改,否则数据区的程序执行过程中不允许修改,否则数据区的 相对相对地址会发生变化。地址会发生变化。 在程序与数据分区存放的情况下,不用相对寻址方在程序与数据分区存放的情
48、况下,不用相对寻址方式来确定操作数地址式来确定操作数地址 三种偏移寻址:基址寻址、变址寻址、相对寻址三种偏移寻址:基址寻址、变址寻址、相对寻址2022-7-146补充:补充: 堆栈寻址堆栈寻址 堆栈堆栈(stack)是由若干个连续存储单元组成的是由若干个连续存储单元组成的先进后先进后出出(first in last out,简称简称FILO)存储区存储区 栈底栈底是固定不变的,而是固定不变的,而栈顶栈顶却是随着数据的入栈和却是随着数据的入栈和出栈在不断变化。任何堆栈操作只能在栈顶进行。出栈在不断变化。任何堆栈操作只能在栈顶进行。 堆栈指针堆栈指针(stack pointer,简称,简称SP)是
49、一个专用寄存器,是一个专用寄存器,用来指明栈顶的位置。用来指明栈顶的位置。 在在一般计算机一般计算机中,堆栈主要用来暂存中断和子程序中,堆栈主要用来暂存中断和子程序调用时现场数据及返回地址。调用时现场数据及返回地址。 压入指令压入指令(PUSH)是把指定的操作数送入堆栈的栈顶,是把指定的操作数送入堆栈的栈顶,而而弹出指令弹出指令(POP)的操作刚好相反,是把栈顶的数据的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地。取出,送到指令所指定的目的地。2022-7-147 设设栈底的地址大于或等于栈顶的地址栈底的地址大于或等于栈顶的地址 压栈操作的过程压栈操作的过程:首先把堆栈指针:首先把
50、堆栈指针(SP)减量减量(减量减量的多少取决于压入数据的字节数的多少取决于压入数据的字节数),然后把数据送,然后把数据送入入SP所指定的单元所指定的单元 出栈操作的过程出栈操作的过程:首先把:首先把SP所指定的单元所指定的单元(即栈顶即栈顶)的数据取出,然后根据数据的大小的数据取出,然后根据数据的大小(即所占的字节即所占的字节数数)对对SP增量。增量。 由于堆栈具有先进后出的性质,因而在中断、子程由于堆栈具有先进后出的性质,因而在中断、子程序调用过程中广泛用于保存返回地址、状态标志及序调用过程中广泛用于保存返回地址、状态标志及现场信息。现场信息。 例如,假设有一主程序M和两个子程序 A,B,它
51、们的调用关系是M调用A,A又调用B,如图所示。2022-7-148 当主程序当主程序M执行到子程序调执行到子程序调用指令用指令call A时,先把该指时,先把该指令的下条指令地址令的下条指令地址M1及其及其他信息压入堆栈中保存,然他信息压入堆栈中保存,然后转入子程序后转入子程序A执行。执行。 当子程序当子程序A执行到指令执行到指令call B时,又把其下条指令的地时,又把其下条指令的地址址A1压入堆栈,并转入子压入堆栈,并转入子程序程序B执行。执行。 子程序子程序B执行完毕,从堆栈执行完毕,从堆栈中弹出中弹出A1(此时此时A1在栈顶在栈顶)作为返回地址,返回到作为返回地址,返回到A子子程序继续
52、执行。程序继续执行。 A子程序执行完毕,又从堆子程序执行完毕,又从堆栈中弹出栈中弹出M1(此时此时M1在栈在栈顶顶),返回主程序,返回主程序M继续执继续执行。行。2022-7-149 以上这些寻址方式,在计算机中可以组合使用,如以上这些寻址方式,在计算机中可以组合使用,如在一条指令中可以同时实现基址寻址与变址寻址,在一条指令中可以同时实现基址寻址与变址寻址,其有效地址为:其有效地址为: 基址寄存器内容基址寄存器内容+变址寄存器内容变址寄存器内容+指令地址码指令地址码A 例:例:MOV AX,BX+SI+50H 如果用户用如果用户用高级语言编程高级语言编程,根本不用考虑寻址方式,根本不用考虑寻址
53、方式,因为这是编译程序的事但若用因为这是编译程序的事但若用汇编语言编程汇编语言编程,则,则应对它有确切的了解,才能编出正确而又高效率的应对它有确切的了解,才能编出正确而又高效率的程序。程序。 不同计算机采用的寻址方式是不同的,即使是同一不同计算机采用的寻址方式是不同的,即使是同一种寻址方式,在不同的计算机中也有不同的表达方种寻址方式,在不同的计算机中也有不同的表达方式或含义式或含义2022-7-1504.3 指令系统设计举例指令系统设计举例 【例例4-2】某机器字长为某机器字长为16位,采用一地址格式的指令系统,位,采用一地址格式的指令系统,允许直接、间接、变址、基址寻址,变址寄存器和基址寄存
54、允许直接、间接、变址、基址寻址,变址寄存器和基址寄存器均为器均为16位,则位,则 (1)若采用单字指令,共能完成)若采用单字指令,共能完成108中操作,画出指令格式,中操作,画出指令格式,直接寻址和一次间接寻址的寻址范围是多少?直接寻址和一次间接寻址的寻址范围是多少? (2)若采用双字指令,操作码位数和寻址方式不变,画出指)若采用双字指令,操作码位数和寻址方式不变,画出指令格式,指令可直接寻址的范围是多少?令格式,指令可直接寻址的范围是多少? 【解解】(1)采用单字指令的指令格式如图)采用单字指令的指令格式如图4-11(a)所示。由于所示。由于指令集有指令集有108条指令,则操作码位数为条指令
55、,则操作码位数为7位,允许位,允许4种不同的寻种不同的寻址方式,寻址方式字段需要址方式,寻址方式字段需要2位。地址码位数为位。地址码位数为7位,可直接位,可直接寻址范围为寻址范围为27个地址单元;采用一次间接寻址时,由于地址码个地址单元;采用一次间接寻址时,由于地址码字段中是操作数地址的地址,操作数的有效地址在存储器内,字段中是操作数地址的地址,操作数的有效地址在存储器内,该地址该地址16位,因此一次间接寻址范围为位,因此一次间接寻址范围为216个地址单元。个地址单元。(2)采用双字指令的指令格式如图)采用双字指令的指令格式如图4-11(b)所示。地址码位数为所示。地址码位数为16+7=23位
56、。则可直接寻址的范围为位。则可直接寻址的范围为223个地址单元。个地址单元。2022-7-1514.3 指令系统设计举例指令系统设计举例 【例例4-2】某机器字长为某机器字长为16位,采用一地址格式的指令系统,位,采用一地址格式的指令系统,允许直接、间接、变址、基址寻址,变址寄存器和基址寄存允许直接、间接、变址、基址寻址,变址寄存器和基址寄存器均为器均为16位,则位,则 (1)若采用单字指令,共能完成)若采用单字指令,共能完成108中操作,画出指令格式,中操作,画出指令格式,直接寻址和一次间接寻址的寻址范围是多少?直接寻址和一次间接寻址的寻址范围是多少? (2)若采用双字指令,操作码位数和寻址
57、方式不变,画出指)若采用双字指令,操作码位数和寻址方式不变,画出指令格式,指令可直接寻址的范围是多少?令格式,指令可直接寻址的范围是多少? 图4-11某机指令格式7 2 7OPMODA(a)单字指令格式 (a)双字指令格式 7 2 23OPMODA2022-7-1524.3 指令系统设计举例指令系统设计举例 【例例4-3】某模型机字长为某模型机字长为16位,共有位,共有64种操作,操作码位数种操作,操作码位数固定,且具有如下特点:(固定,且具有如下特点:(1)采用一地址或二地址格式;()采用一地址或二地址格式;(2)有寄存器寻址、直接寻址和相对寻址(位移量为有寄存器寻址、直接寻址和相对寻址(位
58、移量为-128+127)三种寻址方式;(三种寻址方式;(3)有)有16个通用寄存器,算术运算和逻辑运个通用寄存器,算术运算和逻辑运算指令的操作数、结果均在寄存器中;(算指令的操作数、结果均在寄存器中;(4)取数)取数/存数指令在存数指令在通用寄存器和存储器之间传送数据;(通用寄存器和存储器之间传送数据;(5)存储器容量为)存储器容量为1MB,按字节编址。试设计算术运算和逻辑运算指令、取数按字节编址。试设计算术运算和逻辑运算指令、取数/存数指存数指令和相对转移指令的格式。令和相对转移指令的格式。 【解解】(1)算术运算和逻辑运算指令格式为寄存器)算术运算和逻辑运算指令格式为寄存器-寄存器型,寄存
59、器型,取单字长取单字长16位,指令格式如图位,指令格式如图4.12。其中,。其中,OP为操作码,为操作码,6位,位,可实现可实现64种操作;种操作;M为寻址方式,为寻址方式,2位,可反映寄存器寻址、位,可反映寄存器寻址、直接寻址、相对寻址;直接寻址、相对寻址;R1和和R2各取各取4位,指出源操作数和目的位,指出源操作数和目的操作数的寄存器(共操作数的寄存器(共16个)编号。个)编号。 OPM6 2 4 4 R1R22022-7-1534.3 指令系统设计举例指令系统设计举例 【例例4-3】某模型机字长为某模型机字长为16位,共有位,共有64种操作,操作码位数种操作,操作码位数固定,且具有如下特
60、点:(固定,且具有如下特点:(1)采用一地址或二地址格式;()采用一地址或二地址格式;(2)有寄存器寻址、直接寻址和相对寻址(位移量为有寄存器寻址、直接寻址和相对寻址(位移量为-128+127)三种寻址方式;(三种寻址方式;(3)有)有16个通用寄存器,算术运算和逻辑运个通用寄存器,算术运算和逻辑运算指令的操作数、结果均在寄存器中;(算指令的操作数、结果均在寄存器中;(4)取数)取数/存数指令在存数指令在通用寄存器和存储器之间传送数据;(通用寄存器和存储器之间传送数据;(5)存储器容量为)存储器容量为1MB,按字节编址。试设计算术运算和逻辑运算指令、取数按字节编址。试设计算术运算和逻辑运算指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饮用水卫生安全巡查工作制度
- 2024-2025学年度咨询工程师考前冲刺练习题附参考答案详解(轻巧夺冠)
- 2024-2025学年度法律职业资格考试预测复习及完整答案详解(全优)
- 2024-2025学年度监理工程师模拟试题【能力提升】附答案详解
- 2024-2025学年度医师定期考核题库检测试题打印完整附答案详解
- 2024-2025学年度法律硕士考试历年机考真题集含完整答案详解【夺冠】
- 2024-2025学年度医疗卫生系统人员题库附答案详解(典型题)
- 2024-2025学年全国统考教师资格考试《教育教学知识与能力(小学)》测试卷及参考答案详解【达标题】
- 2024-2025学年度辅警招聘考试考试综合练习附答案详解(B卷)
- 探讨学习方法的议论文4篇
- 2026年甘肃省安全员C证题库及答案
- 教科版三年级下册科学实验报告(20 篇)
- 初中语文综合性学习中考复习知识清单(甘肃专用)
- 【中小学】【语文】2026春季下开学第一课:骐骥驰聘势不可挡
- 【新教材】人美版(2024)小学4年级劳动下册项目一+任务二+蒜蓉西蓝花(教学课件)
- 2026年人教版新教材数学三年级下册教学计划(含进度表)
- 小学元宵节主题班会 课件(希沃版 )
- 2026年江西交通职业技术学院单招职业技能测试题库及答案解析(名师系列)
- 复测分坑作业指导书
- 现代汉语词汇学精选课件
- 一二次深度融合成套柱上断路器汇报课件
评论
0/150
提交评论