1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第四章 指令系统,1,指令系统定义:,机器指令,要求,硬件直接实现,某种运算或操作的,命令,;,指令系统,所有机器指令的集合,。,指令系统与软硬件关系:,4.1,指令系统组成,指令系统,按约定形成,按约定实现,计算机硬件,计算机软件,应用需求,相一致,执行软件,应用结果,指令系统是,软硬件交界面,2,一、指令功能,1,、指令的操作数,*操作数类型:,所有种类,的,数据表示,,,通常有定点,/,浮点数、逻辑数、字符、,地址,等;,*操作数长度:,部分种类,有,几种长度,,,如定点,/,浮点数及逻辑数等
2、3,2,、指令的操作,*,指令操作类型,软件中,使用频率较高,的,基本操作,;,如数据传送、算逻运算、转移控制等种类,课件约定,第,A,个寄存器,的,地址,用,RA,表示、,内容,用,(RA),表示;,第,A,个主存单元,的,地址,用,A,表示、,内容,用,A,表示;,操作,的,源操作数,用内容表示、,目标操作数,用地址表示,(1),数据传送,*操作功能:,REG,、主存、,I/O,设备间的数据传送;,如,R0(R1),、,R00100H,,各部件均可为目标操作数,*操作数:,8b/16b/,的,信息,(,数值,/,字符,/,地址等,),;,*操作数个数:,2,个,无需区分数据类型,(,无数
3、据运算,),4,(2),算术逻辑运算,*操作功能:,算术运算,加、减、乘、除、,+1,、,-1,、求补等;,如:,R0(R1)+0100H,、,R2(R2)+1,逻辑运算,与、或、非等;,如:,R0(R0)&(R1),、,R0(R0),*,操作数:,算术运算,为,8b/16b/,的有符号,/,无符号定点数,,逻辑运算,为,8b/16b/,逻辑数,,源操作数、目标操作数,的数据类型应相同;,*操作数个数:,1,3,个,(,如,+1,、,CA+B,、,AA+B),;,*操作结果状态:,Z(,是否为零,),、,S(,是否为负数,),、,V(,是否溢出,),、,C(,是否有进位,/,借位,),等,状态
4、产生与保存,由,ALU,产生、用,状态寄存器,保存,关系运算,=,算术运算,+,结果状态,+,逻辑运算,5,(3),转移操作,*操作功能:,改变程序的逻辑顺序,(,即下条指令地址,PC),,,有条件转移、无条件转移、调用、返回等种类;,*操作数:,显式,指令的,绝对地址,或,相对地址,(,偏移量,),,,隐式,状态寄存器的,状态,、堆栈的,顶部内容,;,*显式操作数个数:,1,个或,0,个,6,(4),移位操作,*操作功能:,逻辑左,/,右移、算术左,/,右移、循环左,/,右移等;,*,操作数:,操作数据,8b/16b/,的定点数或逻辑数,,移动位数,8b/16b/,的无符号定点数;,*操作数
5、个数:,2,个,(5),其他类型操作,浮点运算、十进制运算、字符串处理等,7,二、指令格式,*指令格式组成:,由操作码、地址码两个字段组成,操作码字段,地址码字段,*指令格式的相关参数:,即需约定的内容,OP,A,1,A,2,目标地址,(A,1,)OP(A,2,),操作数类型,(,长度,)?,操作类型?,A1/A2?,地址个数,?,操作数对应的部件及地址,?,下条指令地址,?,*指令系统组成:,由若干种机器指令格式组成,第,1,种:,第,2,种:,第,n,种:,A,1,A,2,OP,1,A,OP,2,A,1,A,2,OP,n,注:,各种指令操作码须,互不相同,!,操作数类型为硬件,数据表示,!
6、8,1,、操作码字段,*功能:,用编码指明,(,约定,),操作的性质,包括操作类型、操作数类型及长度,3,个方面;,9,2,、地址码字段,*功能:,用编码指明,各操作数的地址、源,/,目标属性,,指明,下条指令地址;,*地址码个数:,指令系统中,规定,地址码个数的最大值,,不同指令中,用操作码,约定,地址码,个数,;,*地址码源,/,目标属性:,隐含,约定第一个,(,或最后一个,),地址码,,显式,指明;,*操作数地址的表示:,下小节讨论;,*下条指令地址的表示:,当前指令为顺序型,PC=(PC)+,当前指令长度,,,可,隐含表示,当前指令为转移型,PC=IR,中的,(,地址码,),,,需,
7、显式表示;,8,10,3,、指令字,*组成:,由操作码及地址码组成,操作码在指令字前部,;,零地址指令:,单地址指令:,双地址指令:,三地址指令:,OP,OP,A,OP,A,1,A,2,OP,A,1,A,2,A,3,*指令字类型:,按地址个数分,指令字长 机器字长,按指令字长分,指与机器字长的关系,单字长指令、半字长指令、双字长指令等,*指令字结构:,(,指令系统特性,),定长指令字结构,不同指令的指令字长,完全相同,,,变长指令字结构,不同指令的指令字长,不尽相同,11,11,4.2,操作数存放与寻址方式,一、操作数的存放方式,1,、数据在,REG,中的存放方式,基础,通常,REG,长度,C
8、PU,字长,,,REG,按其数量进行编址。,12,2,、数据在存储器中的存放方式,基础,存储字长,最短的,数据长度,;,*存放方式:,存放在,连续存储单元,中,,用,最小单元地址,表示数据地址;,次序,有,大端次序,和,小端次序,两种方式,可任选一种,N,N+1,N+2,N+3,B,B,B,B,数据长度,边界不对齐方式,多体存储器,地址,3 0,7 4,11 8,1512,C(N=3),A(N=0),B(N=1),C(,续,),D(N=7),D(,续,),E(N=9),数,F(N=10),边界对齐方式,A(N=0),B(N=2),C(N=4),D(N=8),E(N=10),F(N=12),多体
9、存储器,边界,有,边界不对齐,和,边界对齐,两种方式,常,选对齐方式,13,3,、数据,(,常数,),在指令中的存放方式,14,4,、堆栈存取方式,*堆栈:,堆栈是一种,按,“,后进先出,”,顺序,存取,的存储区;,*堆栈存取方式:,类似于圆桶中放入,/,取出木板,操作步骤,入栈:,先,移动,栈顶,,再,在栈顶,写入,数据,,出栈:,先,从栈顶,读出,数据,再,移动,栈顶,;,操作类型,入栈,(PUSH/,压栈,),、出栈,(POP/,弹出,),;,空堆栈,A,A,入栈,B,入栈,出栈,(B),A,B,A,存取特征,后进先出顺序、不按地址访问,,破坏性读出,(,只对栈顶操作,),;,6,15,
10、二、寻址方式,*寻址方式:,形成,当前指令操作数或操作数地址,及,下条指令地址,的方式;,*存放数据的部件:,寄存器、主存、,I/O,设备,,堆栈、,IR(,指令中,),;,*,存放指令的部件:,主存;,常采用独立编址,(,均从零开始,),方式,*数据,/,指令的,MEM,地址:,有效地址,(EA),物理地址,(PA),按地址访问,不按地址访问,8,16,1,、指令寻址方式,*指令种类:,顺序型指令、转移型指令;,*指令寻址方式:,顺序寻址,用于顺序型指令的下条指令寻址,隐含寻址,,,下条指令,EA=(PC)+,“,1,”,;,跳跃寻址,用于转移型指令的下条指令寻址,直接寻址,,,下条指令,E
11、A=(,地址码,),;,相对寻址,,,下条指令,EA=(PC)+,偏移量;,显式,隐含寻址,,,下条指令,EA=(,栈顶,),或,(,特定部件,),6,17,2,、数据寻址方式,*目标:,缩短,指令中地址码长度,,方便,编译程序生成代码,*地址码:,由部件及地址形成方式类型、地址形成参数组成,(1),立即寻址方式,常数操作数,为,形式地址本身,,即操作数存放在指令中。,(2),寄存器寻址方式,REG,操作数地址,为,形式地址本身,,即数据,REG,编号。,操作数,数据寄存器,数据,REG,号,操作码,F2 A,操作数,=(A),寻址方式位,I,形式地址,A,地址码组成:,操作数或地址:,=,函
12、数,(,寻址方式位,I,,形式地址,A),21,操作码,F1 A,操作数,=A,操作数,18,(3),直接寻址方式,主存操作数,EA,为,形式地址本身,,即程序逻辑地址。,(4),间接寻址方式,主存操作数,EA,为,形式地址对应的,MEM,内容,。,程序段,主存,操作数,逻辑地址,操作码,F3 A,操作数,EA,=A,主存,逻辑地址,操作数,A,操作数,EA,=A=A,操作码,F4 A,注:,主存操作数寻址方式,多数可用作,指令寻址方式,注:,因需要,2,次访存,,很少使用,(,适合于指向指针的指针操作,),19,(5),寄存器间接寻址方式,主存操作数,EA,为形式地址对应的,地址,REG,内
13、容,。,A,地址寄存器,地址,REG,号,操作码,F5 A,操作数,EA,=(A),程序段,主存,操作数,(6),基址寻址方式,主存操作数,EA,为,基址,REG,内容加上形式地址,的结果。,注:,地址,REG,包含,基址,REG,和,变址,REG,两种类型;,基址寻址,对存储管理特别有效,(,基址,REG,不变,),F6 B,A,操作数,EA,=(B)+A,操作码,程序段,主存,操作数,地址,A,基址寄存器,基址,REG,基址,REG,号,24,20,(8),相对寻址方式,主存中指令,EA,为,PC,内容加上偏移量,的结果。,PC,寄存器,XX,操作码,F8 A,指令,EA,=(PC)+A,
14、程序段,主存,下条指令,(7),变址寻址方式,主存操作数,EA,为,变址,REG,内容加上形式地址,的结果。,F7 I A,操作数,EA,=(I)+A,操作码,数据段,主存,操作数,地址,A,变址寄存器,起址,A,变址,REG,号,21,(9),隐含寻址方式,操作数地址,由,指令操作码,隐含约定,,与地址码无关。,*隐含方式:,操作数,隐含在某,REG,中,;,如,:,(a),基于累加器,CPU,中,指令,AC(AC)+M,隐含,AC,(b),顺序型指令的下条指令,EA=(PC)+1,隐含,PC,操作数,/,操作数地址,/,指令地址,隐含为堆栈中,。,如,:,(a),常用堆栈传递过程调用的参数
15、b),调用,/,返回指令的下条指令地址,22,例,某计算机主存按字节编址、有符号定点数采用原码编码,有基址,REG,和变址,REG,各,1,个,(,分别记为,RB,和,RI),,单地址指令格式如右图所示,设,(RB)=0037H,、,(RI)=1122H,、,(PC)=1234H,,请计算,MEM,中指令内容为,4428H 2244H,1392H 3592H,的操作数或,EA,。,解,指令字,=,0100,01,00,0010,1000B,,,指令字,=,0010,00,10,0100,0100B,,基址寻址,(A=44H),,,指令字,=,0001,00,11,1,001,0010B,
16、变址寻址,(A=92H),,,指令字,=,0011,01,01,1001,0010B,,相对寻址,(A=92H),,,OP,F A,15 10 9 8 7 0,F=00,为立即寻址,,01,为相对寻址,10,为基址寻址,,11,为变址寻址,操作数,原,=A=28H,;,操作数,EA=(RB)+A=0037H+44H=007BH,;,操作数,EA=(RI)+A=1122H+92H=1110H,;,转移目标指令,EA=(PC)+DSP=(1234H+2)-12H=1224H,。,26,27,23,4.3,指令格式举例,一、指令格式目标,1,、指令格式的目标,*对硬件有较好的支持:,有助于减少,译
17、码时间,*对软件有较好的支持:,有助于减少,指令数,及,指令长度,减少指令数,指令功能强、地址码个数多,地址范围大、,寻址方式多、对称性好等,,缩短指令长度,地址码个数少、范围小,冗余空间小等;,减少译码时间,指令格式规整、地址码并行译码、,操作数地址形成简单等。,24,2,、指令格式优化方法,指令格式目标的矛盾,软件目标,硬件目标,减少指令数缩短指令长度,采用扩展操作码编码方式;,*遵循大概率事件优先原则:,利于提高性能,/,价格,可以减少指令数、缩短指令长度,减少译码时间,高频率操作,(,或数据类型等,),才采用硬件,(,机器指令,),实现;,根据每种操作相关参数的使用频率,确定该操作的地
18、址码个数、寻址方式、地址范围等,25,二、,Pentium,指令系统,1,、寻址方式,共支持,9,种,寻址方式,,多数指令,使用多种,寻址方式。,寻址方式,操作数或地址,操作数存放部件,立即寻址,操作数,=,指令中立即数,IR,中,寄存器寻址,操作数,=(R),寄存器中,直接寻址,EA=A,存储器中,基址寻址,(,含变址寻址,),EA=(B),,或,EA=(I),基址,+,偏移寻址,EA=(B)+A,,或,EA=(I)+A,基址,+,变址,+,偏移寻址,EA=(B)+(I)+A,比例变址,+,偏移寻址,EA=(I),S+A,基址,+,比例变址,+,偏移寻址,EA=(B)+(I),S+A,相对寻
19、址,EA=(EIP)+A,说明:,通用寄存器,R,EAX,、,EBX,、,ECX,、,EDX,、,ESP,、,EBP,、,ESI,、,EDI,;,基址寄存器,B,EBX,、,EBP,;,变址寄存器,I,ESI,、,EDI,;,A,偏移地址或偏移量;,EIP,程序计数器;,S,比例因子,26,三、,Power PC,指令系统,1,、寻址方式,共支持,6,种寻址方式,多数指令,只使用,1,2,种,。,可简化硬件设计,寻址方式,操作数或地址,应用指令类型,存放部件,立即寻址,操作数,=,指令中立即数,算逻指令,IR,中,寄存器寻址,操作数,=(R),算逻指令,寄存器中,绝对寻址,EA=A,转移指令,
20、存储器中,相对寻址,EA=(PC)+A,转移指令,间接寻址,EA=(B)+A,转移指令、装入指令,间接变址寻址,EA=(B)+(I),装入指令,说明:,通用寄存器,R,共,32,个;,基址寄存器,B,32,个通用寄存器中任意一个;,变址寄存器,I,32,个通用寄存器中任意一个。,27,4.4,指令系统发展,系统性能,/,价格与指令系统:,软硬件与指令系统:,指令系统是软硬件的主要交界面;,指令系统,CISC,RISC,降低价格,减少,程序中指令数量,;,增加,指令的功能及种类,提高性能,提高,指令的执行速度,。,减少,指令的功能及种类,28,一、,CISC,的指令系统,(Complex Ins
21、truction Set Computer),*,CISC,指令系统的目标:,侧重强化指令功能,,以减少目标代码空间,*,CISC,指令系统的应用特点:,程序目标代码空间较小;编译程序的设计复杂;,指令的实现控制复杂,不利于,VLSI,、流水、并行,*,CISC,指令系统特征:,采用变长指令字结构;,利于提高可扩展性、实现兼容性,指令种类较多、格式复杂,支持多种寻址方式;,大多为,REG-MEM,型指令;,使用少量寄存器;,指令执行时间较长,(,通常为几个几十个,T,C,),29,二、,RISC,的指令系统,(Reduced Instruction Set Computer),*,RISC,指
22、令系统特征:,采用定长指令字结构;,指令种类较少、格式简单,支持少量寻址方式;,除,LOAD/STORE,外,基本上全部是,REG-REG,型指令;,使用大量寄存器;,指令执行速度快,(,基本上为,1,个,T,C,),*,RISC,指令系统的应用特点:,目标代码空间较大;编译程序的设计简单;,指令的实现控制简单,有利于,VLSI,、流水、并行,*,RISC,指令系统的目标:,侧重提高指令执行速度,,需,简化指令功能,46,30,三、,CISC,与,RISC,的发展,*,CISC,与,RISC,的比较,:,(,理论上或模拟机上,),性能方面,RISC,略好,得益于,VLSI,、流水、并行技术,其他方面,CISC,略好,得益于变长的、复杂的指令格式,*,CISC,与,RISC,的发展:,停止了争吵,出现了技术交融,RISC,增加指令系统复杂度,纯,RISC,类,RISC,;,CISC,采用,RISC,技术,纯,CISCCISC,外表,+RISC,内核,应用需求增加及产品换代的需要,31,






