您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机原理 第四章指令系统
第四章指令系统(P148)§4.1指令格式§4.2寻址方式§4.3指令类型§4.4CISC和RISC§4.5实验模型机的指令系统汇总表§4.1指令格式计算机指令是计算机硬件能够识别并直接执行的操作命令,又称为机器指令。一条指令应包括两方面的信息:操作码信息和地址码信息。操作码OP地址码AD它是按照一定格式编制的二进制代码,所以机器指令由二进制代码来表示。操作码OP指明该指令完成何种操作;地址码AD指明操作数的地址信息。一、指令格式历史上地址码AD部分出现过四地址指令、三地址指令、二地址指令和一地址指令系统,目前一般采用的是二地址指令系统。操作码OP源操作数地址A1目的操作数地址A2(A1)OP(A2)→A2二、指令字长指令字长=操作码长度+地址码长度(源操作数地址长度与目的操作数地址长度)指令字长通常设计成字节(八位二进制)的整数倍。指令字长长,优点是所能表示的操作码信息和地址码信息越丰富,可使指令功能丰富。缺点是占存储空间就大,读取指令时间就增加。指令长度一般不固定,从一字节到十几个字节不等,多数指令为短指令,少数复杂指令为长指令。固定长度的指令现在很少采用。例1:DEC公司的PDP–11是16位小型机中的重要代表。它的基本指令字长16位,占主存两个字节,但有些指令之后紧跟一个16位的地址或立即数,或是紧跟两个16位地址或立即数,指令长度变为32位或48位。其格式如下:(16位长)指令(16位长)指令地址/立即数(16位长)(16位长)指令地址/立即数(16位长)地址/立即数(16位长)三、操作码格式操作码指定机器执行什么样的操作(如:加法,传送等),操作码位数越多,所能表示的操作种类也就越多。常见的操作码格式有以下两种编码方式。1.定长操作码,地址码变长操作码的长度固定,占指令最前面几位,称操作码字段。后面有可能跟一个地址信息,或二个地址信息。例如“ADD”,加法指令,后面需要两个地址提供“加数”与“被加数”;“INC”,加1指令,只需一个地址信息,指令就短。优点:这种方式的操作码字段规整,有利于简化操作码译码器的设计,广泛用于指令字长较长的大、中型及超级小型机中。例如当年的IBM370大型机指令系统,操作码固定在指令最高8位,早前的Intel8086也是高8位为操作码。2.变长操作码,定长指令码。操作码长度不固定,但指令码的长度固定。这种设计当操作码变长时,地址码就缩短(地址个数变少),但指令字总长不变。〔例〕设某机器的指令长度为16位,包括基本操作码4位和三个地址字段,每个地址字段长4位,其格式为:1514131211109876543210OPAD1AD2AD3计算机组成原理信息工程学院4章指令系统首页xxxxxxxxxxxxxxxx0000A1A2A31110A1A2A311110000A1A211111110A1A2111111110000A1111111111110A11111111111110000111111111111111116位指令字三地址指令范围二地址指令范围一地址指令范围零地址指令范围15条15条15条16条总指令条数:15+15+15+16=61指令扩展举例1计算机组成原理信息工程学院4章指令系统首页xxxxxxxxxxxxxxxx0000A1A2A31101A1A2A311100000A1A211101111A1A211110000A1A211111110A1A2111111110000A1111111111110A11111111111110000111111111111111116位指令字三地址指令范围二地址指令范围一地址指令范围零地址指令范围14条31条15条16条76指令扩展举例2操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,并且增加指令字表示的操作信息。这种方式多用于微、小型机上。四、指令助记符用一些比较容易记忆的文字符号来表示指令中各种信息,即操作码和操作数地址,这些符号称为助记符。例:ADD表示加法,SUB表示减法;MOV表示数据传送等地址码中常用R表示寄存器,A表示存储单元。如:ADDR1,A,(R1)+(A)→A计算机中所有指令的助记符的集合以及使用规则构成了汇编语言。用汇编语言编写的程序可以比较简单地转换成机器指令代码,这种转换由汇编程序完成。汇编语言是面向计算机硬件的语言,通过它可以了解计算机的硬件结构。§4.2寻址方式如何寻找指令中的数据称为寻址方式。大多数可以归结为以下几种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、间接寻址、变址寻址和基址寻址等。1.立即寻址方式操作数直接在指令中给出,在取出指令的同时也取出了操作数,所以称为立即寻址。只适用于提供常数,设定初始值。例如:MOVR1,#08,#08表示立即数ADDR1,#032.直接寻址方式操作数的地址直接在指令中给出,根据该地址去访问主存。优点:这种寻址方式简单,不需作任何寻址计算。缺点:由于直接地址值是指令的一部分,不能修改,因此只能用于访问固定主存单元,而且导致指令字变长。地址数据1000H1A00H2000H1B00H3000H1C00H例如:ADD2000,R2(2000)+(R2)→R23.寄存器寻址方式操作数在指定的寄存器中,寄存器号在指令中给出。R0R1R2R31000H2000H3A00H3C00H例如:ADD2000,R2(2000)+(R2)→R2和直接寻址方式比有两个优点:1)读取操作数的速度要比访问主存快得多;2)占指令字的位数较少,从而有效地缩短了指令长度。4.寄存器间接寻址方式指令给出寄存器号,寄存器中存放着操作数的地址。优点:寄存器的位数较长(一般为机器字长),足以访问整个内存空间,这样既有效地压缩了指令长度,又解决了寻址空间太小的问题。例:ADD(R1),(R2)R01000H1000H3A00HR12000H2000H2C00HR23000H3000H3B00H主存单元2C00H+3B00H→3000H单元5.间接寻址方式指令中给出的既不是操作数,也不是操作数的地址,而是操作数地址的地址。我们把这个中间地址称为间址单元。例ADD(2000),R21000H4000H2000H3000H3000HAC00H内存单元这种方式可以用同一条指令在不同时间访问不同存储单元,提供了编程的灵活性;但存储器间址方式增加了访存次数,因而减慢了工作速度。6.相对寻址方式操作数的地址是程序计数器PC的值加上一个偏移量,这个偏移量在指令地址码中给出。因为访问的数据位置相对于指令的位置,因此称为相对寻址方式。例:ADD100(PC),R1源操作数在PC+100的内存单元中。7.变址寻址方式操作数的地址是变址寄存器内容与形式地址(地址数值)相加,变址寄存器由指令给出,形式地址也由指令给出。完整地址位移量这种寻址方式适合于对一组数据进行访问。只要改变变址寄存器的值,该指令就可形成另一个数据元素的地址。例:ADDR2,1000(R0),1000(R0)就是变址寻址方式,R0寄存器充当变址寄存器,操作数地址等于1000加上R0的内容。8.基址寻址方式操作数的地址是基址寄存器内容与形式地址(地址数值)相加得到内存地址。基址寄存器由指令给出,形式地址也由指令给出。CPU中设有专门的基址寄存器。使用目的:变址寻址方式用于数组元素操作,面向用户;基址寻址方式用于程序重定位和扩大寻址空间等问题,它面向系统。位移量OPRBDN加法器操作数A主存完整首地址例:某主存部分单元的地址码与存储器内容对应关系如下地址码存储内容3000H5678H3001HABCDH3002H3003H3003H3001H3004H9876H1、若采用寄存器间址方式读取操作数,指定寄存器R1的内容为3004H,则操作数是多少?2、若采用存储器间接寻址读取操作数,指令中给出的地址是3003H,,则操作数是多少?3、若采用变址寻址方式X(R2)读取操作数,指令中给出形式地址为2H,变址寄存器R2内容为3000H,则操作数是多少?§4.3指令类型一台计算机指令系统从二三十条指令到几百条指令不等,指令少计算机的功能、速度等指标就弱,指令多则代表CPU的硬件投入大,相应的指标就高。无论指令系统的规模如何,都应具备基本指令类型功能,常见指令类型包括:1.数据传送指令。将数据在主存与CPU寄存器之间进行传输,即数据从一个地方传送到另一个地方。汇编助记符有MOV或LD两套常用符号。例MOVR1,R2,(R1)→R2LDR1,(R2)(R1)→((R2))。2.算术运算指令。对数据进行算术操作,包括加法ADD、减法SUB、乘法MULT、除法DIV、求反NOT、求补COM、算术移位SHA等。3.逻辑运算指令。对数据进行逻辑操作,包括按位与AND、按位或OR、逻辑移位SHL和数据转换等。4.程序控制指令。用以控制程序执行的顺序和方向。主要包括转移指令、循环控制指令、子程序调用指令、返回指令、程序中断指令等。5.输入输出指令。用于启动外设、检查测试外设的工作状态、读写外设的数据。有些计算机用专门的输入输出操作指令,如IntelX86指令中IN、OUT指令。6.其它类指令。包括堆栈操作指令,字符串处理指令,系统指令和特权指令。这些指令请读者具体深入到某计算机汇编指令时再学习与研究。§4.4CISC和RISCCISC:ComplexInstructionSystemComputer复杂指令系统计算机RISC:ReducedInstructionSystemComputer精简指令系统计算机一、CISCCISC结构是传统的计算机指令系统,最少百条以上,多则几百条指令。指令越丰富,计算机功能越强,但相应地指令格式越来越复杂,指令越变越长,执行时间也越来越长。二、RISC人们对程序在机器上的运行情况作大量分析后,惊奇地发现,机器所执行的指令竟然有80%以上是简单指令,复杂指令只占很小比例。根据实际情况人们提出用一套精简的指令系统取代复杂指令系统,使机器结构简化,提高机器的性能价格比。于是70年代开始了RISC技术的研究。RISC的主要技术内容:1.简化的指令系统。表现在指令条数较少,基本寻址方式少,指令格式少,指令字长度一致。指令总数大都不超过100条,寻址方式一般限制在2~3种,指令格式一般限制在2~3种,长度为32位。2.以寄存器间的数据处理为主。只有LOAD取数和STORE存数两条指令访问内存。3.CPU中采用大量的通用寄存器。一般不少于32个,多则几百。RISC和CISC两种技术正在不断融合,相互撷取优点补充自己,因此两种技术不能说谁好谁坏,采用两种技术的计算机都存在。Pentium指令系统属于CISC结构,但采用了许多RISC思想。5.采用优化编译程序。用优化编译技术,力求能高效地支持高级语言实现,生成优化的机器指令代码。4.指令采用流水线工作方式。采用流水线技术可使每一时刻都有多条指令重叠执行。尽管一条指令的执行仍需要几个周期时间,但从平均效应来看,每条指令的周期数大大减少,每条指令只需一个周期。只有LOAD和STORE两条指令不采用流水线方式。§4.5实验模型机的指令系统汇总表指令名称助记符功能指令格式右移RARRd½(Rd)→Rd0101××Rd左移RALRd2(Rd)→Rd0110××Rd加“1”INCRd(Rd)+1→Rd1010××Rd取反COMRd→Rd1011××Rd)(Rd传送MOVRs,Rd(Rs)→Rd1001RsRd与ANDRs,Rd(Rs)∧(Rd)→Rd1100RsRd加法ADDRs,Rd(Rs)+(Rd)→Rd1101RsRd减法SUBRs,Rd(Rd)-(Rs)→Rd1110RsRd乘法MULR1,R0(Rs)*(Rd)→R0,R11111RsRd指令名称助记符功能指令格式立即数传送LDIDATA,RdDATA→Rd0100××RdDATA取数LADX,D,Rd(MD)→Rd00X00RdD存数STAX,D,Rd(MD)→Rd00X01RdD无条件转移JMPX,DD→PC00X10××D进位条件转
本文标题:计算机原理 第四章指令系统
链接地址:https://www.777doc.com/doc-3675238 .html