理学组成原理_第1页
理学组成原理_第2页
理学组成原理_第3页
理学组成原理_第4页
理学组成原理_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

一、机器指令

从计算机的层次结构来说,计算机指令有微指令、机器指令和宏指令之分。一台计算机中所有机器指令的集合称为这台计算机的指令系统。

指令系统是计算机硬件的语言系统,因此也叫做机器语言。指令系统是软件和硬件的主要交界面,指令系统表征了计算机的基本功能,决定了机器硬件所具有的能力,也决定机器的硬件结构。对指令系统的要求完备性:

指令齐全,编程方便高效性:占内存少,运行省时规整性:指令与运算规则统一兼容性:新旧机指令软件兼容当前的计算机指令系统,从其构成的复杂和完备程度,或者说设计中追求的不同的目标区分,可分为CISC和RISC两类:

RISC(ReducedInstructionSetComputer),通常称为精简指令系统的计算机,只有数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路中芯片内制做出来。

CISC(ComplexInstructionSetComputer),通常称为复杂指令系统的计算机,是相对于RISC一词而提出来的一种说法。其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多。返回

指令字长指一条指令中包含的二进制码位数。

指令字长选取原则:

(1)

长度尽可能短,以节省存储空间和提高处理速度;

(2)

指令中各信息位利用率尽可能高。

常见结构:

(1)

等长指令字结构:指令系统的所有指令长度相等。特点:结构简单,通常取:指令字长=机器字长。

(2)

变长指令字结构:各种指令长度不等,如半字长、单字长、双字长等等。特点:结构灵活,能充分利用指令信息位,但指令的分析复杂。指令字长

操作码字段地址码字段返回指令的一般格式:机器指令格式

操作码:表示指令的操作性质,即指令要完成的功能。

地址码:指出操作数的地址,即指令操作对象所在的位置。

指令地址码字段的格式通常按所能给出的操作数地址的个数进行安排。常用的有以下格式。

1、三地址指令

操作码

A1A2A3

(A1)OP(A2)→A3

指令中的三个地址,既可以是内存地址,也可以是通用寄存器号,根据操作数所处位置有: 存储器—存储器型(SS型)指令 寄存器—寄存器型(RR型)指令 存储器—寄存器型(SR型)指令地址码字段

3、一地址指令

操作码

A

(AC)OP(A)→AC

4、零地址指令

操作码适用于控制类指令或堆栈结构计算机,

(SP)OP(SP-1)→SP-1

2、二地址指令

操作码

A1A2

(A1)OP(A2)→A1

为了表示不同功能的指令,指令格式中为每一条指令都要安排一个唯一的操作码。

操作码字段位数选取原则:应能表示指令系统中的全部指令。

常用操作码格式:

1、定长操作码 指令系统中所有指令的操作码位数一致。

特点:译码结构简单,译码时间短。常用于字长较长的大、中型机。操作码字段

2、可变长操作码

指令系统中各种指令的操作码位数不一致。

特点:可充分利用指令信息位,有效地压缩操作码的平均长度。广泛用于字长较短的小、微型机。

操作码的扩展方法

思想:当指令总长度不变,且多种地址码结构混合使用时,可使用地址码个数较少的指令空出的地址码部分,来增加操作码的位数。指令操作码扩展方法举例151211650

OP

A1

A2

1111000000A

1111000001A

﹕1111111110A

10位操作码

26-1=63条一地址指令

1111111111

000000

1111111111

000001

﹕1111111111

111111

16位操作码

26=64条零地址指令

0000A1A2

0001A1A2

1110A1A2

4位操作码

24-1=15条二地址指令

操作数类型:

地址:在指令中出现为了获得操作数,可看作无符号整数。

数字:包括定点数、浮点数和十进制数。

字符:包括单字符、字符串和文本。逻辑数:逻辑数形式上与数值数据无区别,但逻辑数n位间无数值和位权关系,运算时按位进行。二、操作数类型和操作类型

机器字长指CPU一次能处理数据的最长位数。为了支持各种不同数据类型,每台处理器能处理多种不同字长数据。例如Pentium可处理数据字长有:8(字节)、16(字)、32(双字)、64(四字);PowerPC可处理8(字节)、16(半字)、32(字)、64(双字)。不同字长的数据在内存存放有两种方式,即边界对准和边界不对准。数据在存储器中的存放方式:

机器字长和存储字长均为32位,若CPU可处理字节、半字、字和双字,采用“边界对准”方式时,不同字长数据在内存存放形式如下:双字字(地址8)字(地址0)字节(地址7)字节(地址5)字节(地址6)字节(地址4)半字(地址14)半字(地址12)0双字(地址16)81216204

字节存放次序可按低位字节低地址或低位字节高地址两种方式存放。当所存储数据不能满足此要求时,可填充一至多个空白字节。字(地址8)字(地址0)字节(地址5)字节(地址4)半字(地址14)半字(地址12)08124

12字(地址0)字节(地址5)字节(地址4)半字(地址14)半字(地址12)084

字(地址6)字(地址8)半字(地址10)按边界对准方式,且低位字节放在低地址。按边界不对准方式,且低位字节放在低地址。特点:存储空间利用率高,但存取速度受到影响。

1、数据传送

包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元。操作类型(指令类型)

2、算术逻辑运算

包括定点算术运算、浮点算术运算、逻辑运算和位操作。

3、移位操作

包括算术移位、逻辑移位和循环移位。

4、程序转移

无条件转移 条件转移

子程序调用与返回 中断及中断指令

5、输入输出

对于I/O独立编址的计算机,通常设有专门的I/O指令,完成CPU和I/O间的数据传送。

6、其它

包括停机指令、空操作指令、开/关中断指令和置条件码指令等。

寻址方式(又称编址方式)指的是确定本条指令的数据地址(数据寻址)及下一条要执行的指令地址(指令寻址)的方法。不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址(或有效地址)。返回三、寻址方式

指令的寻址方式反映了程序的运行轨迹。

1、顺序寻址

通过程序计数器PC加1,自动形成下一条指令的地址。

2、跳跃寻址

对应于程序转移执行的方式,下一条指令的地址由转移类指令直接指出,而不是由PC顺序计数提供。PC内容按转移地址重新设置。指令的寻址方式在指令的操作数地址字段,可能要指出:

①运算器中的累加器的编号或专用寄存器名称(编号)

②输入/输出指令中用到的I/O设备的入出端口地址

③内存储器的一个存储单元(或一I/O设备)的地址数据的寻址方式

现在的计算机中,寻址方式较多,为了正确、有效地获得操作数,通常在指令中安排几位标志位表示所用的寻址方式,称为“寻址方式码”或“寻址特征码”。指令格式如下:

有多种基本寻址方式

和某些符合寻址方式,简介如下:

操作码

寻址特征1D1寻址特征2D21、立即数寻址

所需的一个操作数在指令的地址码部分直接给出。

适用于操作数固定的情况,提高了指令的执行速度。

返回OPDesImme.DataMod源操作数说明立即寻址只能作为双操作数指令的源操作数。Operand=Imme.Data例:MOVAX,1000H2、存储器直接寻址返回

操作数在存储器中,指令地址字段直接给出操作数在存储器中的地址。OPDesAModData说明EA=A,Operand=(A)例:MOVAX,[1000H]存储器A3、寄存器直接寻址返回

指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这一寄存器中。OPDesRiMod说明EA=Ri,Operand=(Ri)例:MOVAX,[1000H]…

Data寄存器…

Ri

指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数地址的地址。分为一次间接或多次间接寻址。4、存储器间接寻址

返回OPDesA1Mod说明EA=(A1),Operand=((A1))例:MOVR1,@(1000H)

(PDP-11的指令)DataA2存储器A2A1………

指令地址码字段给出某一通用寄存器的编号(地址),该寄存器中存放的是操作数在内存储器中所在单元的地址。5、寄存器间接寻址返回OPDesRiModA寄存器RiData存储器A……

说明EA=(Ri),Operand=((Ri))例:MOVAX,[BX]

操作数在存储器中,指令地址字段给出一基址寄存器和一形式地址,基变址寄存器的内容与形式地址之和是操作数的内存地址。6、基址寻址

返回OPDesAModRbN寄存器Rb+DataA+N存储器AA+1…

说明EA=(Rb)+A,Operand=((Rb)+A)例:MOVAX,1000H[BX]主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。7、变址寻址

返回

操作数在存储器中,指令地址字段给出一变址寄存器和一形式地址,变址寄存器的内容与形式地址之和是操作数的内存地址。OPDesAModRxN寄存器Rx+DataA+N存储器AA+1…

说明EA=(Rx)+A,Operand=((Rx)+A)有的系统中,变址寻址完成后,变址寄存器的内容将自动进行调整。Rx(Rx)+∆(操作数Data的字节数)例:MOVAX,1000H[DI]

主要用于对数组操作和串操作P316表7.1

操作数(或指令)的地址由程序计数器PC的内容(即当前执行指令的地址)和指令的地址码相加得到。8、相对寻址

返回OPDesAModNPC+说明EA=(PC)+A,Operand=((PC)+A)例:JNEA主要用于转移指令,对浮动程序很有用。DataA+N存储器AA+1…

P317例子

堆栈是一种存储装置,它依据“后进先出(LIFO)”的原则存储数据,有寄存器堆栈和存储器堆栈,目前通常使用存储器堆栈。存储器堆栈是在主存中开辟一块区域,该区域一端固定,称为栈底;一端是浮动的,称为栈顶,栈顶是数据唯一的出入口。堆栈指针始终指向栈顶。

9、堆栈寻址

返回

主要有两种堆栈的结构:

空栈情况非空栈情况xx...x堆栈指示器SPxx...x栈长栈底/栈顶存储器Ac-1堆栈指示器SP栈底存储器AaAbAcacb栈顶压栈操作(PUSH):

SPSP-1。(SP)

数据,出栈操作(POP):(SP)出栈。

SPSP+1,高址低址

空栈情况非空栈情况xx...x堆栈指示器SPxx...x栈长栈底/栈顶存储器Ac堆栈指示器SP栈底存储器AaAbAcacb栈顶压栈操作(PUSH):

SPSP-1,(SP)

数据。出栈操作(POP):(SP)出栈。

SPSP+1,高址低址PDP-11指令简介 PDP-11是美国60年代初期定型的16位小型机,曾被广泛应用。采用单总线(UNIBUS)结构,CPU内有8个通用寄存器(含PC、SP)。该机指令的特点是:可以按字或字节寻址,指令中分为处理字或字节数据的两类指令操作码使用逐段扩展技术,在很短的指令字中充分发挥每位作用。在操作数地址部分,采用统一寻址方式访问通用寄存器、主存及外围设备,没有专门的I/O指令;指令的一个操作数的地址用6位表示,如右图所示:ModRi3位八种方式3位共八个通用寄存器(包括SP,PC)

Mod

Ri000RiRi中的内容即为操作数010(Ri)+Ri中的内容为操作数的地址,用后再将Ri的内容+1或+2100-(Ri)先将Ri中的内容-1或-2,再用作为操作数的地址110X(Ri)将Ri中的内容与X相加的和作为操作数的地址001(Ri)011@(R)+101@-(Ri)111@X(Ri)寻址方式编号是奇数的模式为间接寻址。8种寻址方式返回

当Ri为程序计数器PC(R7)

时,不能使用2、3、6、7

这四种方式:

010

111(R7)+110

111X(R7)

011

111@(R7)+111

111@X(R7)Mod7

2#n立即数,#n为指令的第二个字

3@#A绝对地址,#A为指令的第二个字

6A相对寻址

Inst.Addr.+4+X7@A间接相对寻址X在指令的第二个字此时可以将这四种寻址方式转义用于另外的目的,对操作数形式地址27、37、67、77的具体规定:返回

Mod

Ri

Mod

Rj

OP(1)双操作数指令

四位六位六位为增加操作码长度,采用操作码逐段扩展技术。双操作数指令操作码用4位,从0001-0110,1001-1110,剩下4个码点00,07

和10,17

用于扩展操作码到更多位;01SSDDMOV02SSDDCMP03SSDDBIT04SSDDBIC05SSDDBIS06SSDDADD11SSDDMOVB12SSDDCMPB13SSDDBITB14SSDDBICB15SSDDBISB16SSDDSUB返回

Mod

Rj

OP(2)单操作数指令

十位六位为增加操作码长度,采用操作码逐段扩展技术。单操作数指令的操作码用10位,从0050-0057,1050-1057,剩下二个码点

07,17

用于把操作码扩展到7位或更多位;0050DDCLR0051DDCOM0052DDINC0053DDDEC0054DDNEG0055DDADC0056DDSBC0057DDTST0001DDJMP0030DDSWAP1050DDCLRB1051DDCOMB1052DDINCB1053DDDECB1054DDNEGB1055DDADCB1056DDSBCB1057DDTSTB返回

Mod

Rj

OP

单操作数指令(续)NN

十位六位为增加操作码长度,采用操作码逐段扩展技术。单操作数指令的操作码用10位给出,编码从0060-0067,1060-1063,操作书地址用6位给出0060DDROR0061DDRPL0062DDASR0063DDASL0064NNMARK0065SSMFPI0066DDMTPI0067DDSXT1060DDRORB1061DDROLB1062DDASRB1063DDASLB1065SSMFPD

1066DDMTPD返回

OP(3)无操作数指令

十六位为增加操作码长度,采用操作码逐段扩展技术。

无操作数指令操作码16位,例如,000000~000006等码000000HALT000001WAIT000002RTI000003BPT000005IOT000005RESET000006RTT000240NOP104000EMT104377104400TRAP104777返回

Ri

Mod

Rj

OP(4)其它特殊指令NN

七位三位六位为增加操作码长度,采用操作码逐段扩展技术。①双操作数,操作码用7位给出,但其中一个只用Ri表示:

004RDD,077RNN分别为SOB、JSR指令,

070RSS~074RSS分别为MUL、DIV、ASH、ASHC、XOR②单操作数。操作码用13位,一个操作数只用Ri表示00020R为RTS,07500R~07501R为FADD、FSUB00023N为

SPL,07502R、07503R为FMUL、FDIV

Rj

OP

十三位三位N返回③相对转移指令,操作码用7位给出,转移偏移量用8位补码

OP

其它特殊指令(续)

八位八位为增加操作码长度,采用操作码逐段扩展技术。XXX0004XXXBR0010XXXBNE0014XXXBEQ0020XXXBGQ0024XXXBLT0030XXXBGT0034XXXBLE1000XXXBPL1004XXXBMI1010XXXBHI1014XXXBLOS1020XXXBVC1024XXXBVS1030XXXBCC、BHIS1034XXXBCS、BLD返回

Mod

Ri

Mod

Rj

OP

指令格式小结:

四位六位六位

Ri

Mod

Rj

OP(7)

Mod

Rj

OP(10)

Rj

OP(13)

OP(16)

OP(8)为增加操作码长度,采用操作码逐段扩展技术NN

OP(10)N

OP(13)XXX返回指令格式设计P323例7.4RISC技术

由于历史的原因,计算机的指令系统为了适应程序的兼容性、编程的简洁性和硬件系统功能的完善性,把以前用软件可以实现的功能改为用指令实现,使得计算机指令系统越

温馨提示

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

评论

0/150

提交评论