




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 指令系统4.1指令系统的发展指令是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令:微程序级的命令,属于硬件;宏指令:由若干条机器指令组成的软件指令,它属于软件;机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围。一、计算机指令系统的发展过程50年代:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。 60年代:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。60年代后期:开始出现系列计算机(指基本指令系统相同、基本体系结构相同的一系列计算机)一个系列往往有多种型号,它们在结构和性能上有所差异。同一系列的各机种有共同的指令级而且新推出的机种指令系统一定包含所有旧机种的全部指令,旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。 70年代末期:大多数计算机的指令系统多达几百条。我们称这些计算机为复杂指令系统计算机(CISC)。但是如此庞大的指令系统难以保证正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于VLSI技术实现的精简指令系统计算机(RISC)。二、对指令系统性能的要求一个完善的指令系统应满足如下四方面的要求:完备性用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。有效性利用该指令系统所编写的程序能够高效率的运行。程序占据存储空间小、执行速度快。规整性规整性包括:1.在指令系统中所有的寄存器和存储器单元都可同等对待;2.一种操作性质的指令可以支持各种数据类型;3.指令格式和数据格式的一致性。兼容性系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。但由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。三、低级语言与硬件结构的关系计算机语言分高级语言和低级语言。高级语言:如C,FORTRAN等,其语句和用法与具体机器的指令系统无关。低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。4.2 指令格式一、操作码指令字(简称指令)即表示一条指令的机器字。指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数的地址。二、地址码根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。在此基础上,后来又发展成二地址格式、一地址格式和零地址格式。 二地址指令格式中,从操作数的物理位置来说,又可归结为三种类型。存储器-存储器(SS)型指令:参与操作的数都放在内存里,从内存某单元中取操作数,操作结果存放至内存另一单元中,因此机器执行这种指令需要多次访问内存。寄存器-寄存器(RR)型指令:从寄存器中取操作数,把操作结果放到另一寄存器。机器执行寄存器-寄存器型指令的速度很快,因为执行这类指令,不需要访问内存。寄存器-存储器(RS)型指令:执行此类指令时,既要访问内存单元,又要访问寄存器。 三、指令字长度指令字长度:一个指令字中包含二进制代码的位数。机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。 等长指令字结构:各种指令字长度是相等的。这种指令字结构简单,且指令字长度是不变的。变长指令字结构:各种指令字长度随指令功能而异。结构灵活,能充分利用指令长度,但指令的控制较复杂。 四、指令助记符由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。 典型指令指令助记符 二进制操作码加法 ADD 001减法 SUB 010传送 MOV 011跳转 JMP 100转子 JSR 101存储 STR 110读数 LDA 111在不同的计算机中,指令助记符的规定是不一样的。因此,指令助记符还必须转换成与它们相对应的二进制码。这种转换借助汇编程序可以自动完成,汇编程序相当于一个“翻译”。 五、指令格式举例 例1指令格式如下所示,其中OP为操作码,试分析指令格式的特点。 15 9 74 3 0 OP - 源寄存器 目标寄存器 解: (1)单字长二地址指令。 (2)操作码字段OP可以指定128条指令。 (3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。 (4)这种指令结构常用于算术逻辑运算类指令。 例2 指令格式如下所示,OP为操作码字段,试分析指令格式特点。15 10 7 4 3 0 OP -源寄存器变址寄存器 位移量(16位) 解:(1)双字长二地址指令,用于访问存储器。 (2)操作码字段OP为6位,可以指定64种操作。(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)所以是RS型指令。4.4 指令和数据的寻址方式一、指令的寻址方式操作数或指令在存储器中的地址:某个操作数或某条指令存放在某个存储单元时其存储单元的编号。在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。当采用地址指定方式时,形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类:指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。1.顺序寻址方式指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序执行。为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。2.跳跃寻址方式 当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。采用指令跳跃寻址方式,可以实现程序转移或构成循环程序。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。 二、操作数寻址方式形成操作数的有效地址的方法,称为操作数的寻址方式。一般来说,指令中所给出的地址码,并不是操作数的有效地址。 因此,寻址过程就是把操作数的形式地址,变换为操作数的有效地址的过程。 1.隐含寻址 在指令中不明显的给出而是隐含着操作数的地址。例如INC AX 是单地址的指令格式,没有在地址字段中指明第二操作数地址。2.立即寻址指令的地址字段指出的不是操作数的地址,而是操作数本身。这种方式的特点是指令执行时间很短,不需要访问内存取数。 3.直接寻址 特点:在指令格式的地址字段中直接指出操作数在内存的地址D。采用直接寻址方式时,指令字中的形式地址D就是操作数的有效地址E,既ED。因此通常把形式地址D又称为直接地址。如果用S表示操作数,那么直接寻址的逻辑表达式为 S(E)(D) 4.间接寻址间接寻址的情况下,指令地址字段中的形式地址D不是操作数的真正地址,而是操作数地址的指示器,D单元的内容才是操作数的有效地址。间接寻址方式是早期计算机中经常采用的方式,但由于两次访存,影响指令执行速度,现在已不大使用。 6. 寄存器间接寻址 寄存器间接寻址方式与寄存器寻址方式的区别在于:指令格式中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数在内存中。 7.相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,所编程序可以放在内存任何地方。此时形式地址D通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动。 8.基址寻址方式基址寻址方式是将CPU中基址寄存器的内容加上指令格式中的形式地址而形成操作数的有效地址。它的优点是可以扩大寻址能力。同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。 9.变址寻址方式变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。 使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律性变化。 10.段寻址方式微型机中采用了段寻址方式,例如:8086使用20位的地址,从而有1M存储空间的直接寻址能力。为此将整个1M空间存储器以64K为单位划分成若干段。在寻址一个内存具体单元时,由一个基地址再加上某些寄存器提供的16位偏移量来形成实际的20位物理地址。这个基地址就是CPU中的段寄存器。在形成20位物理地址时,段寄存器中的16位数会自动左移4位,然后以16位偏移量相加,即可形成所需的内存地址。这种寻址方式的实质还是基址寻址。11 堆栈寻址方式堆栈是一组能存储和取出数据的暂时存储单元。很多计算机把存储器的一部分用作堆栈。堆栈和其他形式的存储器之间的差别就在于,它们对数据的存取方法或寻址方法有所不同。寄存器堆栈(串联堆栈) 一些计算机的CPU中有一组专门的寄存器,有16个或更多,它们称为寄存器堆栈(串联堆栈) ,其中每一个寄存器能保存一个字的数据。假如由于某种原因,我们需要空出某个通用寄存器时,就可将某个通用寄存器内容存入堆栈。以后若需要这部分数据时,又可以从堆栈中取回来。所有的数据传送是在栈顶和某个通用寄存器之间进行的,通用寄存器仅和堆栈的顶部单元相联系。通常,CPU通过“进栈”指令把数据送入堆栈,而通过“出栈”指令把数据从堆栈中取出。这种结构通常称作“下压堆栈”或“串联堆栈”。存储器堆栈串联堆栈存在一些限制:一是寄存器的数目一般是有限的。如堆栈有8个寄存器,那么把多于8个的数据压入堆栈时,“老”的数据就从栈底压出并被丢失。 二是堆栈的读出是破坏性的。当从堆栈取出一个数时,它就不能再在堆栈中存在。 由于有上述限制,通常由程序员设置出一部分主存储器来作为堆栈,称为存储器堆栈。这种堆栈有三个优点:堆栈能够具有任意长度;可建立多个堆栈;可以用对存储器寻址的条指令来对堆栈中的数据进行寻址。 在设计计算机系统时,把主存储器的一部分用作堆栈区。一旦设定堆栈区后,这一部分就不能用作其他用途。在存储器堆栈中,需要一个堆栈指示器,它是CPU中一个专用的寄存器。堆栈指示器指定的存储器单元,就是堆栈的栈顶。 例3一种二地址RS型指令的结构如下所示:6位 4位 1位 2位16位OP - 通用寄存器I X偏移量D其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。 请写出六种寻址方式的名称。 解:直接寻址相对寻址 变址寻址寄存器间接寻址 间接寻址基址寻址 例4 某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)(A)H ,STA(OP)(1B)H ,LDA(OP)(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。要求: 分析三种指令的指令格式与寻址方式特点。CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗? 下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?(F0F1)H (3CD2)H (2856)H(6FD6)H(1C2)H4.5 典型指令一、指令的分类1.数据传送指令 主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等等。这类指令主要用来实现主存和寄存器之间,或寄存器和寄存器之间的数据传送。 2.算术运算指令包括二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术运算,大型机中有向量运算指令,直接对整个向量或矩阵进行求和、求积运算。 3.逻辑运算指令这类指令包括逻辑加、逻辑乘、按位加、逻辑移位等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移位指令用来对寄存器的内容实现左移、右移或循环移位。 4.程序控制指令也称转移指令。有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。另外,还有无条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。 转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。 5.输入输出指令 输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和CPU之间,或外围设备与外围设备之间的信息传送。 6.字符串处理指令字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串替换(把某一字符串用另一字符串替换)等。这类指令在文字编辑中对大量字符串进行处理。7.特权指令特权指令是指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。 在多用户、多任务的计算机系统中特权指令必不可少。它主要用于系统资源的分配和管理。 8. 其他指令 除以上各类指令外,还有状态寄存器置位、复位指令、测试指令、暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。 二、精简指令系统RISC指令系统的最大特点是:选取使用频率最高的一些简单指令,指令条数少;指令长度固定,指令格式种类少 只有取数存数指令访问存储器,其余指令的操作都在寄存器之间进行。 练习:1.为了缩短指令中某个操作数地址的位数,有效的方法是采用( ) A.寄存器寻址 B.立即寻址 C.间接寻址 D.直接寻址2.下列叙述中,不属于RISC特征的是( )。 A.寻址方式较少 B.使用微程序控制器 C.指令格式种类少 D.有大量通用寄存器3. 指令系统中采用不同寻址方式的目的主要是( )。 A.提供扩展操作码的可能并降低指令译码难度; B.缩短指令字长,扩大寻址空间,提高编程灵活性; C.实现存储程序和程序控制; D.可以直接访问外存。4.单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个操作数常需采用( )指定。 A.堆栈寻址方式; B.立即寻址方式; C.隐含寻址方式; D.间接寻址方式。 5.零地址运算指令在指令格式中不给出操作数地址,它的操作数来自( )。 A.立即数和栈顶; B.暂存器; C.栈顶和次栈顶; D.累加器和暂存器。6.对某个寄存器中操作数进行操作的寻址方式称为( ) 寻址。A.直接; B.间接;C.寄存器; D.寄存器间接。7.寄存器间接寻址方式中,操作数在( ) 中。A.通用寄存器; B.主存单元;C.程序计数器; D.堆栈。8. 变址寻址方式中,操作数的有效地址等于( )。 A.基址寄存器内容加上形式地址(位移量); B.堆栈指示器内容加上形式地址; C.程序计数器内容加上形式地址; D. 变址寄存器内容加上形式地址。9.程序控制类指令的功能是( ) 。 A.进行算术运算和逻辑运算; B.进行主存与CPU之间的数据传送; C.进行CPU和I/O设备之间的数据传送; D.改变程序执行的顺序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑拆除工程风险评估与控制方案
- 再生资源处置利用项目建设工程方案
- 环保项目可行性分析与风险评估方案
- 再生资源处置利用项目施工方案
- 工程项目的阶段性风险评估
- 数学思维训练对初中生学习能力提升的影响研究
- 建筑物周边景观美化方案
- 审计师职业技能鉴定试题及答案
- 2025年公路工程安全生产基础知识试题及答案
- 2025年农产品加工作业试题及答案
- 《基础护理学》第七版考试题库大全-上部分(600题)
- 提高市政雨水管道接口施工一次验收合格率
- 2025年有机化学实验模板
- 基坑安全事故及防范措施
- 欧盟食品安全法律法规
- 糖尿病足创面换药
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- 《我的家在日喀则》教学设计初中音乐七年级上册
- 苏教版数学二年级上册全册课堂配套练习
- 中南财经政法大学哲学院《615社会学原理》历年考研真题汇编(含部分答案)
- 少年警校运行方案
评论
0/150
提交评论