组原第5章指令系统

上传人:w****i 文档编号:91842107 上传时间:2019-07-02 格式:PPT 页数:181 大小:2.02MB
返回 下载 相关 举报
组原第5章指令系统_第1页
第1页 / 共181页
组原第5章指令系统_第2页
第2页 / 共181页
组原第5章指令系统_第3页
第3页 / 共181页
组原第5章指令系统_第4页
第4页 / 共181页
组原第5章指令系统_第5页
第5页 / 共181页
点击查看更多>>
资源描述

《组原第5章指令系统》由会员分享,可在线阅读,更多相关《组原第5章指令系统(181页珍藏版)》请在金锄头文库上搜索。

1、2019/7/2,第8版 2012.09,1,第 5 章 指令系统,2019/7/2,2,本章学习内容,指令系统的设计方法 指令格式 寻址方式 CISC和RISC的概念,2019/7/2,3,5.1 机器指令,指令:控制计算机执行某种操作的命令。 机器语言:计算机硬件实体直接表示控制信息的语言。 机器语言程序:用机器语言编制的程序。 机器语言是计算机硬件能直接理解并执行的语言,任何用其它语言编制的程序,都必须经过 “翻译”,翻译为机器语言程序,才能在机器中正确的运行。 一条指令就是机器语言的一个语句,用来说明机器硬件应完成的操作。 指令系统(指令集):一台计算机所能执行的全部指令的集合。,20

2、19/7/2,4,机器语言是面向机器的:不同的计算机系统,具有不同的指令,每一计算机系统都具有自己的指令系统。 指令系统必须是完备的:即任何运算都可以用指令系统中的指令编程实现。 指令系统是计算机体系结构的核心;是计算机系统硬件、软件的主要界面。它既是计算机硬件设计的主要依据,又是计算机软件设计的基石。所以一台计算机指令系统的优劣,直接影响着计算机系统的性能。,2019/7/2,5,5.1.1 机器指令格式,指令字(指令代码):表示一条指令的一串二进制代码。 指令格式的设计内容: 确定的指令字长度 划分指令字字段并加以定义,2019/7/2,6,一条指令中应包含的信息: 操作码:表示指令的操作

3、特性和功能。 操作数的地址:指示操作数或操作数所在的地址。 存放操作结果的地址。 下一条指令的地址。 指令的基本格式:,2019/7/2,7,5.1.2 指令字的长度,指令字长度:一个指令字所包含的二进制信息的位数。 定长指令字:机器的指令系统中各种指令字的长度均为固定的。 可变长指令字:机器的指令系统中各种指令字的长度随指令的功能而异。,2019/7/2,8,定长指令字的指令长度固定,结构简单,指令译码时间短,有利于硬件控制系统的设计,但定长指令字指令平均长度长、容易出现冗余码点、指令不易扩展。 可变长指令字的指令长度不定,结构灵活,能充分利用指令的每一位,指令的码点冗余少,平均指令长度短,

4、易于扩展。但可变长指令的指令格式不规整,取指令时可能需要多次访存,导致不同指令的执行时间不一致,硬件控制系统复杂。,2019/7/2,9,单字长指令:指令长度等于机器字长。 双字长指令:指令长度等于两个机器字长。 还有更多倍字长的指令及半字长指令等。 短指令占存储空间少,有利于提高指令执行速度,因此通常把最常用指令(如算术逻辑运算指令、数据传送指令等)设计成短指令格式。,2019/7/2,10,5.1.3 指令的地址结构,CPU可直接访问的存储结构 主存储器:访存时要给出存储器单元地址 CPU寄存器:包括通用寄存器和专用寄存器。 I/O接口寄存器:包括数据寄存器和状态寄存器。 堆栈。,2019

5、/7/2,11,设计指令字的地址码格式时需解决的主要问题: 一条指令中需要指明几个地址; 应当如何给出地址; 地址码应选多长。,2019/7/2,12,1四地址指令,四地址指令格式: A1:第一源操作数的存储器地址或寄存器地址。 A2:第二源操作数的存储器地址或寄存器地址。 A3:存放操作结果的存储器地址或寄存器地址。 A4:指示下一条要执行指令的地址。 四地址指令的功能: (A1)OP(A2)A3 A4指示下条指令地址,2019/7/2,13,2三地址指令,程序在执行过程中大多数情况是按指令序列依次执行的,只有在执行转移指令时,程序的执行顺序才被改变。为了压缩指令长度,下一条指令地址采用隐含

6、的方法给出。 通常用一个程序计数器 PC 来跟踪程序的执行并指示将要执行的指令地址。每执行一条指令,PC自动增量,增量值取决于执行指令的长度。 当程序出现转移时,用专门的转移指令将转移地址直接送入PC。 在三地址指令中不明显地指示下条指令地址。,2019/7/2,14,三地址指令格式: A1:第一源操作数的存储器地址或寄存器地址; A2:第二源操作数的存储器地址或寄存器地址; A3:存放操作结果的存储器地址或寄存器地址; 三地址指令功能为: (A1)OP(A2)A3; PC 指示下条指令地址,2019/7/2,15,3二地址指令,二地址指令的格式为: A1、A2是操作数所在的存储器地址或寄存器

7、地址。 二地址指令功能为: (A1)OP(A2)A1 或 (A1)OP(A2)A2 源地址:仅提供操作数的地址 目的地址:既提供一个操作数,又存放操作结果的地址,2019/7/2,16, 存储器存储器型(SS型)指令: A1、A2均为存储器地址的二地址指令。,二地址指令的几种形式,2019/7/2,17, 寄存器寄存器型(RR型)指令: A1、A2均为寄存器地址的二地址指令。,2019/7/2,18, 寄存器存储器型(RS型)指令: A1、A2中一个是寄存器地址,另一个是存储器地址的二地址指令。也称一个半地址指令。,2019/7/2,19,4. 一地址指令(单地址指令),一地址指令也称单地址指

8、令,指令中只有一个地址字段。 一地址指令的格式为: A可以是存储器地址,也可是寄存器地址。,2019/7/2,20,一地址指令有两种情况 单操作数指令:如INC、DEC、NEG等,只需一个操作数,其功能为: OP(A)A 双操作数指令:另一个操作数通常采用隐含寻址的方法,将操作数隐含在约定的累加器AC中,其指令功能为: (AC)OP(A)AC,2019/7/2,21,5零地址指令,零地址指令中只有操作码而无地址码,其指令格式为; 零地址指令有两种情况: 不需操作数的控制型指令,如HALT、WAIT、NOP等。 运算型零地址指令:操作数隐含在堆栈中。,2019/7/2,22,5.1.4 指令的操

9、作码,操作码用于指明指令要完成的操作功能及其特性。指令系统中的每一条指令都有一个唯一确定的操作码,用以指示指令的操作功能。不同的指令具有不同的操作码。 为了能表示指令系统中的全部操作,指令字中必须有足够长度的操作码字段。假定指令系统中有 m 种操作,则操作码位数 n 应满足: nlog2m 指令操作码的编码有定长编码和变长编码两种。,2019/7/2,23,定长编码的指令操作码:所有指令的操作码长度一致,位置固定。是一种简单规整的编码方法。 在字长较长的大、中型机以及超小型机中定长编码的操作码被广泛采用, 例如:在IBM 360/370机中,所有指令的操作码均为8位,最多可指定256种操作。,

10、1)定长编码,2019/7/2,24,变长编码的指令操作码:不同指令的操作码长度不完全相同,操作码的位数不固定,分散地放在指令字的不同位置上。 在早期的微、小型机中,由于指令字较短,均采用变长编码的指令操作码。如Intel 8086、PDP一11等机器。,2) 变长编码,2019/7/2,25,扩展操作码的方法,扩展操作码法:当指令长度一定时,将操作数地址多的指令选择短的操作码,操作数地址少的指令选择较长操作码。 采用扩展操作码法即能充分地利用指令字的各个字段,又能在不增加指令长度的情况下扩展操作码长度,使它能表示更多的指令。,2019/7/2,26,例:设某机的指令长度为16位。操作码为4位

11、,具有三个地址字段,每个地址字段长为4位。其指令格式为:,按照定长编码的方法,4位操作码可表示16条三地址指令。,若指令系统中要求有15条三地址指令、15条二地址指令、15条一地址指令和16条零地址指令,共61条指令。则需要采用变长操作码方式进行编码。,2019/7/2,27,2019/7/2,28,例5.1 :设机器指令字长为16位,指令中地址字段的长度为4位,共有11条三地址指令,72条二地址指令,64条零地址指令。问最多还能规定多少条一地址指令? 解:三地址指令的地址字段共需12位,所以可有4位操作码,可规定16条三地址指令。现有11条三地址指令,所以还有 16115 个编码用于二地址指

12、令。 二地址指令的地址字段共需8位,可有8位操作码,去掉三地址指令用掉的操作码,可规定 51680 条二地址指令。现有72条二地址指令,所以还有80728 个编码用于一地址指令。,2019/7/2,29,一地址指令的地址字段共需4位,可有12位操作码,去掉二、三地址指令用掉的操作码,可规定 816128 条单地址指令。 由于要求有64条零地址指令,而4位操作码只能提供16条指令,所以需要由单地址指令提供64/164个操作码编码,因此还能规定 1284124 条单地址指令。,2019/7/2,30,2019/7/2,31,根据指令系统的要求,扩展操作码的组合方案可以有很多种,可以采用等长扩展,也

13、可采用不等长扩展。 例如,PDP11机的指令操作码有4、7、8、10、11和13位等不同的长度。 在进行操作码扩展的过程中,必须注意的是: 不同指令的操作码编码一定不能重复。 在设计不同长度的操作码时,要尽量考虑安排指令使用频度高的指令使用短的操作码,使用频度低的指令使用较长的操作码。,2019/7/2,32,5.2 寻址方式,寻址方式:形成本条指令的操作数地址和下一条要执行指令的地址的方法。 寻址分为指令地址的寻址和操作数地址的寻址。,2019/7/2,33,指令的执行过程,2019/7/2,34,1. 顺序方式: PC增量PC 由于指令通常顺序存放,所以当程序顺序执行时,可以采用PC增量的

14、方式形成下条指令地址。即按照PC的内容依次取指。增量的多少取决于一条指令所占的存储单元数。,5.2.1 指令的寻址方式,2019/7/2,35,2019/7/2,36,2. 跳越方式,当程序发生转移时,修改PC的内容。 当程序需要转移时,由转移类指令产生转移地址并送入PC中。 转移地址的形成有各种方法。,2019/7/2,37,6,2019/7/2,38,由于操作数的存放往往是随机的,所以希望有多种方式产生操作数地址。另外为了提高程序设计质量,也希望能提供多种灵活的寻址方式。 因此,寻址方式主要是指操作数地址的寻址方式。操作数地址有多种寻址方式。,5.2.2 操作数的寻址方式,2019/7/2

15、,39, 形式地址:指令中给出的地址。 由于有多种寻址方式,指令中地址字段给出的地址,不一定是操作数的实际地址,称为形式地址。 有效地址:形式地址经过一定的运算而得到的操作数的实际地址。 有效地址是CPU实际访问的主存单元的地址。,2019/7/2,40, 设计寻址方式的要求: 指令内包含的地址尽可能短,以缩短指令长度。 能访问尽可能大的存储空间。 即能提供尽可能长的地址信息。 根据程序所具有的局部性特性,大多数程序在一段时间内都使用存储器的一个小区域,所以,可以用短地址访问该区域内的任一单元的。 希望地址能隐含在寄存器中。 因为寄存器地址比较短,而寄存器长度一般与机器字长相同,在字长较长的机

16、器中寄存器内存放的地址可访问很大的存储空间,所以地址隐含在寄存器,可以减少指令长度。 能在不改变指令的情况下改变地址的实际值。 即在数组、向量、线性表、字符串等数据结构的操作中,能够实现操作数地址的最大增减量。 寻址方式尽可能简单、规范,以便简化硬件设计。,2019/7/2,41,常用寻址方式,一地址指令格式 MOD:寻址方式字段,2019/7/2,42,1立即寻址,立即寻址方式是指指令的地址码部分给出的不是操作数的地址而是操作数本身。即指令所需的操作数由指令的形式地址直接给出。 采用立即寻址时,操作数Data就是形式地址部分给出的内容D, D也称为立即数。 例:Intel 8086指令: MOV AX,2000H ;将数据2000H存入累加器AX中,DataD,2019/7/2,43,2.直接寻址,直接寻址方式是指操作数的有效地址在指令字中直接给出,指令

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号