2008-2010byLiWeigang.Allrightsreserved.计算机组成原理—指令系统2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式操作码字段地址码字段操作码的长度可以是固定的,也可以是变换的。前者将操作码集中放在指令字的一个字段内,这种格式便于硬件设计,指令的译码时间短,广泛用于字长较长的、大中型计算机和超级小型计算机中。例如IBM370和VAX-11系列机,操作码长度均为8位。对于操作码长度不固定的指令,其操作码分散在指令字的不同字段中。这种格式可有效地压缩操作码的平均长度,在字长较短的微型计算机中被广泛采用。例如PDP-11、Intel8086/80386等,操作码的长度是可变的。2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式OPA1A2A30000A1A2A30001A1A2A31110A1A2A3............11110000A2A311110001A2A311111110A2A3............4位操作码8位操作码15条三地址指令15条二地址指令2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式OPA1A2A3111111110000A3111111110000A3111111110000A3............111111111111000011111111111100011111111111111111............12位操作码16位操作码15条一地址指令16条零地址指令2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式例题假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。(1)设操作码固定,若零地址指令由P种,一地址指令有Q中,则二地址指令最多有几种?(2)采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种?2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式四地址指令OPA1A3A2A4三地址指令OPA1A3A2由于程序计数器PC既能存放当前欲执行指令的地址,又有计数功能,因此它能自动形成下一条指令的地址。操作码第一操作数地址第二操作数地址结果地址下一条指令的地址没有必要将每次运算结果都存入主存,中间结果可以暂时存放在CPU的寄存器。2008-2010byLiWeigang.Allrightsreserved.1.指令的一般格式二地址指令OPA1A2一地址指令OPA1如果将一个操作数的地址隐含在运算器的ACC中,则指令字中只需给出一个地址码。2008-2010byLiWeigang.Allrightsreserved.2.寻址方式指令寻址LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC指令地址指令顺序寻址顺序寻址顺序寻址顺序寻址跳跃寻址2008-2010byLiWeigang.Allrightsreserved.2.寻址方式数据寻址•立即寻址•直接寻址•隐含寻址•间接寻址•寄存器寻址•寄存器间接寻址•基址寻址•变址寻址•相对寻址2008-2010byLiWeigang.Allrightsreserved.2.寻址方式立即寻址立即寻址的特点是操作数本身设在指令字内,即形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。OPA立即寻址特征2008-2010byLiWeigang.Allrightsreserved.2.寻址方式直接寻址直接寻址的特点是,指令字中的形式地址A就是操作数的真实地址EA,即EA=AOPA寻址特征操作数A主存2008-2010byLiWeigang.Allrightsreserved.2.寻址方式隐含寻址隐含寻址是指指令中不明显的给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中。OPA寻址特征操作数AALUACC暂存主存2008-2010byLiWeigang.Allrightsreserved.2.寻址方式间接寻址指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元,即EA=(A)OPA寻址特征EAA操作数EA主存2008-2010byLiWeigang.Allrightsreserved.2.寻址方式寄存器寻址在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA=RiOPRi寻址特征寄存器...操作数RRiR.........2008-2010byLiWeigang.Allrightsreserved.2.寻址方式寄存器间接寻址在寄存器间接寻址的指令字中,Ri中指出的是操作数所在主存单元的地址号,即EA=(Ri)OPRi寻址特征寄存器...EARRiR.........操作数主存2008-2010byLiWeigang.Allrightsreserved.2.寻址方式基址寻址基址寻址设有基址寄存器BR,其操作数的有效地址EA等于指令地址中的形式地址与基址寄存器中的内容相加,即EA=A+(BR)OPA寻址特征操作数主存ALUBR2008-2010byLiWeigang.Allrightsreserved.2.寻址方式基址寻址基址寻址设有基址寄存器BR,其操作数的有效地址EA等于指令地址中的形式地址与基址寄存器中的内容相加,即EA=A+(BR)OPA寻址特征操作数主存ALUR0通用寄存器R0R1Rn-12008-2010byLiWeigang.Allrightsreserved.2.寻址方式变址寻址变址寻址与基址寻址极为相似。其有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=A+(IX)OPA寻址特征操作数主存ALUIX2008-2010byLiWeigang.Allrightsreserved.2.寻址方式变址寻址与基址寻址的区别基址寻址主要用于程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序的执行过程中其值是不可变的,而指令字中的A是可变的。在变址寻址中,变址寄存器的内容由用户确定,在程序执行过程中其值可变,而指令字中的A是不可变的。2008-2010byLiWeigang.Allrightsreserved.2.寻址方式相对寻址相对寻址的有效地址是将程序计数器PC的内容(即当前指令的地址)与指令字中的形式地址A相加而成,即EA=(PC)+AOPA寻址特征操作数主存ALU1000PCOPA...相对距离A10002008-2010byLiWeigang.Allrightsreserved.3.指令格式设计例题某机字长16位,存储器直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器均可作为变址寄存器。设计一套指令系统格式,满足下列寻址类型的要求。(1)直接寻址的二地址指令3条。(2)变址寻址的一地址指令6条。(3)寄存器寻址的二地址指令8条。(4)直接寻址的一地址指令12条。(5)零地址指令32条。2008-2010byLiWeigang.Allrightsreserved.3.指令格式设计例题设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位。若采用单字长指令,共能完成105中操作,则指令可直接寻址的范围是多少?一次间接寻址的范围是多少?画出其指令格式并说明各字段的含义。