第4章 指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12
4.2.2 地址码
地址码用于指定操作数和存放运算结果的地址,通常称 为操作数。操作数可以是一个直接的数或者是一个数据所在的 地址,它以空格与操作码分开。根据指令功能的不同,操作数 可以有一、二、三个或没有操作数之间以逗号分开。 1.零地址指令 格式: OP
零地址指令的指令字中只有操作码,而没有地址码。
计算机组成原理
2
本章要点: 指令格式 寻址方式和范围 指令系统设计 指令系统的发展
计算机组成原理
3
4.1 指令系统概述
计算机能解题是由于机器本身存在一种语言, 它既能理解人得意图,又能被机器自身识别。机器 语言是由一条条语句构成的,每一条语句又能准确 表达某种语义。例如它可以命令机器做某种操作, 指出参与操作的数或其它信息在什么地方等等。计 算机就是连续执行每一条机器指令而实现全自动工 作的。人们习惯把每一条机器语言的语句叫机器指 令,而又将全部机器指令的集合叫做机器的指令系 统。因此机器的指令系统集中反映了机器的功能, 是计算机系统中软件与硬件的分界面,如图4-1所示。 就目前来看,无论多么复杂、功能多么强大的软件, 凡是能够在机器上直接运行的目标程序都是由一系 列机器指令组成的。
计算机组成原理
22
2)跳跃寻址 当程序转移执行的顺序时,指令的寻址就采取 跳跃寻址方式。所谓跳跃,是指下条指令的地址码 不是由程序计数器给出,而是由本条指令给出。程 序跳跃后,按新的指令地址开始顺序执行。指令计 数器的内容也必须相应改变,以便及时跟踪新的指 令地址。采用指令跳跃寻址方式,可以实现程序转 移或构成循环程序,从而能缩短程序长度,或将某 些程序作为公共程序引用。指令系统中的各种条件 转移或无条件转移指令,就是为了实现指令的跳跃 寻址而设置的。
计算机组成原理
16
4.2.3 操作码的扩展技术 通常在指令字中用一个固定长度的字段来表示 基本操作码(固定长度操作码),而对一部分不需 要某个地址码的指令,把它们的操作码扩充到该地 址字段,这样既能充分利用指令字中的各个字段, 又能在不增加指令长度的情况下扩展操作的长度, 使它能表示更多的指令(可变长度操作码)。
16条零地址指令
1111 1111 1111 1111
计算机组成原理
Байду номын сангаас19
例2:某计算机指令长度为32位,有3种指令:双操 作数指令、单操作数指令、无操作数指令。今采用扩展 操作码方式来设计指令,假设操作数地址为12位,己知 有双操作数指令K条,单操作数指令L条,问无操作数指 令有多少条? 解:由于采用扩展操作码方式设计指令,所以对一 部分不需要操作数的指令可以将指令操作码扩展到操作 数字段。在不增加指令长度的情况下,能充分利用指令 的各个字段扩展操作码的长度,使它可以表示更多的指 令。在本题中,由于指令总长度为32位,操作数地址为 12位,则: 对于双操作数指令,操作码长度为(32-12×2)=8位; 对于单操作数指令,操作码长度为(32-12)=20位; 对于无操作数指令,操作码长度为32位。
第4章 指令系统
计算机组成原理
1
计算机系统主要由硬件(Hardware)和软件 (Software)两部分组成。所谓硬件就是指构成计算机的 电子、机械、光学的元件或装置,它们是看得见,摸得着得 实体。软件则是为便于用户使用计算机而编写的各种程序, 它实际上是由一系列机器指令组成。一台计算机中全部指令 的集合称为这台计算机的指令系统,它是软、硬件设计的分 界面。 计算机性能与它所设置的指令系统有很大的关系,指 令系统反映了计算机的主要属性,而指令系统的设置又与机 器的硬件结构密切相关。指令是计算机执行某种操作的命令, 而指令系统是一台计算机中所有机器指令的集合。通常性能 较好的计算机都设置有功能齐全、通用性强、指令丰富的指 令系统,而指令功能的实现需要复杂的硬件结构来支持。
计算机组成原理
20
由于双操作数指令有K条,而双操作指令最多 有28条,所以保留有(28-K)个编码用于扩展到单操 作数指令。 单操作数指令有L条,而单操作指令最多有(28K)× 212条,所以保留有[(28-K)× 212-L]个编码用于 扩展到无操作数指令。 根据以上分析,无操作数指令条数为 [(28-K)× 212-L]× 212
计算机组成原理
7
计算机是通过执行指令来处理各种数据的。为了 指出数据的来源、操作结果的去向及所执行的操作, 一条指令必须包含下列信息: (1)操作码。它具体说明了操作的性质及功能。 一台计算机可能有几十条至几百条指令,每一条指令 都有一个相应的操作码,计算机通过识别该操作码来 完成不同的操作。 (2)操作数的地址。CPU通过该地址就可以取 得所需的操作数。 (3)操作结果的存储地址。把对操作数的处理 所产生的结果保存到该地址中,以便再次使用。
“停机”、“空操作”、“清除”等控制类指令。
计算机组成原理
13
2.一地址指令 格式: OP
A
一地址指令常称为单操作数指令。通常这种指令以运 算器中累加寄存器AC中的数据为被操作数,指令字的地址 码字段所指明的数为操作数,操作结果又放回累加寄存器 AC中。 (AC) OP (A) -> AC OP表示操作性质;(AC)表示累加寄存器AC中的数; (A)表示内存中地址为A的存储单元中的数或运算器中地 址为A的通用寄存器中的数; →表示把操作(运算)结果传 送到指定的地方。
计算机组成原理
23
4.3.2 数据的寻址方式
形成操作数的有效地址的方法,称为操作数的寻址 方式。 例如,一种单地址指令的结构如下所示,其中用X, I,D各字段组成该指令的操作数地址。 操作码OP 变址X 间址I 形式地址D 指令中操作数字段的地址码是由形式地址和寻址 方式特征位等组合形成,因此,一般来说,指令中所给 出的地址码,并不是操作数的有效地址。 因此,寻址 过程就是把操作数的形式地址,变换为操作数的有效地 址的过程。
计算机组成原理
21
4.3 指令及操作数的寻址方式
4.3.1 指令的寻址方式
指令的寻址方式有2种类型: (1)顺序寻址 指令地址在内存中按顺序安排,当执行一段程序时, 通常是一条指令接一条指令的顺序执行。 从存储器取出第一条指令,然后执行这条指令;接着 从存储器取出第二条指令,在执行第二条指令;接着再取出 第三条指令……这种程序顺序执行的过程,我们称为指令的 顺序寻址方式。 为此,必须使用程序计数器(又称指令指针寄存器) PC来计数指令的顺序号,该顺序号就是指令在内存中的地 址。
计算机组成原理
6
4.2 指令格式
计算机的指令格式与机器的字长、存储器的容 量及指令的功能都有很大的关系。从便于程序设计、 增加基本操作并行性、提高指令功能的角度来看, 指令中应包含多种信息。但在有些指令中,由于部 分信息可能无用,这将浪费指令所占的存储空间, 增加了访存次数,从而影响速度。因此,如何合理、 科学地设计指令格式,使指令既能给出足够的信息, 又使其长度尽可能地与机器字长相匹配,以节省存 储空间,缩短取指时间,提高机器的性能,这是指 令格式设计中的一个重要问题。
计算机组成原理
14
3.二地址指令 格式: OP A1
A2
二地址指令常称为双操作数指令,它的两个地址码字段分别指明参与操 作的两个数在内存中或运算器中通用寄存器的地址,A1作存放操作结果 的地址。 (A1) OP (A2) -> A1 二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。 存储器-存储器(SS)型指令:操作时都是涉及内存单元,参与操作的 数都放在内存里,从内存某单元中取 操作数,操作结果存放至内存另一单元中,因此机器执行这种指令需要 多次访问内存。 寄存器-寄存器(RR)型指令:需要多个通用寄存器或个别专用寄存器, 从寄存器中取操作数,把操作结果 放到另一寄存器。机器执行寄存器-寄存器型指令的速度很快,因为执 行这类指令,不需要访问内存。 寄存器-存储器(RS)型指令:执行此类指令时,既要访问内存单元, 又要访问寄存器。 15 计算机组成原理
4.三地址指令 格式:
OP A1 A2 A3
三地址指令字中有三个操作数地址。 (A1) OP (A2) -> A3 A1为被操作数地址,也称源操作数地址; A2 为操作数地址,也称终点操作数地址; A3为存放 结果的地址。 同样,A1,A2,A3可以是内存中的单 元地址,也可以是运算器中通用寄存器的地址。
一条指令就是机器语言的一个语句,它是一组有意义的 二进制代码,指令的基本格式如下: 操作码字段 地址码字段
其中操作码字段指明了指令的操作性质及功能,地址码则给 出了操作数或操作数的地址。
计算机组成原理
10
4.2.1 操作码
操作码部分指出了计算机要执行什么性质的操作, 如进行加法、减法、取数、存数等。不同的指令,其操 作码不同,用不同的编码来表示,每一个编码表示一条 指令。计算机要为每条指令分配一个确定的操作码。例 如:操作码0001可以规定为表示加法操作;操作码 0010可以规定为表示乘法操作等等。每个操作码代表 的功能均由CPU上相应的电路来实现,因此机器就能执 行操作码所要表示的操作。操作码的长度n(即操作码 的位数)决定了指令系统中完成不同操作的指令条数, 如某机器的操作码长度为n,则不同指令的条数最多为 2n。n越大,则指令条数越多,功能越强,指令系统的 规模也就越大。
计算机组成原理
17
例1:已知指令字长为16位,每个地址码为4位, 采用扩展操作码的方式,设计15条三地址指令、15 条二地址指令、15条一地址地址、16条零地址指令。 【分析】:指令字长为16位,每个地址码为4 位,则采用固定长度操作码,只有4位,最多只能 表示16条指令;但是对于二地址指令、一地址地址 和零地址指令,它们的部分地址码并没有使用,所 以可用它们来扩充操作码,这样的话,二地址指令 的操作码可扩充至8位、一地址指令的操作码可扩 充至12位、零地址指令的操作码可扩充至16位。 设计的指令如下:
计算机组成原理
9
从上述分析可知,一条指令实际上包括两种信息即操作 码和地址码。操作码(Operation Code,OP)用来表示该指 令所需要完成的操作,其长度取决于指令系统中的指令条数。 地址码用来描述该指令的操作对象,它或者直接给出操作数, 或者指出操作数的存储器地址或寄存器地址(即寄存器名)。
计算机组成原理
11
目前在指令操作码设计上主要采用以下两种编 码方式 1. 固定长度操作码 操作码的长度是固定的,且集中放在指令字的 一个字段中,指令的其余部分全部用于地址码。例 如IBM370机和VAX-11系列机,操作码的长度均为 8位,可表示256种不同的操作。 2. 可变长度操作码
计算机组成原理
计算机组成原理
8
(4)执行程序时,大多数指令按顺序依次从主 存中取出执行,只有在遇到转移指令时,程序的执行 顺序才会改变。为了压缩指令的长度,可以用一个程 序计数器(Program Counter,PC)存放指令地址。 每执行一条指令,PC的指令地址就自动加1(设该指 令只占用一个主存单元),指出将要执行的下一条指 令地址。当遇到执行转移指令时,则用转移地址修改 PC的内容。由于使用了PC,指令中就不必明显地给 出下一条将要执行指令的地址。
计算机组成原理
18
0000 ×××× ×××× ××××
15条三地址指令
1110 ×××× ×××× ×××× 1111 0000 ×××× ××××
15条二地址指令
1111 1110 ×××× ×××× 1111 1111 0000 ××××
15条一地址指令
1111 1111 1110 ×××× 1111 1111 1111 0000
计算机组成原理
4
计算机组成原理
5
对于软件设计人员而言,则需使用这些指令编 制各种各样的系统软件和应用软件,用这些软件来 填补硬件的指令与人们习惯的使用方式之间的语义 差距。因此,可以说,指令系统是软件设计人员与 硬件设计人员之间的一个主要分界面,也是他们之 间互相沟通的一座桥梁。一方面是程序员所能看到 的机器的主要属性,另一方面表明计算机具有哪些 最基本的硬件功能,也就是说指令系统既为软件设 计者提供最低层的程序设计语言,也为硬件设计者 提供了最基本的设计依据。在计算机系统的设计过 程中,指令系统的设计是非常关键的,不但直接关 系着对程序设计的支持程度,也关系着该计算机的 硬件结构,必须由软件设计人员和硬件设计人员共 同来完成。
相关文档
最新文档