第四章 指令系统2015年_第1页
第四章 指令系统2015年_第2页
第四章 指令系统2015年_第3页
第四章 指令系统2015年_第4页
第四章 指令系统2015年_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第四章指令系统4.1指令系统的发展与性能要求4.1.1指令系统的发展计算机的程序是由一系列的机器指令组成的。指令就是指挥计算机执行某种操作的命令。从计算机组成的层次结构来说,指令可以分为:1.微指令是微程序级属于硬件2.宏指令由若干条机器指令组成属于软件3.机器指令介于上述两者之间通常称为指令每一条指令可以独立的完成一个算术运算或逻辑运算。4.1指令系统的发展与性能要求4.1.1指令系统的发展一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。早期的计算机,由于硬件结构简单,指令系统就只有定点加减、逻辑运算、数据传送、转移等几十条指令。60年代,随着集成电路的出现,又设置了乘除运算、浮点运算、十进制运算、字符串处理等指令,达一二百条。4.1指令系统的发展与性能要求4.1.1指令系统的发展

70年代末期,随着VLSI技术的发展,大多数计算机的指令系统多达几百条。称为复杂指令系统计算机,简称为CISC。但CISC的研制周期长,难以保证正确性,不易调试,很多指令使用频率低且造成硬件资源浪费。为此又提出了精简指令系统计算机,简称RISC。4.1指令系统的发展与性能要求4.1.2对指令系统性能的要求一个完善的指令系统应满足如下四个方面的要求:1.完备性:指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用。2.有效性:指该指令系统所编写的程序能够高效的运行。占空小、速度快。3.规整性:指指令系统的对称性、匀齐性、指令格式和数据格式的一致性。4.兼容性:同一系列的不同机型,指令系统兼容。但不同机型在结构和性能上有差异,完全兼容是不可能的。只能做到“向上兼容”。4.2指令格式

一条指令应提供两方面的信息:1、是指明操作的性质,即干什么工作2、指明操作数的来源,地址指令的基本格式如下:在指令格式设计时应相应地考虑如下问题:①指令字长需要多少位,是定字长还是变字长;②操作码是定长还是扩展,是一段还由若干段组合;③地址结构:一条指令的执行涉及到哪些地址,在指令中给出哪些地址,哪些地址隐含的约定;操作码字段OP地址码字段A4.2指令格式④寻址方式:如何获得操作数地址,是直接给出还是间接给出,或是经过变换计算获得等。4.2指令格式4.2.1指令字长度1、一条指令字中包含二进制代码的位数,称为指令字长度。指令字越长→表示的信息越多,功能越丰富,→占用空间就越多→读取的时间越长。指令字越短→表示的信息越少,功能越简单,→占用空间就越少→读取的时间越短。

4.2指令格式

4.2.1指令字长度2、机器字长:是指计算机能直接处理的二进制数据的位数,一般与主存单元的位数一致。由指令字长和机器字长之间的关系又可分为半字长指令、单字长指令,双字长指令。采用单字长指令,则访问内存所花费的时间短。采用多字长指令,可以有足够的地址位来解决访问内存任何单元的寻址问题,但缺点是必须两次或多次访问内存,浪费时间,且又占用了更多的内存空间。4.2指令格式4.2.1指令字长度3、固定字长和变字长指令⑴如果各种指令字长度是相等的,称为等长指令字结构。特点:结构简单、易于硬件实现;⑵如果各种指令字长度是随指令功能而变化,称为变长指令字结构。特点:能充分利用指令长度、但指令的控制较复杂。早期计算机如NOVA系列,采用定字长指令格式,每条指令16位。现代计算机广泛应用变字长指令,例如,IBM370系列,它的指令格式有16位(半字)的,有32位(单字)的,还有48位(一个半字)的。Pentium系列机,指令格式也是可变的:有8位、16位、32位、64位不等。4.2.2操作码格式指令的操作码OP表示指令应进行什么性质的操作。操作码的位数决定了该操作类型的多少。操作码字段不同的编码表示不同的操作。操作码大致有以下两种:1.定长操作码:该操作码的位数与位置固定,通常占据指令最前面的几位。特点:便于硬件设计和指令译码时间短。该方式广泛用于字长较长的、大中型计算机和小型计算机以及RISC中。例如:IBM370和VAX-11系列机,操作码长度均为8位。

4.2指令格式2、扩展操作码对于操作码长度不固定的指令,其操作码分散在指令的不同字段中。这种格式可有效地压缩操作码的平均长度,在字长较短的微型机中广泛采用。例如PDP-11、Intel8086/80386等,操作码的长度是可变的。操作码长度可变使控制器设计复杂化。通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以有不同的操作码,从而有效的缩短指令字长。4.2指令格式2、扩展操作码

设某机器的指令长度为16位,有4位基本的操作码字段和两个6位地址码字段,其格式如下:OPA1A21512116504.2指令格式①.二地址指令只用15条,由4位基本操作码0000-----1110组合给出,剩余一个1111用于把操作码扩展到A1。②.单地址指令由操作码1111000000----1111111110给出,剩余一个1111111111用于把操作码扩展到A2。③.零地址的16位操作码由1111111111000000-----1111111111111111给出。二地址指令有15条,单地址指令有63条,零地址指令有64条,共计142条指令。4.2指令格式4.2.3地址结构

根据指令中地址数的多少可分为几地址指令。一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。现在又发展成为二地址格式、一地址格式和零地址格式。⑴零地址格式:只有操作码,没有地址码。如停机指令。⑵一地址指令:只有一个地址码,另一个操作数地址隐含指定,如累加器AC。(AC)OP(A)→AC4.2指令格式4.2.3地址结构

⑶二地址格式:它有两个操作数地址字段A1和A2。(A1)OP(A2)→A1⑷三地址格式:它有三个操作数地址字段A1、A2和A3。(A1)OP(A2)→A34.2指令格式4.2.3地址结构从操作数的物理位置来说,又可分为三种类型:第一种:访问内存的指令格式,存贮器——存贮器SS型第二种:访问寄存器的指令格式,寄存器——寄存器RR型第三种:寄存器——存贮器RS型请问哪种速度最快?哪种最慢?RR型最快,SS型最慢,4.2指令格式4.2.4指令助记符

由于硬件只能识别1和0,所以采用二进制操作码是必要的,但书写程序十分麻烦。为了便于书写和阅读程序,每条指令通常用几个英文缩写字母来表示,可以望文生义,这种缩写码叫指令助记符。例如:ADD001SUB010MOV0114.2指令格式指令格式举例不同的机器有不同的指令格式1、IBM370的指令格式。IBM370曾经是大型机的重要代表,它根据操作数的不同来源,分为:RR(寄存器——寄存器)型;RS(寄存器——存贮器)型;RX(寄存器——变址存贮器)型;SI(寄存器——立即数)型;SS(存贮器——存贮器)型;指令字长度可变,但操作码长度不变。相应地设置了5种主要的指令格式如下:

4.2指令格式RR格式(16位)264400OPRiRjRX格式(32位)264441201OPRiRxRbD4.2指令格式RS格式(32位)264441210OPRiRjRbDSI格式(32位)26841210OPIRbD4.2指令格式SI格式(48位)26841241211OPLRb1D1Rb2D2上图中,Ri,Rj为16个通用寄存器中的任意两个寄存器号,分别用4位字段表示。Rx——为变址寄存器号Rb——为基址寄存器号D——为位移量,占12位I——为立即数,占8位L——可以是一个8位字段或两个4位字段,用来指定一个或两个操作数的长度。4.2指令格式2、PDP-11指令格式PDP-11曾是16位机的典型代表,其指令的基本字长为16位,但根据不同的寻址方式,在16位指令字之后还可以跟2~4字节的存贮器地址,采用了扩展操作码的方法。下面介绍了几种16位的指令字格式。

4.2指令格式15121198 65320①操作码

寻址方式寄存器号寻址方式寄存器号159865320②操作码寄存器号寻址方式寄存器号

159865320③操作码寄存器号寻址方式4.2指令格式

15870④操作码位移量

15540⑤

操作码条件码4.2指令格式3、MIPSR4000指令格式

MIPSR4000是上世纪80年代后期推出的RISC计算机系统,指令字长32位,操作码字段固定6位,没有专门的寻址方式字段,由指令格式确定各操作数的寻址方式。它指令格式简单、指令数量少,32个通用寄存器。其算术指令格式(R型)如下:6位5位5位5位5位6位oprsrtrdshamtfunct4.2指令格式3、MIPSR4000指令格式在MIPS中,访问存储器需要使用数据传送指令。此时的指令格式,称为I型(立即数)指令,其指令格式如下:6位5位5位16位oprsrt常数或地址4.2指令格式3、MIPSR4000指令格式J型指令主要是无条件跳转指令,指令中给出的是26位直接地址,只要将当前PC的高4位拼接上26位直接地址,最后添上两个“0”就可以得到32位的跳转目标地址。其指令格式如下:

6位26位op直接地址4.2指令格式3、MIPSR4000指令格式部分MIPS指令字段值指令格式oprsrtrdshamtfunct常数或地址addR0regregreg032subR0regregreg034立即数加I8regreg常数lwI35regreg地址swI43regreg地址4.2指令格式[例1]假定C语言赋值语句“f=(g+h)-(i+j);”中变量i、j、f、g、h由编译器分别分配给MIPS寄存器﹩t0~﹩t4(其寄存器编号对应为8~12)。要求给出该语句编译后的MIPS机器代码和汇编表示。4.2指令格式[解]:

只要用三条R型指令即可,两条add和一条sub.Add﹩t5,﹩t3,﹩t4#g+h00000001011011000110100000100000Add﹩t6,﹩t0,﹩t1#i+j00000001000010010111000000100000sub﹩t2,﹩t5,﹩t6#f=(g+h)-(i+j)000000011010111001010000001000104.2指令格式[例2]指令格式如下所示,其中OP为操作码,试分析指令格式的特点。1597430

OP--------源寄存器目标寄存器[解]:

(1)单字长二地址指令。(2)操作码字段OP可以指定128条指令。(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。(4)这种指令结构常用于算术逻辑运算类指令。

4.2指令格式[例3]指令格式如下所示,OP为操作码字段,试分析指令格式特点。15107430

OP--------源寄存器变址寄存器位移量(16位)

[解]:

(1)双字长二地址指令,用于访问存储器。(2)操作码字段OP为6位,可以指定64种操作。(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)所以是RS型指令。4.3指令和数据的寻址方式4.3.1指令的寻址方式一种是顺序寻址方式,另一种是跳跃寻址方式。1.顺序寻址方式指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,在执行第二条指令;接着再取出第三条指令……这种程序顺序执行的过程,我们称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址.4.3指令和数据的寻址方式2.跳跃寻址方式

当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。4.3指令和数据的寻址方式4.3.2操作数的寻址方式隐含寻址立即寻址直接寻址间接寻址寄存器寻址方式寄存器间接寻址方式基值寻址方式变址寻址方式相对寻址方式4.3

指令和数据的寻址方式隐含寻址这种类型的指令,不是明显地给出操作数的地址,而是指令中隐含着操作数的地址。4.3指令和数据的寻址方式立即地址

指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。例如:

#表示立即寻址的特征,A表示立即数。优点:操作数在指令中,可立即获得,不必访问存储器;缺点:A的位数限制了立即数的范围。OP#A4.3指令和数据的寻址方式直接寻址直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址字段中直接指出操作数在内存的地址A。由于操作数的地址直接给出而不需要经过某种变换或运算,所以称这种寻址方式为直接寻址方式。

操作数=2000HOPXA=1350H。2000H1350H4.3指令和数据的寻址方式直接寻址优点:寻找操作数简单,对主存的访问只需要一次。缺点:在于A的位数限制了操作数的寻址范围,直接寻址的地址不能修改,使程序不能灵活地处理数组以及方便地实现程序循环,程序的位置也不能在存贮器中浮动,给多道程序的运行和管理带来不便。4.3指令和数据的寻址方式间接寻址

间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址A不是操作数的真正地址,而是操作数地址的指示器,或者说A单元的内容才是操作数的有效地址。一般要设置一个寻址特征位给予指示。优点:1.扩大了操作数的寻址范围;2.便于编制程序;缺点:指令执行时需要两次或多次访问存储器,使指令执行时间延长。4.3指令和数据的寻址方式操作数=1234HOPX2A=1000H

操作数地址=2000HS=1234H1000H2000H4.3指令和数据的寻址方式

寄存器寻址方式

当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。

优点:⑴不需要访问存储器,减少了执行时间;

⑵指令字较短。4.3指令和数据的寻址方式寄存器间接寻址方式

寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。4.3指令和数据的寻址方式基址寻址方式:目的是为了扩大操作数的寻址空间。基址寄存器的位数可以大于形式地址A的位数。格式:OPRbAA为位移量有效地址=(Rb)+A

基址寻址方式可以便于实现对较大主存空间的访问。例如,将主存空间分段,每个段首地址存放在基址寄存器中,段内的位移量由形式地址A指出。只要对基址寄存器的内容修改,便可访问主存的任何一个单元。4.3指令和数据的寻址方式基址寻址方式

基址寄存器在多道程序中很有用。用户程序存放在哪个段,由操作系统决定,基址寄存器由操作系统赋值,用户不必关心。用户只需修改位移量A。基址寄存器应能提供全字长地址码,能够指向主存的任一单元。位移量不必是全字长,这是由于程序运行时的区域局限性所定。4.3指令和数据的寻址方式变址寻址方式:变址方式是为了灵活的修改地址以适应连续区间的操作格式:OPRxAA为形式地址,应该提供全字长的地址码,能够指向主存的任一单元。它的位数应该较长。

有效地址=(Rx)+A例如对一个数组进行操作时,可以将该数组的首地址作为形式地址,变址寄存器中存放位移量,通过修改变址寄存器的内容,可以访问数组中任何一个元素。

4.3指令和数据的寻址方式变址寻址方式变址寻址方式虽然与基址寻址方式极为相似,但应用场合不同,有较大区别。基址寻址方式主要用于为程序或数据分配存储空间,Rb的内容由操作系统决定,在程序执行过程中是不变的,而指令中的位移地址A是可变的。变址寻址方式中,变址寄存器中的内容是由用户设定的,在程序执行中可变,而指令中的位移地址A是不变的。主要用于处理数组问题,特别适合编制循环程序。4.3指令和数据的寻址方式基址加变址方式结合了两者的优点有效地址=(基址量)+(变址量)+位移量这样的寻址方式可以方便的处理两维数组。例如让基址寄存器内容指向数组起始端,基址加位移量为其一行数组的起点,而变址寄存器的内容为一行数组中元素与起点间的距离。

4.3指令和数据的寻址方式相对寻址是把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数有效地址。程序计数器的内容就是当前指令的地址。因此,所谓“相对”寻址,就是相对于当前指令地址而言。采用相对寻址方式的好处是程序员勿需用指令的绝对地址编程,因而所编程序可以放在内存任何地方。4.3指令和数据的寻址方式

PC操作数=1234H+假设A=1000H,PC=2000H,则有效地址=(PC)+A=2000H+1000H=3000H操作数=(3000H)=1234HOPX3A1234H3000H例题:设相对寻址的转移指令占3个字节,第一个字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中以低字节地址为字地址的存放方式。每当CPU从存储器取出一个字节时,就自动完成(PC)+1→(PC)问:(1)若PC当前值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是什么?(2)若PC当前值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是什么?解:(1)当前PC=240,取出指令后,PC=243,要求转移到290,所以位移量为290-243=47,补码表示为2FH。故该转移指令的第二字节为2FH,第三字节为00H。(2)当前PC=240,取出指令后,PC=243,要求转移到200,所以位移量为200-243=-43,补码表示为D5H。故该转移指令的第二字节为D5H,第三字节为FFH。4.3指令和数据的寻址方式在设计指令系统中,需要考虑两方面:一方面是选取哪些寻址方式才能满足程序需要,又能使编程灵活方便;另一方面是:考虑CPU解释执行的硬件代价,以及执行速度。

思考题2.比较直接寻址、间接寻址、寄存器寻址和寄存器间接寻址、基址寻址的速度快慢。

由快到慢的顺序是:寄存器寻址、直接寻址、寄存器间接寻址、基址寻址和间接寻址4.3指令和数据的寻址方式[例3]一种二地址RS型指令的结构如下所示:6位4位1位2位16位

OP---通用寄存器IX偏移量A其中I为间接寻址标志位,X为寻址模式字段,A位偏移量字段。通过I,X,A的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名称。寻址方式IX有效地址E算法说明(1)000E=A(2)001E=(PC)+/-APC为程序计数(3)010E=(R2)+/-AR2为变址寄存器(4)111E=(R3)(5)100E=(A)(6)011E=(R1)+/-AR1为基址寄存器4.3指令和数据的寻址方式解:

⑴直接寻址⑵相对寻址⑶变址寻址⑷寄存器间接寻址⑸间接寻址⑹基址寻址4.3指令和数据的寻址方式[例4]某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。4.3指令和数据的寻址方式1510987430OP---目标源MOVS,DOP基址源变址STAS,M位移量OP---目标LDAS,M20位地址4.3指令和数据的寻址方式要求:⑴分析三种指令的指令格式与寻址方式特点。⑵CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?⑶下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?①(F0F1)H(3CD2)H②(2856)H③(6FD6)H④(1C2)H4.3指令和数据的寻址方式⑴第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。

4.3指令和数据的寻址方式⑵处理机完成第一种指令所花时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。4.3指令和数据的寻址方式

⑶根据已知条件知:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换成二进制代码且比较后可知:①(F0F1)(3CD2)H指令代表LDA指令,编码正确,其含义是把主存(13CD2)H地址单元的内容取至15号寄存器。②(2856)H指令代表MOV指令,编码正确,含义是把5号源寄存器的内容传送至6号目标寄存器。4.3指令和数据的寻址方式③(6FD6)H是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H④(1C2)H是单字长指令,代表MOV指令,但编码错误,可改正为(28C2)H。作业P137第1、5、8、9题

4.4堆栈寻址方式一、串联堆栈串联堆栈一般是由一组专门的寄存器组成,通常为8个或16个,数量较少,但速度很快。..\..\..\组成原理-白中英网络版\Chap04\images\4.7.swf

4.4堆栈寻址方式二、存贮器椎栈串联堆栈的缺点:①堆栈的数目有限②串联堆栈的读出是破坏性的③当进栈的数目大于堆栈本身的数量单元时,“老”的数据就会被破坏。因此,通常在主存中开辟一个堆栈区,一旦设定,该区域就不能作其它用途。为了便于操作,设置一个堆栈指示器SP。进栈:(A)→Msp,(sp)-1→sp出栈:(sp)+1→sp,(Msp)→A..\..\..\组成原理-白中英网络版\Chap04\images\4.8.swf4.5典型指令数据传送类指令算术运算类指令逻辑运算类指令程序控制类指令输入输出类指令字符串处理指令特权指令其他指令4.6CISC和RISC随着计算机发展,都希望新机种能够包含旧机种的所有指令和寻址方式,致使同一系列计算机指令系统变得越来越复杂。例如VAX11/780计算机有303条指令,16种寻址方式。Pentium机也有191条指令,9种寻址方式。这类机器被称为复杂指令系统计算机(CISC)。当指令系统过于复杂时,机器的设计周期会很长,资金耗费也会很大。但是对CISC机的测试表明,最常使用的是一些最基本最简单的指令,仅占指令总数的20%,但在程序中出现的频率却占80%。4.6CISC和RISC人们从80—20规律中得到启示:能否用20%的简单指令,重新组合不常用的80%的指令功能呢?这便引出了精简指令系统计算机(RISC)。其主要特征如下:⑴选取使用频率较高的一些简单指令,复杂指令的功能由简单指令的组合来完成;

⑵指令长度固定,指令格式和寻址方式种类少;

⑶只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。4.6CISC和RISC

⑷CPU中有多个通用寄存器;

⑸采用流水线技术,大部分指令在一个时钟周期内完成;

⑹控制器采用组合逻辑控制,不用微程序控制;

⑺采用优化的编译程序。

4.6CISC和RISC表4.6典型RISC机指令系统的基本特征通用寄型号指令数寻址方式指令格式存器数主频/MHZRISC-I3122788RISC-II392213812MIPS5534164SPARC7543120-13625-33MIPSR300091333225I860653432504.6CISC和RISC的比较与CISC机相比较,RISC机的主要优点有:⑴充分利用了VLSI芯片的面积CISC机大多采用微程序控制器,微程序控制器占CPU芯片面积的50%,而RISC机采用硬布线控制器,只占CPU芯片面积的10%。⑵提高了计算机的速度①RISC机的指令译码比CISC机快。②RISC机中的通用寄存器多,减少了访问内存次数。③RISC机采用寄存器窗口重迭技术。④RISC机采用的是硬布线控制器。⑤精简指令系统适合流水线工作,大多指令在一个时钟周期内完成。4.6CISC和RISC的比较与CISC机相比较,RISC机的主要优点有:⑶便于设计,可降低成本,提高可靠性。RISC机的逻辑简单,设计出错可能性小,有错时也容易发现,可靠性高。⑷有效支持高级语言程序由于RISC指令少,寻址方式少,使编译程序容易选择更有效的指令和寻址方式,而且由于RISC机的通用寄存器多,使编译程序的代码优化效率提高。例1例1,某机字长16位,存贮器直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器均可作为变址寄存器,设计一套指令系统格式,满足下列寻址类型的要求:(1)直接寻址的二地址指令3条(2)变址寻址的一地址指令6条(3)寄存器寻址的二地址指令8条(4)直接寻址的一地址指令12条(5)零地址指令32条试问还有多种代码未用?例1解:(1)直接寻址的二地址指令格式为:

277OPA1A200,01,10共3条(2)变址寻址的一地址指令格式为:

547OPRXD11000……11101共6条例1(3)寄存器寻址的二地址指令格式为:

844OPR1R211110000……11110111共8条(4)直接寻址的一地址指令格式为:

97OPA111110000……111111011共12条例1

(5)零地址指令格式为:

16OP1111111000000000……1111111000011111共32条还有29-32=480种代码未用。

例2例2,某机字长32位,CPU内有32个32位的通用寄存器,设计一种能够容纳64种操作的指令系统,设指令字长等于机器字长。(1)如果主存可直接或间接寻址,采用RS型指令,能直接寻址的最大的存储空间是多少?画出指令格式。(2)如果采用通用寄存器作为基址寄存器,则上述RS型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?例2解:根据题意有:(1)61520OPIRDOP为6位,可容纳64种操作;I为1位,为直接或间接寻址方式位;R为5位,为32个通用寄存器的编号;D为20位,为形式地址。这种指令可直接寻址的最大的存储空间是220;例2(2)615515OPIRBDOP为6位,可容纳64种操作;I为1位,为直接或间接寻址方式位;R为5位,为32个通用寄存器的编号;B为5位,为基址寄存器的编号;D为15位,为形式地址。这种指令可寻址的最大的存储空间是232例3例3:若机器采用三地址格式访问存储器指令,试问完成一条加法指令共需要访问几次存储器?若该机共能完成54种操作,操作数可在1K地址范围内寻址,试画出该机器的指令格式。解:依题意义有:6101010OPD1D2D3完成一条加法指令共需要访问4次存储器,一次取指令,两次取操作数,一次存放结果。例4例4:某指令系统字长12位,地址码长3位,试提出一种方案,使该指令系统有4条三地址指令、8条二地址指令、150条单地址指令。解:OPA1A2A3000xxxxxxxxx001xxxxxxxxx010xxxxxxxxx4条三地址指令011xxxxxxxxx

OPA1A2

100

000xxxxxx100

001xxxxxx.8条二地址指令.100

111xxxxxx

OPA1101

000000xxx101

000001xxx.64条单地址指令.101

111111xxx

温馨提示

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

评论

0/150

提交评论