第四部分指令系统InstructionSystem.ppt
第四章 指令系统Instruction System,4.1 指令系统的发展与性能要求,什么是指令?高级语言程序、汇编语言程序,都需编译或翻译程序转换为CPU识别的程序,即指令序列。可被控制器识别的指令称为机器指令。另外两种指令微指令一条机器指令翻译成一串微指令。一条微指令代表发出的一组控制信号。微程序存储于CPU内的控制存储器。属于硬件。,4.1 指令系统的发展与性能要求,宏指令特定的一串机器指令可完成稍复杂的运算,这串机器指令用一条宏指令表示。属于软件。什么是指令系统?所有机器指令的集合,称指令系统。指令系统就是指令集(Instruction Set)。决定硬件设计,是软件设计的基础,影响机器的适用范围。,4.1 指令系统的发展与性能要求,指令系统的发展指令系统的规模50年代,十几或几十条指令。60年代,增加乘除法、浮点运算、十进制运算、字符处理指令,达到一二百条指令。70年代,几百条,复杂指令系统的计算机(CISC,Complex Instuction Set Computer)70年代,出现精简指令系统计算机(RISC,Reduced Instuction Set Computer)系列计算机奔腾386,奔腾486,奔腾586,4.1 指令系统的发展与性能要求,指令系统决定计算机的基本功能,是计算机设计的核心问题。怎样确定指令系统?要求完备性类型丰富、功能齐全、使用方便;乘除、浮点运算可由基本指令实现,也可用硬件实现。有效性占用存储少,执行速度快。,4.1 指令系统的发展与性能要求,要求规整性对称性任何指令平等对待寄存器和存储器匀齐性一种操作性质的指令可支持各种数据类型指令格式和数据格式的一致性例如,指令字和数据字都是字节的倍数。兼容性系列机支持“向上兼容”,高档机包含低档机的全部指令。,4.1 指令系统的发展与性能要求,程序设计与指令集的关系程序设计把待求解问题变换成计算机可识别的一串指令或语句。程序用计算机语言表达。计算机语言高级语言(算法语言)C、Fortran、Java、Pascal等;方便描述求解过程,执行性能依赖编译程序;与指令系统无关,故可移植。,4.1 指令系统的发展与性能要求,计算机语言低级语言机器语言(二进制语言)、汇编语言(符号语言);面向机器编写,不可移植;可最大程度挖掘机器功能。高级语言提供与汇编语言的调用接口。,4.2 指令格式,指令字表示一条指令的二进制位串。简称指令。指令格式操作码表示指令的操作特征与功能;地址码参与操作的操作数的地址。,4.2 指令格式,操作码表示操作的性质。例,加法、减法、乘法、取数、存数等。控制器解释操作码,发出相应的控制信号。操作码字段的长度取决于指令系统的规模。例,如仅有8条指令,该字段占用3位就够了。n位操作码字段,最多可表示2n条不同指令。,4.2 指令格式,地址码一般的运算操作,涉及被操作数、操作数、操作结果。按操作数个数分,三地址指令二地址指令一地址指令零地址指令注意:这里不表示指令字是等长的!A反映ALU中哪个寄存器,也可反映哪个存储单元。,操作码,4.2 指令格式,地址码零地址指令例,停机指令(halt)。一地址指令(单操作数指令)隐含地以ALU中的累加器AC的内容做另一个操作数,结果仍送AC。(AC)OP(A)AC也有的确是一个操作数的情况。OP(A)A 例:移位指令,4.2 指令格式,地址码二地址指令(双操作数指令)第一个地址码兼做操作结果的地址。(A1)OP(A2)A1三地址指令(A1)OP(A2)A3,4.2 指令格式,地址码对于二地址指令存储器-存储器(SS,Storage-Storage)指令三次访问主存,费时!寄存器-寄存器(RR,Register-Register)指令不访问主存,速度快!寄存器-存储器(RS,Register-Storage)指令既访问主存,又访问寄存器。,4.2 指令格式,指令字长度操作码字段和操作数字段的总位数。机器字长计算机能直接处理的二进制位数,一般是ALU位数。一般等于存储器字长,即一次访存得到的位数。,4.2 指令格式,指令字长度按长度分,单字长指令指令字长度等于机器字长度。半字长指令双字长指令例IBM370系列中,有16位(半字)、32位、48位等指令;Pentium系列中,有8位、16位、32位和64位指令。,4.2 指令格式,指令助记符不同机器的指令助记符不完全一样!,4.2 指令格式,指令格式举例8位微机的指令格式单字长指令双字长指令三字长指令内存按字节编址每执行一条指令,指令地址加多少?对于单字长指令,加1;对于双字长指令,加2;对于三字长指令,加3。,操作码,8位,8位,8位,1.1 指令系统的发展与性能要求,指令格式举例16位小型机PDP/11的指令格式单字长指令还有一些超过单字长的指令,1.1 指令系统的发展与性能要求,指令格式举例Pentium指令格式指令长度从1字节到12字节。Pentium是典型的CISC。,1.1 指令系统的发展与性能要求,例,指令格式如下所示,其中OP为操作码,试分析指令格式的特点。解:这是二地址指令。OP为操作码字段,可表示128条指令。源和目标寄存器都是通用寄存器,支持从16个寄存器中选择哪个做源或目标寄存器。RR型指令。这种指令一般是算逻运算指令。,1.1 指令系统的发展与性能要求,例,指令格式如下所示,其中OP为操作码,试分析指令格式的特点。解:这是双字长二地址指令,RS型指令。操作码字段6位,可表示64条指令。源操作数在寄存器里,源寄存器从16个寄存器中指定;目标操作数在存储器里,结果也放存储器。,4.3 指令和数据的寻址方式,寻址方式指令或数据的位置可按地址(编号)、内容、栈顶指针确定。确定指令或操作数的地址的方式,称为寻址方式。指令的寻址方式顺序寻址设置程序计数器(或称指令计数器),每执行一条指令,计数器加1;把计数器内容作为指令的存储地址。,4.3 指令和数据的寻址方式,指令的寻址方式跳跃寻址下条指令的地址,不是计数器给出的,而是当前指令指定的!用于缩短程序长度(如循环),引用公共程序。,4.3 指令和数据的寻址方式,指令的寻址方式,play,4.3 指令和数据的寻址方式,操作数的寻址方式有效地址:操作数的实际地址。如寄存器编号或存储单元地址。形式地址,也称偏移量。由形式地址和寻址方式特征位(X、I)形成有效地址的方法,称为操作数的寻址方式。,4.3 指令和数据的寻址方式,操作数的寻址方式隐含寻址例,单地址指令中,第1操作数地址由指令给出,第2操作数(也是结果)的地址隐含地规定为累加器AC。立即寻址地址码字段的内容,就是操作数。无需访问寄存器和存储器。,4.3 指令和数据的寻址方式,操作数的寻址方式直接寻址形式地址D就是有效地址E,即 ED。若操作数为S,则S=(E)=(D)。间接寻址由寻址特征位(I)指示这种寻址方式。E(D)。,4.3 指令和数据的寻址方式,直接寻址,play,4.3 指令和数据的寻址方式,间接寻址,E,4.3 指令和数据的寻址方式,操作数的寻址方式寄存器寻址方式形式地址D是寄存器的编号,寄存器内容为操作数。若寻址特征位(I,Indirect)为1,代表是寄存器间址寻址。D是寄存器编号,但寄存器内容是存储器地址,操作数在存储单元中。,4.3 指令和数据的寻址方式,操作数的寻址方式相对寻址方式由程序计数器PC(Program Counter)的内容加上形式地址D,结果才是操作数的有效地址E。E(PC)+D。D可正可负!也需要寻址特征位指示!,4.3 指令和数据的寻址方式,相对寻址方式,play,4.3 指令和数据的寻址方式,操作数的寻址方式基址寻址方式将基址寄存器的内容加上D,得E。需要寻址特征位指示。基址寄存器用于在很大存储范围内的寻址。,4.3 指令和数据的寻址方式,基址寻址方式,play,4.3 指令和数据的寻址方式,操作数的寻址方式变址寻址把变址寄存器的内容,加上D,得E。用于连续地址的访问。需要寻址特征位指示。块寻址常见于IO指令,用于外存与内存之间的数据块“搬家”。指令格式:,4.3 指令和数据的寻址方式,操作数的寻址方式段寻址微机中采用,目的是扩大寻址范围。,play,4.3 指令和数据的寻址方式,PDP/11的寻址方式双操作数指令的格式PDP/11的CPU包含寄存器R0 R7,R7实际是PC,R6实际是SP(Stack Pointer)。,15 12 11 9 8 6 5 3 2 0,4.3 指令和数据的寻址方式,PDP/11系列机的寻址方式,4.3 指令和数据的寻址方式,PDP/11系列机的寻址方式(续),4.3 指令和数据的寻址方式,PDP/11系列机的寻址方式(续),4.3 指令和数据的寻址方式,例:一种二地址RS型指令的结构如下所示:其中,I 为间址标志,X 为寻址模式,D 为偏移量,请写出寻址方式的名称。,4.3 指令和数据的寻址方式,例:某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器,指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。,4.3 指令和数据的寻址方式,分析三种指令的指令格式与寻址方式特点。,D,单字长、二地址、RR型指令,双字长、二地址、RS型指令,双字长、二地址、RS型指令,,1,2,3,4.3 指令和数据的寻址方式,(2)CPU完成哪一种操作所花时间最短?哪一种花时间最长?第二种指令的执行时间有时会等于第三种指令吗?,执行时间最短;执行时间最长;不会。,4.3 指令和数据的寻址方式,(3)已知三种指令的操作码分别是MOV(OP)(A)H,STA(OP)(1B)H,LDA(OP)(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。下列每个指令字代表什么操作?如有编码不正确,如何改正?(F0F1)H(3CD2)H(2856)H(6FD6)H(1C2)H,4.3 指令和数据的寻址方式,例(续):答(3):MOV(OP)=001010;STA(OP)=011011;LDA(OP)=111100 111100,00,1111,0001 0011 1100 1101 0010;LDA指令 001010,00,0101,0110;MOV指令 011011,11,1101,0110;应该是MOV指令,但错误!不该指定基址寄存器。000111,00,0010;应该是MOV指令,但不够字长!,4.4 堆栈寻址方式,堆栈“后进先出”的存储结构。可在一组通用寄存器或一块存储器区域上实现。串联堆栈栈顶固定!只适合在寄存器组上实现。,play,4.4 堆栈寻址方式,存储器堆栈寄存器堆栈的缺点容量小,栈满后再压栈,就把最早入栈的数据丢失了。读出是破坏性的,即退栈才能读出。存储器堆栈的优点容量任意设置;堆栈数目也可有许多;可借助访存指令完成堆栈操作。,4.4 堆栈寻址方式,存储器堆栈特点存储单元之间的数据移动,很费时。每压入一个数据,栈顶移动一下。由CPU的堆栈指示器(专用寄存器SP)保存栈顶(即存储单元地址)。堆栈操作描述进栈:(A)Msp,(SP)1 SP退栈:(SP)+1 SP,(Msp)A,4.4 堆栈寻址方式,SP,play,4.5 典型指令,指令的分类数据传送指令取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等。算术运算指令二进制的加、减、乘、除指令,浮点加、减、乘、除指令,算术移位指令、算术比较指令、十进制加、减指令等。,4.5 典型指令,指令的分类逻辑运算指令逻辑加、乘、异或、移位等指令。程序控制指令条件转移指令。转移条件有,进位、结果0、结果负、结果溢出、结果奇偶等,这些标志存储在状态寄存器中。无条件转移指令、转子程序指令、返主程序指令等。绝对转移、相对转移。,4.5 典型指令,指令的分类输入输出指令启动外设指令、检测外设状态指令、外设-CPU传送指令、外设-外设传送指令。若外设寄存器和存储器统一编址,则无IO指令。字符串处理指令非数值处理指令,如字符串传送、转换、比较、查找、替换等。特权指令只限OS或其他系统软件使用。其他指令状态寄存器置位、复位、测试指令、暂停指令、空操作指令等。,4.5 典型指令,CISC(复杂指令系统计算机)的基本指令,4.5 典型指令,CISC(复杂指令系统计算机)的基本指令(续),4.5 典型指令,CISC(复杂指令系统计算机)的基本指令(续),4.5 典型指令,CISC(复杂指令系统计算机)的基本指令(续),A,C,A,C,A,C,0,A,C,0,A,C,4.5 典型指令,CISC(复杂指令系统计算机)的基本指令(续),4.5 典型指令,精简指令系统特点:选取使用频繁的一些简单指令;这些指令的长度固定,种类少,寻址方式种类少;只有存数、取数指令访存,其他指令只对寄存器操作。,4.5 典型指令,精简指令系统以SPARC机为例,某些指令未收入指令集,但可由其他指令代替。,