第4章指令系统Chapter4InstructionSystem.ppt
《第4章指令系统Chapter4InstructionSystem.ppt》由会员分享,可在线阅读,更多相关《第4章指令系统Chapter4InstructionSystem.ppt(72页珍藏版)》请在三一文库上搜索。
1、2019/4/11,1,第4章 指令系统 Chapter 4 Instruction System,4.1 指令格式 4.2 指令的寻址方式 4.3 指令系统设计举例 4.4 CISC和RISC的基本概念,2019/4/11,2,本章学习要求 指令的基本格式、定长和扩展操作码指令格式 各种寻址方式的寻址执行过程 定长操作码指令系统的设计示例 CISC和RISC指令系统的思想及特点 指令系统的设计:指令类型(规模)、指令长度、操作码长度、寻址方式,2019/4/11,3,一台计算机所有指令的集合称为该计算机的指令系统,不同类型的计算机由于结构的差别具有不同的指令系统。计算机的性能与其所设置的指令
2、系统有很大关系,而指令系统又与计算机硬件结构密切相关,因此计算机指令系统的设计是计算机组成结构设计中一个非常重要的环节。 本章主要介绍指令的格式、指令的寻址方式、CISC和RISC的指令系统,2019/4/11,4,4.1 指令格式 指令(Instruction):指示计算机执行某种操作的命令,它由一串二进制数码组成 。每条指令可以完成一个独立的算术运算或逻辑运算操作。 指令系统(Instruction Set):是一台计算机全部指令的集合,是计算机所有功能的体现。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适应范围
3、 。 指令系统的改进是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的。,2019/4/11,5,4.1 指令格式 4.1.1 指令格式 计算机通过执行指令来处理各种数据。为了指出数据的来源、操作结果的去向及所执行的操作 。 一条指令一般包含下列信息: (1)操作码,说明操作的性质及功能 (2)操作数的地址,说明参与运算的数据来源 (3)操作结果的存储地址,说明操作结果存放何处 (4)下一条指令的地址,当遇到非顺序执行指令时,给出转移地址,2019/4/11,6,4.1 指令格式 4.1.1 指令格式 在计算机内部,每条指令都表示一串二进制位,称为指令字。指令字划分为若干个域
4、,分别对应指令的构成部分,指令字的结构称为指令格式 计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系 指令格式的设置一般遵循以下规则: (1)包含尽量多的信息; (2)长度尽可能与机器字长相匹配; (3)指令中包含尽量少的冗余信息。,2019/4/11,7,4.1 指令格式 4.1.1 指令格式 指令由操作码和地址码两部分组成,其基本格式如图4-1所示 :,操作码:用来表示指令所要完成的操作 地址码:用来指出该指令的源操作数地址、结果 地址以及下一条指令的地址,2019/4/11,8,4.1 指令格式 4.1.1 指令格式 指令字长度 :指一条指令中所包含的二进制代码的位数
5、,它取决于操作码字段的长度、操作数地址的个数及长度。指令长度可以等于机器字长,也可以与机器字长不等 。 固定字长指令结构:指令系统中所有指令的长度都是一样的。优点是控制简单,实现方便。但占用地址空间较大,不够灵活 变长指令字结构 :各种指令的长度随指令的不同而有所不同 。变长指令字结构字长不确定,指令执行周期与指令功能有关系,往往不能在相同的周期内完成。优点是节省存储空间,指令系统灵活,被广泛应用于现代计算系统的设计中,2019/4/11,9,4.1 指令格式 4.1.1 指令格式 操作码(Operation Code) :用来表示指令所要完成的操作,如加法、减法、传送、移位、转移等 。 每条
6、指令都有不同于其它指令的操作码编码。操作码占用的二进制位数一般取决于计算机指令系统的规模,实际上也就是与指令的条数有关。 一般来讲,如果操作码固定,占m位,则该机器最多包含2m条指令 操作码的长度可以是固定的,也可以是变化的。相应的指令格式可分为定长操作码指令格式和扩展操作码指令格式两类,2019/4/11,10,4.1 指令格式 4.1.1 指令格式 地址码(Address Code) :用来指出该指令的源操作数地址、结果地址以及下一条指令的地址。这里的“地址”可以是主存地址,也可以是寄存器地址或者I/O设备的地址 。 不是所有的指令都必须包含地址码,也不是所有指令的地址码段数都相同。根据指
7、令中包含的地址码的段数,可以将指令分为零地址指令、一地址指令、二地址指令、三地址指令,2019/4/11,11,根据地址码部分给出的地址个数分类: 1. 零地址指令 指令中只有操作码,而没有操作数或没有操作数地址。这种指令有两种可能: (1) 无需任何操作数。如空操作指令、停机指令等 (2) 操作数按照某种约定隐含,如堆栈类指令 2. 一地址指令 指令中只给出一个地址。一种是单操作数运算,如加1,减1,移位,取反等,该地址既是操作数的地址,又是操作结果存储地址。对这一地址所指定的操作数执行相应的操作后,产生的结果又存回该地址中。另一种情况是双操作数,另一个操作数必须存放在事先约定的专门的寄存器
8、中,2019/4/11,12,3. 二地址指令 这是最常见的指令格式,两个地址指出两个源操作数地址,其中一个还是存放结果的目的地址 4. 三地址指令: 指令中包含三个地址段,其中的两个地址段用来存放源操作数地址,第三个地址段用来存放目的操作数地址 5. 四地址指令 指令中包含四个地址段,其中前两个地址段用来存放源操作数地址,第三个地址段用来存放目的操作数地址,第四个地址段给出下一条指令的地址。,2019/4/11,13,6. 多地址指令 高档机或大型机中用于处理成批数据的指令,如字符串处理指令,向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下标等信息。
9、 具有不同数量地址码的指令系统格式如图4-2所示 适应范围: 零地址、一地址和两地址指令具有指令短,执行速度快,硬件实现简单等特点,多为结构较简单,字长较短的小型、微型机所采用 两地址、三地址及多地址指令具有功能强,便于编程等特点,多为字长较长的大,中型机所采用,2019/4/11,14,2019/4/11,15,4.1.2 定长操作码指令格式 定长操作码指令格式将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的大、中型计算机和超级小型机以及RISC(Reduced Instruction Set Computer)中 。 IBM370机就采用定长操
10、作码指令格式。IBM370机是一种32位机,机器字长32位,有三种结构的指令,分别是半字长指令(指令长度为16位)、单字长指令(指令长度为32位)、1.5倍字长指令(指令长度为48位)。不同类型的指令编码格式有所不同,但操作码字段的长度都是固定的8位。,2019/4/11,16,4.1.2 定长操作码指令格式 图4-3列出了IBM370机的指令系统格式 。,2019/4/11,17,4.1.3 扩展操作码指令格式 扩展操作码指令格式将操作码分散在指令字的不同字段中,可有效压缩操作码平均长度,在字长较短的微型计算机中广泛应用,如Z80、Intel80x86、Pentium等,操作码长度都是可变的
11、 。 操作码长度不固定将增加指令译码和分析的难度,使控制器设计复杂化,因此对操作码的编码至关重要。通常是在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,把它们的操作码扩展到该地址字段,这样既能充分利用指令字的各字段,又能在不增加指令长度情况下扩展操作码的长度,使它表示更多指令。,2019/4/11,18,设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。 15 12 118 7 4 30,4位基本操作码可表示16个状态, 如用4位操作码能表示16条三地址指令, 而用8位操作码可表示256条二地址指令, 而用12位操作码可表示4096条一地址指
12、令。,2019/4/11,19,4.1.3 扩展操作码指令格式 设某机器的指令长度为16位,包括4位基本操作码字段和3个4位地址字段,其指令格式如图4-4所示。4位基本操作码可表示16个状态,如全部用于表示三地址指令,只有16条。若该机器有三地址指令15条,两地址指令15条,一地址指令15条,零地址指令16条,共61条,应该如何安排操作码呢 ?,2019/4/11,20,4.1.3 扩展操作码指令格式 只用4位基本操作码明显是不够的,必须将操作码的长度向地址码字段扩展才行。一种可供扩展的方法和步骤如下: (1)15条三地址指令的操作码由4位基本操作码从00001110给出,剩下一个码点1111
13、把操作码扩展到A1,即4位扩展到8位; ( 2)15条二地址指令的操作码由8位操作码从1111000011111110给出,剩下一个码点11111111把操作码扩展到A2,即从8位扩展到12位; ( 3)15条一地址指令的操作码由12位操作码从111111110000111111111110给出,剩下一个码点111111111111把操作码扩展到A3,即从12位扩展到16位; ( 4)16条零地址指令的操作码由16位操作码从1111111111110000111111111111给出 。,2019/4/11,21,操作码 地址码,15 12 11 8 7 4 3 0,0000 X Y Z 11
14、10 X Y Z,1111 0000 Y Z 1111 1110 Y Z,三地址指令 15条,二地址指令 15条,1111 1111 0000 Z 1111 1111 1110 Z,一地址指令 15条,1111 1111 1111 0000 1111 1111 1111 1111,零地址指令 16条,2019/4/11,22,4.1.3 扩展操作码指令格式 除了这种方法以外,还有其他多种扩展方法,如还可以形成15条三地址指令,14条两地址指令,31条一地址指令和16条零地址指令,共76条指令:,15条三地址为:0000 1110 14条二地址为:11110000 11111101 31条一地址
15、为:111111100000 111111111110 16条零地址为:1111111111100001111111111111111,2019/4/11,23,4.1.3 扩展操作码指令格式 在可变长度的指令系统的设计中,到底使用何种扩展方法还有一个重要原则-指令使用频率 (1)使用频率高的指令应分配较短的操作码 (2)使用频率低的指令应分配较长的操作码 这样可有效地缩短操作码在程序中的平均长度,节省存储空间,缩短经常使用的指令的译码时间,可提高程序的运行速度。 操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,减少程序的总位数以及增加指令字所能表示的操作信息。 扩展操作码比
16、固定操作码译码复杂,使控制器的设计难度增大,且需更多的硬件来支持,2019/4/11,24,4.1 指令格式 比较: 定长操作码 - 操作码长度固定 优点:便于控制; 缺点:会限制指令系统规模; 扩展操作码 -操作码长度不固定 优点:合理利用存储空间; 缺点:增加指令译码和分析难度,使控制器设计复杂化;,2019/4/11,25,4.2 指令的寻址方式 组成程序的指令代码:一般在存储器中 程序执行过程中的操作数:可能在运算部件的某个寄存器中或存储器中,也可能就在指令中 寻址方式(Addressing mode):确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而
17、且直接影响指令格式和指令功能 。 从程序员角度看,寻址方式与汇编程序设计的关系极为密切,与高级语言的编译程序设计也同样密切。,2019/4/11,26,4.2 指令的寻址方式 4.2.1 有效地址 通常把指令中地址码字段给出的地址称作形式地址(用字母A表示),这个地址一般不能直接用来访问存储器。 形式地址经过某种运算而得到的可用来访问存储器的地址称作有效地址(用EA表示),有效地址实际上是操作数所在单元位置到段地址的距离,由段地址和有效地址可以直接得出操作数在存储器中的物理地址 不同的寻址方式,从形式地址A计算得到有效地址EA的方法也不一样,2019/4/11,27,4.2 指令的寻址方式 4
18、.2.2 数据寻址和指令寻址 寻址方式分为数据寻址和指令寻址两大类。 指令寻址方式实际上是程序执行的过程,即计算机在执行程序的过程中如何在主存中找到将要执行的指令的地址 数据寻址方式是指操作数的有效地址的寻址方式,2019/4/11,28,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 1. 数据寻址 数据寻址方式通过指令中的地址码字段计算操作数的有效地址,地址码字段由形式地址和寻址方式特征位组合而成,因此,通常指令中给出的地址码并不是操作数的有效地址 。 数据寻址过程就是把地址码字段中的操作数形式地址转换为操作数的有效地址的过程 数据寻址方式种类较多,将在4.2.3节中详细介绍,20
19、19/4/11,29,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 2. 指令寻址 指令寻址方式有两种 (1)顺序寻址 指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行 指令在执行过程中,根据程序计数器PC的值去寻址存储器,在指定的存储器中取出指令后,PC自动加1,从而指向下一条指令所在的地址 主要用在程序执行过程中,从存储器中取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令,2019/4/11,30,4.2 指令的寻址方式 4.2.2 数据寻址和指令寻址 2. 指令寻址 (2)跳转寻址 当程序遇到非
20、顺序执行时,指令寻址就采用跳转寻址方式。跳转是指下一条指令的地址不是由程序计数器PC给出,而是由本条指令给出。 跳转指令就是程序中的转移指令,当程序执行至转移指令时,下一条将要执行的指令可能就不是程序中的下一行 采用跳转寻址方式,可实现程序转移或构成循环程序,缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳转寻址而设置的,2019/4/11,31,4.2.3 常见寻址方式 不同的计算机有不同的寻址方式,但其基本原理是相同的 寻址方式一般可归结为立即寻址、直接寻址、寄存器寻址、基址寻址、变址寻址、间接寻址以及相对寻址等几种寻址方式,或者这
21、几种方式的组合与变形 。 寻址过程:从“形式地址”到“有效地址”的转换 对寻址方式的评价包括:寻址能力;地址计算的复杂性 约定:A形式地址,指令地址字段中的内容 EA有效地址,包含被访问操作数的实际单元 (X)表示单元X中的内容 R寄存器,2019/4/11,32,1. 立即寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身,又称之为立即数 这种方式的特点是指令执行时间很短,只要取出指令便可获得操作数,不需要访问存储器取数。现在地址字段A的位数限制了这类指令所能表示的立即数的范围 例: MOV AX,1234H,OP A,立即数,指令字,2019/4/11,33,2. 直接寻址 指令的
22、地址码部分给出操作数在存储器中的地址。 优点是简单直观,不需专门计算机操作数地址,指令执行阶段对主存只访问一次,便于硬件实现 地址字段A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址 例: MOV AX,1234H,存储器,OP A,操作数 1234H,2019/4/11,34,2. 直接寻址 有些指令中增加一个M字段,例如3位,可表示8种寻址方式,存储器, M A,操作数 0110H,OP,2019/4/11,35,3. 寄存器寻址 指令地址码部分给出某一通用寄存器地址,所需的操作数就在这一寄存器(R)中 地址码短,从寄存器中存取数据比从存储器中存取快得多;速度快,是
23、提高性能的常用手段 寄存器寻址方式可以缩短指令长度、节省存储空间,提高指令的执行速度,在计算机中得到广泛应用。 缺点:寻址空间受寄存器数量限制 EA=R 例:MOV AX,BX BX为源操作数地址,AX为目的操作数地址,操作的结果为将BX中的数据传送(拷贝)到AX中。,2019/4/11,36,4. 基址寻址 在计算机中设置或由指令指定一个通用寄存器为基址寄存器(BR)。操作数的地址由基址寄存器的内容和指令的地址码A相加得到,地址码A通常被称为位移量(disp) EA=(BR)+A 例:MOV AX,BX+50H 程序员可以不用考虑程序加载到内存中的位置,编程只需使用逻辑地址即可(程序转换到物
24、理地址) 当存储器容量较大,由指令的地址码部分直接给出的地址不能直接访问到存储器所有单元时,通常把整个存储空间分成若干段,段首地址放于基址寄存器或段寄存器中,段内位移量由指令给出。,2019/4/11,37,图4.7 基址寻址过程,2019/4/11,38,5. 变址寻址 指令地址码部分给出的地址A和指定的变址寄存器X的内容通过加法器相加,所得的和作为地址从存储器中读出所需的操作数。 当计算机中还有基址寄存器时,计算有效地址时还需加上基址寄存器内容 EA=(X)+A 例:MOV AX,SI+50H 变址操作支持一维数组,结合循环方法进行,逐次改变变址寄存器的值,来访问一片主存地址 变址寄存器的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 Chapter4InstructionSystem
链接地址:https://www.31doc.com/p-2577676.html