第四章 指令系统(白中英第五版)_第1页
第四章 指令系统(白中英第五版)_第2页
第四章 指令系统(白中英第五版)_第3页
第四章 指令系统(白中英第五版)_第4页
第四章 指令系统(白中英第五版)_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

计算机组原理第四章指令系统4.1指令系统的发展与性能要求一、指令系统的发展计算机的程序是有一系列的机器指令组成的。指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。02二月20234.1指令系统的发展与性能要求微指令:是微程序级的命令,它属于硬件。宏指令:是由若干条机器指令组成的软件指令,它属于软件。机器指令:介于微指令和宏指令之间,通常简称为指令,每一条指令可以完成一个独立的算术运算或逻辑运算操作。

02二月20234.1指令系统的发展与性能要求一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。02二月20234.1指令系统的发展与性能要求

02二月20234.1指令系统的发展与性能要求下面我们来看一下计算机指令系统的发展过程:

50年代:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。60年代后期:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。02二月20234.1指令系统的发展与性能要求系列计算机是指节本指令系统相同、基本体系结构相同的一系列计算机。其必要条件是同一系列的各机种有共同的指令集.而且新推出的机种指令系统一定包含所有旧机种的全部指令,即实现一个“向上兼容”。因此旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。系列机解决了各机种的软件兼容问题02二月20234.1指令系统的发展与性能要求复杂指令系统计算机(CISC)计算机的指令系统多达几百条。但是如此庞大的指令系统难以保证正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于VLSI技术实现的精简指令系统计算机(RISC)RISC是一种计算机系统结构的设计思想,至今还没有一个确切的定义,也难以再CISC和RISC之间划出一条明显的界限02二月20234.1指令系统的发展与性能要求二、对指令系统性能的要求指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的要求:完备性用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。

02二月20234.1指令系统的发展与性能要求有效性利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。规整性规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。02二月20234.1指令系统的发展与性能要求对称性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。02二月20234.1指令系统的发展与性能要求兼容性

系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。02二月20234.1指令系统的发展与性能要求三、低级语言与硬件结构的关系计算机语言有高级语言和低级语言之分。高级语言语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。

02二月20234.1指令系统的发展与性能要求高级语言和低级语言的异同可参考表4.1。计算机能够直接识别和执行的唯一语言是二进制语言,但人们采用符号语言或高级语言编写程序。为此,必须借助汇编程序或编译程序,把符号语言或高级语言翻译成二进制码组成的机器语言。汇编语言依赖于计算机的硬件结构和指令系统。不同的机器有不同的指令,所以用汇编语言编写的程序不能在其他类型的机器上运行。

02二月20234.1指令系统的发展与性能要求高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。但是高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。02二月20234.1指令系统的发展与性能要求02二月20234.2指令格式指令能反映以下信息:做什么操作如果需要操作数,从哪里取结果送哪里下一条指令从哪里取影响计算机指令格式的因素:

机器的字长存储器的容量()指令的功能02二月20234.2指令格式指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。02二月2023操作码地址码4.2指令格式一、操作码操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数的地址。操作码:表示该指令应进行什么性质的操作。每一种编码代表一种指令,组成操作码字段的位数一般取决于计算机指令系统的规模。02二月20234.2指令格式例如:8条____________3位32条___________5位对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。在单片机中,由于指令字较短,为了充分利用指令字长度,指令字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。02二月20234.2指令格式二、地址码地址码通常指定参与操作的操作数的地址。根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。目前二地址和一地址指令格式用的得最多。零地址指令的指令字中只有操作码,而没有地址码。“停机”、“空操作”、“清除”等控制类指令02二月20234.2指令格式一地址指令常称单操作数指令。

(AC)OP(A)→AC二地址指令常称双操作数指令,它有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器通用寄存器的地址,其中地址A1兼做存放操作结果的地址。

(A1)OP(A2)→A102二月2023OPA1A24.2指令格式三地址指令字中有三个操作数地址A1,A2和A3。

(A1)OP(A2)→A3

02二月2023OPA1A2A34.2指令格式二地址指令根据操作数的物理位置又可归结为三种类型:访问内存的指令格式,我们称这类指令为存储器-存储器(SS)型指令;访问寄存器的指令格式,我们称这类指令为寄存器-寄存器(RR)型指令;第三种类型为寄存器-存储器(RS)型指令。02二月20234.2指令格式三、指令字长度一个指令字中包含二进制代码的位数,称为指令字长度。机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。02二月20234.2指令格式单字长指令:指令字长度等于机器字长度的指令半字长指令:指令字长度等于半个机器字长度的指令双字长指令:指令字长度等于两个机器字长度的指令02二月20234.2指令格式使用多字长指令的优点:可以提供足够的地址位来解决访问内存任何单元的寻址问题。使用多字长指令的缺点:必须两次或多次访问内存以取出整条指令,这就降低了CPU的运算速度,同时又占用了更多的存储空间。02二月20234.2指令格式在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构,这种指令字结构简单,且指令字长度是不变的。如果各种指令字长度随指令功能而异,就称为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制较复杂。02二月20234.2指令格式四、指令助记符由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为便于书写和记忆而设定的,与机器指令一一对应。每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。指令助记符由汇编程序转换成它们相对应的二进制操作码。02二月20234.2指令格式不同的计算机中,指令助记符的规定是不一样的。当指令的操作码用助记符表示,而地址及其寻址特征也用符号表示时,就成为汇编语言,这些符号称为汇编符号,用汇编符号表示的指令格式,就称为汇编格式。P118表4.202二月20234.2指令格式五、指令格式举例八位微型计算机的指令格式8位微型机字长只有8位,指令结构是一种可变字长形式,包含单字长、双字长、三字长指令等多种。单字长指令双字长指令三字长指令

02二月20234.2指令格式内存按字节编址,所以单字长指令每执行一条指令后,指令地址加1。双字长指令或三字长指令每执行一条指令时,指令地址要加2或加3,可见多字长的指令格式不利于提高机器速度。02二月20234.2指令格式六、PDP/11系列机指令格式

PDP/11系列机指令字长16位,其指令格式如下表所示。4.3PDP/11系列机指令格式

02二月20234.2指令格式从表中看出,在PDP/11中,操作码字段是不固定的,其长度也是不相同的。这样做可以扩展操作码以包含较多的指令。但是操作码字段不固定,对控制器的设计来说必将复杂化。02二月20234.2指令格式[例1]指令格式如下所示,其中OP为操作码,试分析指令格式的特点。1597430

[解]:(1)单字长二地址指令。(2)操作码字段OP可以指定128条指令。(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。(4)这种指令结构常用于算术逻辑运算类指令。02二月2023OP------源寄存器目标寄存器4.2指令格式[例2]指令格式如下所示,OP为操作码字段,试分析指令格式特点。

15107430[解]:(1)双字长二地址指令,用于访问存储器。

(2)操作码字段OP为6位,可以指定64种操作。

(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)所以是RS型指令。02二月2023OP------源寄存器变址寄存器位移量(16字)4.3指令和数据的寻址方式研究问题确定本条指令中各操作数的地址下一条指令的地址寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作数的方式,它与计算机硬件结构紧密相关,而且对指令的格式和功能有很大的影响。02二月20234.3指令和数据的寻址方式寻址方式

指令寻址方式(简单)

跳跃寻址方式

数据寻址方式(复杂)02二月2023顺序寻址方式4.3指令和数据的寻址方式一、指令的寻址方式操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。02二月20234.3指令和数据的寻址方式顺序寻址方式指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,在执行第二条指令;接着再取出第三条指令……这种程序顺序执行的过程,我们称为指令的顺序寻址方式。02二月20234.3指令和数据的寻址方式为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。02二月20234.3指令和数据的寻址方式跳跃寻址方式

当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。02二月20234.3指令和数据的寻址方式二、操作数寻址方式由于指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成。因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。形成操作数的有效地址的方法,称为操作数的寻址方式。02二月20234.3指令和数据的寻址方式操作数包含在CPU的某一个内部寄存器中;操作数包含在主存储器中;操作数包含在I/O设备的端口中;根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同的寻址方式。02二月20234.3指令和数据的寻址方式例如,一种单地址指令的结构如下所示,其中用X,I,D各字段组成该指令的操作数地址。指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指令中所给出的地址码,并不是操作数的有效地址。因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。02二月2023操作码OP变址X间址I地址D4.3指令和数据的寻址方式1.隐含寻址在指令中不明显的给出而是隐含着操作数的地址。例如,单地址的指令格式,没有在地址字段中指明第二操作数地址,而是规定累加寄存器AC作为第二操作数地址,AC对单地址指令格式来说是隐含地址。02二月20234.3指令和数据的寻址方式2.立即寻址指令的地址字段指出的不是操作数的地址,而是操作数本身。这种方式的特点是指令执行时间很短,不需要访问内存取数。例如:单地址的移位指令格式为这里D不是地址,而是一个操作数。F为标志位,当F=1,操作数进行右移;当F=0时,操作数进行左移。02二月2023OP(移位)FD4.3指令和数据的寻址方式3.直接寻址直接寻址特点是:在指令格式的地址字段中直接指出操作数在内存的地址D。

采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地址E,既E=D。因此通常把形式地址D又称为直接地址。此时,由寻址模式给予指示。如果用S表示操作数,那么直接寻址的逻辑表达式为S=(E)=(D)02二月20234.3指令和数据的寻址方式02二月20234.3指令和数据的寻址方式4.间接寻址间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,D单元的内容才是操作数的有效地址。

如果把直接寻址和间接寻址结合起来,指令有如下形式:

02二月2023操作码1D4.3指令和数据的寻址方式寻址特征位I=0,表示直接寻址,这时有效地址E=D;I=1,表示间接寻址,这时有效地址E=(D)。间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。02二月20234.3指令和数据的寻址方式02二月20234.3指令和数据的寻址方式5.寄存器寻址方式和寄存器间接寻址方式当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。02二月20234.3指令和数据的寻址方式6.相对寻址方式(偏移寻址)相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。

采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。此时形式地址D通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。02二月20234.3指令和数据的寻址方式02二月20234.3指令和数据的寻址方式7.基址寻址方式(偏移寻址)基址寻址方式是将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。

它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。02二月20234.3指令和数据的寻址方式02二月20234.3指令和数据的寻址方式8.变址寻址方式(偏移寻址)变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。02二月20234.3指令和数据的寻址方式02二月20234.3指令和数据的寻址方式9.段寻址方式微型机中采用了段寻址方式,例如它们可以给定一个20位的地址,从而有1M存储空间的直接寻址能力。为此将整个1M空间存储器以64K为单位划分成若干段。在寻址一个内存具体单元时,由一个基地址再加上某些寄存器提供的16位偏移量来形成实际的20位物理地址。这个基地址就是CPU中的段寄存器。在形成20位物理地址时,段寄存器中的16位数会自02二月20234.3指令和数据的寻址方式动左移4位,然后以16位偏移量相加,即可形成所需的内存地址。这种寻址方式的实质还是基址寻址。02二月20234.3指令和数据的寻址方式10.堆栈寻址方式堆栈有寄存器堆栈和存储器堆栈两种形式,它们都以先进后出的原理存储数据。数据进栈时使用PUSH指令,将数据压入栈顶地址,堆栈指示器减1;数据退栈时,使用POP指令,数据从栈顶地址弹出,堆栈指示器加1。这保证了堆栈中数据先进后出的存取顺序。02二月20234.3指令和数据的寻址方式[例3]一种二地址RS型指令的结构如下所示:

6位4位1位2位16位其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名称。02二月2023操作码-------通用寄存器1XD4.3指令和数据的寻址方式寻址方式I

X有效地址E算法说明(1)

0

00

E=D

(2)0

01

E=(PC)+DPC为程序计数器(3)

0

10

E=(R2)+DR2为变址寄存器(4)

1

11

E=(R3)

(5)

1

00

E=(D)

(6)0

11

E=(R1)+DR1为基址寄存器02二月20234.3指令和数据的寻址方式[解]:⑴直接寻址

⑵相对寻址⑶变址寻址⑷寄存器间接寻址⑸间接寻址⑹基址寻址02二月20234.3指令和数据的寻址方式[例4]

某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器,指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。02二月20234.3指令和数据的寻址方式要求:⑴分析三种指令的指令格式与寻址方式特点。⑵CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?⑶下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?①(F0F1)H(3CD2)H②(2856)H

③(6FD6)H④(1C2)H02二月20234.3指令和数据的寻址方式[解]:

⑴第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。

02二月20234.3指令和数据的寻址方式⑵处理机完成第一种指令所花时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。02二月20234.3指令和数据的寻址方式⑶根据已知条件:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换成二进制代码且比较后可知:①(F0F1)H(3CD2)H

指令代表LDA指令,编码正确,其含义是把主存(13CD2)H地址单元的内容取至15号寄存器。②(2856)H

指令代表MOV指令,编码正确,含义是把6号源寄存器的内容传送至5号目标寄存器。02二月20234.3指令和数据的寻址方式③(6FD6)H是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H④(1C2)H

是单字长指令,代表MOV指令,但编码错误,可改正为(28C2)H

。02二月20234.4典型指令一、指令的分类1.数据传送指令数据传送指令主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等等。这类指令主要用来实现主存和寄存器之间,或寄存器和寄存器之间的数据传送。02二月20234.4典型指令2.算术运算指令这类指令包括二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术运算,大型机中有向量运算指令,直接对整个向量或矩阵进行求和、求积运算。02二月20234.4

温馨提示

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

最新文档

评论

0/150

提交评论