您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 计算机组成原理指令系统.
计算机组成原理武汉科技大学计算机科学与技术学院第四章指令系统本章内容4.1指令系统的发展和性能要求4.2指令格式4.3操作数类型4.4指令和数据的寻址方式4.5典型指令4.6ARM汇编语言4.1.1指令系统的发展1.程序:解决某一实际问题的指令序列2.指令:要计算机执行某种操作的命令4.1指令系统的发展与性能要求3.指令系统:一台计算机中所有机器指令的集合(1)微指令:微程序级的命令,属于硬件(2)宏指令:由若干机器指令和伪指令构成的软件指令(3)机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算从计算机层次结构的观点看,指令可分三类:目录4.指令系统的发展50年代——只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令60年代后期——增加了乘除运算、浮点运算、十进制运算、字符串处理等,指令多达一二百条,寻址方式也趋多样化60年代后期——开始出现系列计算机70年代末期——CISC(ComplexInstructionSetComputer)RISC(ReducedInstructionSetComputer)系列计算机——基本指令系统、体系结构相同的一系列计算机系列计算机必要条件——同一系列的各机种有共同的指令集;且实现“向上兼容”CISC和RISCCISC——复杂指令系统计算机,多达几百条研制周期长,不易调试维护,且造成硬件资源浪费RISC——精简指令系统计算机从CISC转变到RISC的原因指令系统百分比的20:80规律降低控制器设计难度一个完善的指令系统应满足的条件:1.完备性指令丰富、功能齐全、使用方便——用汇编语言编各种程序时,直接提供的指令足够用2.有效性程序占存储空间小、执行速度快3.规整性对称性、匀齐性、指令格式和数据格式的一致性对称性:所有的寄存器和存储器单元都可同等对待;所有的指令都可使用各种寻址方式匀齐性:一种操作指令可支持各种数据类型指令格式和数据格式的一致性:指令长度和数据长度有一定关系,方便处理和存取4.兼容性“向上兼容”4.1.2指令系统的性能要求低级语言分机器语言(二进制)和汇编语言(符号)高级语言与低级语言的性能比较:高级语言的语句和用法与具体机器的指令系统无关低级语言和具体机器的指令系统密切相关机器语言是机器能直接识别和执行的惟一语言汇编语言与硬件关系密切,编写的程序紧凑、占内存小、速度快,适合编写经常与硬件打交道的系统软件高级语言不涉及机器的硬件结构,通用性强、编写程序容易,适合编写与硬件没有直接关系的应用软件4.1.3低级语言与硬件结构的关系高级语言与低级语言的比较比较内容高级语言低级语言1对程序员的训练要求:(1)通用算法(2)语言规则(3)硬件知识有较少不需要有较多需要2对机器独立的程度独立不独立3编制程序的难易程度易难4编制程序所需时间短较长5程序执行时间较长短6编译过程中对计算机资源(时间和存储容量)的要求多少4.2指令格式指令字(简称指令)——表示一条指令的机器字指令格式——指令字用二进制代码表示的结构形式——表征指令的操作特性与功能位数取决于指令系统的规模,分固定位数和可变位数4.2.1操作码4.2.2地址码——参与操作的操作数的地址或操作数本身三地址指令格式、二地址格式、一地址格式和零地址格式操作码字段OP地址码字段A目录(1)零地址指令两种情况:一是该指令不需要操作数,如NOP指令二是操作数隐含,如DAA操作数隐含于累加器AC中(2)一地址指令(单操作数指令)也有两种情况:一是指令本身只需要一个操作数,如NOT指令二是被操作数和结果隐含于累加器AC中AC←(AC)OP(A)(A)表示地址为A的内存或通用寄存器中的数关于地址码个数的有关说明操作码A1操作码(3)二地址指令(双操作数指令)A1←(A1)OP(A2)按操作数的物理位置不同又分为:SS型、RR型、RS型指令(4)三地址指令A3←(A1)OP(A2)A1——被操作数地址,也称源操作数地址A2——操作数地址,也称终点操作数地址A3——存放结果的地址A1,A2,A3可为内存单元或通用寄存器的地址操作码A1A2A3操作码A1A2关于地址码个数的有关说明(续)机器字长:计算机能直接处理的二进制数的位数指令字长度:指令字包含二进制代码的位数,等长、变长两种等长指令字结构:结构简单,且指令字长度不变变长指令字结构:结构灵活,但控制较复杂4.2.3指令字长度设L为指令字长度,N为机器字长度L=N——单字长指令L=0.5N——半字长指令L=2N——双字长指令多字长指令的优点、缺点典型的指令助记符典型指令指令助记符二进制操作码加法ADD001减法SUB010传送MOV011跳转JMP100转子JSR101存数STO110取数LAD1114.2.4指令助记符不同的计算机中,指令助记符的规定不同指令助记符借助汇编程序可自动转换成相应的二进制码1.八位微型计算机(字长8位)的指令格式——可变字长形式:单字长、双字长、三字长指令操作码操作码A1A2操作码A1单字长指令双字长指令三字长指令内存按字节编址,每执行一条指令后,指令地址的修正——加1、加2、加34.2.5指令格式举例字长32位,字节寻址,通用寄存器32个R型指令——所有算术运算,数据必须放在通用寄存器中2.MIPSR4000指令格式——RISC6位5位5位5位5位6位oprsrtrdshamtfunctR型I型(立即数)指令——访问存储器(存数或取数)6位5位5位16位oprsrt常数或地址(address)I型MIPS指令的字段值指令格式oprsrtrdshamtfunct常数或地址add(加)R0regregreg032sub(减)R0regregreg034立即数加I8regreg常数lw(取字)I35regregaddresssw(存字)I43regregaddress返回到举例ARM指令集的一种指令格式3.RAM的指令格式——32位嵌入式处理器condFIopcodeSRnRdoperand24位2位1位4位1位4位4位12位指令字长度可变:112字节,典型的CICS结构1或20或10或10,1,2,40,1,2,4操作码ModReg或操作码R/M比例S变址I基址B位移量立即数4.Pentium指令格式由操作码、Mod-R/M、SIB、位移量、立即数字段组成,除操作码字段外,其他四个字段均可选2位3位3位2位3位3位[例1]已知指令格式,OP为操作码,试分析其特点[解]:(1)单字长二地址指令(2)操作码字段OP为7位,可指定128条指令(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个)——RR型指令(4)这种指令结构常用于算术逻辑运算类指令指令格式举例115987430OP——源寄存器目标寄存器[例2]试分析下面指令格式的特点[解]:(1)双字长二地址指令,用于访问存储器(2)操作码字段OP为6位,可以指定64种操作(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)——RS型指令指令格式举例21510987430OP--源寄存器变址寄存器位移量(16位)[例3]MIPSR4000汇编语言中,寄存器$s0$s7对应寄存器号为1623(十进制),寄存器$t0$t7对应寄存器号为815。下表列出了2条R型指令(add、sub),2条I型指令(IW、SW)的汇编语言表示。请将4条汇编语言手工翻译成对应的机器语言(十进制)表示指令格式举例3MIPS汇编语言类别指令示例语义说明算术运算加add$s1,$s2,$s3$s1=$s2+$s33个操作数,都在寄存器中减sub$s1,$s2,$s3$s1=$s2-$s33个操作数,都在寄存器中数据传送取字lw$s1,100($s2)$s1=Memory[$s2+100]数据从存储器到寄存器存字sw$s1,100($s2)Memory[$s2+100]=$s1数据从寄存器到存储器$s0$s7对应寄存器号为1623[解]:MIPS机器语言表示如表所示指令格式举例34条指令的机器语言名称格式示例说明addR0181917032add$s1,$s2,$s3subR0181917034sub$s1,$s2,$s3lwI351817100lw$s1,100($s2)swI431817100sw$s1,100($s2)字段大小6位5位5位5位5位6位所有MIPS指令都是32位R型Roprsrtrdshamtfunct算术指令格式I型Ioprsrtaddress数据传送指令格式MIPS指令字段值4.3操作数类型4.3.1一般的数据类型地址数据:可看成无符号数数值数据:常用的三种类型:定点数、浮点数、压缩BCD字符数据:文本数据或字符串,目前广泛使用ASCII码逻辑数据:将一个数据看成由若干位组成——可对具体的位进行布尔逻辑运算4.3.2Pentium数据类型能处理——字节(8位)、字(16位)、双字(32位)、四字(64位)字、双字、四字的起始地址无要求当通过32位数据总线存取数据时,双字的起始地址能被4整除Pentium的数据类型目录4.3.3PowerPC数据类型PowerPC——RISC可处理——字节(8位)、半字(16位)、字(32位)、双字(64位)能识别的数据类型:(1)无符号字节:用于逻辑和整数算术运算,由存储器读出装入通用寄存器时左端以0填充(2)无符号半字:与“无符号字节”类似,长度16位(3)有符号半字:用于16位算术运算,装入寄存器时要符号扩展(4)无符号字:用于32位逻辑运算,或作地址指针(5)有符号字:用于32位算术运算(6)无符号双字:用作64位地址指针(7)字节串:长度0128个字节(8)浮点数:支持IEEE754定义的单精度、双精度浮点类型4.4指令和数据的寻址方式在存储器中,操作数或指令字写入或读出的3种方式——地址指定方式、相联存储方式和堆栈存取方式;几乎所有的计算机,内存中都采用地址指定方式寻址方式——采用地址指定方式时,形成操作数或指令地址的方式指令寻址方式比较简单;数据寻址方式比较复杂4.4.1指令的寻址方式一种是顺序寻址方式另一种是跳跃寻址方式目录跳跃寻址——下条指令的地址码由本条指令给出PC100Jmp103主存100101102103100PC+1内存100101设置程序计数器(指令指针寄存器)PC对指令的顺序号计数,该顺序号就是指令在内存中的地址2.跳跃寻址方式目标地址->PC1.顺序寻址方式(PC)+1->PC103——形成操作数的有效地址的方法例如,一种单地址指令的结构如下所示操作码OP变址X间址I形式地址A4.4.2操作数基本寻址方式指令中的地址码由形式地址和寻址方式特征位等组合形成寻址过程就是把操作数的形式地址,变换为有效地址具体的寻址方式有:隐含寻址立即寻址直接寻址间接寻址寄存器寻址寄存器间接寻址偏移寻址(基值、变址、相对)堆栈寻址段寻址——指令中不显式给出而是隐含着操作数的地址例如,单地址的指令格式隐含着累加器AC为第二操作数地址2.立即寻址——指令的地址字段给出的是操作数本身,而不是操作数地址不需要访问内存取数,故指令执行时间很短3.直接寻址1.隐含寻址——地址字段中直接指出操作数在内存的地址A形式地址A就是操作数的有效地址E(E=A),又称直接地址如果用D表示操作数,那么D=(E)=(A)操作数=2000HOPXA=1350H2000H1350H——形式地址A是操作数地址的指示器,A单元的内容才是操作数的有效地址操作码IA寻址特征位I=0,表示直接寻址,有效地址E=AI=1,表示间接寻址,有效地址E=(A)4.间接寻址——目前已很少使用把直接寻址和间接寻址结合起来指令的形式:操作数=1234HOPX2A=1000H操作数地址=2000HD=1234H1000H2000H——指令中给出通用寄存器的编号,操作数在通用寄存器中6.寄存器间接寻址方式——指令中给出寄存器的编号,但该寄存器的内容是操作数的地址,操作数在内存中如:8086CPU的指令系
本文标题:计算机组成原理指令系统.
链接地址:https://www.777doc.com/doc-2044239 .html