计算机组成原理8清华_第1页
计算机组成原理8清华_第2页
计算机组成原理8清华_第3页
计算机组成原理8清华_第4页
计算机组成原理8清华_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

清华大学出版社计算机组成原理黄颖等主编

计算机组成原理第八章指令系统8.1机器指令8.1.1指令的一般书写格式1、操作码操作码的长度可以是固定的,也可以是变化的。

通常采用扩展操作码技术,使操作码的长度随地址数的减少而增加,不同地址数的指令可以具有不同长度的操作码。从而在满足需要的前提下,有效地缩短指令长度。2、地址码地址码用来指出该指令的源操作数的地址,目的操作数的地址和下条指令的地址。这个地址可以是主存地址,寄存器地址或I/O地址。对于不同的指令,地址码的个数是不同的。

(1)四地址指令

(2)三地址指令(3)二地址指令(4)一地址指令(5)零地址指令8.1.2指令字长程序员需要功能更为丰富的指令集,更多的寻址模式和更大的寻址范围,而这需要更长的指令长度;而系统设计者则希望从指令的执行速度上来考虑,要尽可能的减少指令长度。所以指令长度的选择通常是在这两种选择之中寻求一种平衡。8.2操作数的类型、大小和存储8.2.1操作数类型和大小机器中常见的操作数类型有:地址、数字、字符和逻辑数据等。8.2.2数据在存储器中的存放方式8.3操作类型8.3.1数据传送类数据传送包括寄存器与寄存器、寄存器与存储器、存储器与存储器之间的传送。

8.3.2算术运算类这类操作可实现算术运算(加、减、乘、除、加1、减1和求补等)。

8.3.3逻辑运算类这类操作可实现逻辑运算(与、或、非、异或)。

8.3.4控制传送类1、转移指令转移(Branch)指令亦称为跳转(Jump)指令,它把将要执行的下一条指令的地址作为它的一个操作数。转移指令可以分为无条件转移和条件转移。

2、跳步指令一个典型的例子是增量并且若为0则跳步指令(IncrementandSkipifzero,ISZ),其使用如下:301…309ISZR1310BR3013113、过程调用和转移8.3.5输入输出类对于I/O单独编址的计算机而言,通常设有专门的输入输出指令,它完成从外设中的寄存器读入一个数据到CPU的寄存器中,或将数据从CPU的寄存器输出至某外设的寄存器中。

8.3.6系统控制类系统控制类主要包括等待指令,停机指令,空操作指令,开关中断指令等。8.4寻址技术8.4.1立即数寻址立即数寻址的特点是操作数本身就在指令字中,数据一般采用补码形式存放。8.4.2寄存器寻址

8.4.3存储器寻址8.4.4寄存器和存储器混合寻址1.基址寻址2.变址寻址3.基址加变址寻址8.4.5相对寻址8.4.6堆栈寻址从左到右扫描输入表达式,随着扫描的进行,后缀表达式生成并输出。步骤如下:1.检查输入的下一个元素。2.若它是—个操作数,则输出它。3.若它是—个开括号(左括号),把它压入堆栈4.若它是一个操作符,则有如下情况:●若栈顶是一个开括号,则把该操作符压入堆栈;●若它比栈顶操作符有更高优先权,则把此操作符压入堆栈;●否则,从堆栈弹出操作符到输出,并重复步骤4。5.若它是一个闭括号(右括号),则弹出操作符到输出,直到遇到一个开括号。弹出并丢弃该开括号。6.若还有输入,回到步骤1。7.若没有输入,则弹出所有剩余操作符到输出。8.5指令集结构的功能设计8.5.1复杂指令系统计算机(CISC)为了节省开销,人们希望已开发的软件能够被继承和兼容,这就需要新机种的指令系统和寻址方式一定能兼容旧机种,通过向下兼容不仅可降低新机种的开发周期和开发成本,还可使用户在更换新机种的时候不需要去更新软件和操作系统,节省成本,于是出现了系列机。在系列机的发展过程中,致使同一系列的计算机指令系统变得越来越复杂。8.5.2精简指令系统计算机(RISC)SimpleisGoodRISC的主要特点有:(1)选取使用频率较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频率高的简单指令的组合实现;(2)指令长度固定,指令格式种类少,寻址方式种类少;(3)只有取数、存数指令访问存储器,其余指令的操作都在寄存器内完成;(4)采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期;(5)控制器采用组合逻辑控制,不用微程序控制;(6)CPU中有多个通用寄存器;(7)采用优化的编译程序。8.5.3CISC与RISC的比较1、充分利用VLSI芯片的面积2、提高计算机运算速度3、便于设计,可降低成本,提高可靠性4、有效支持高级语言程序5、耗能较少,在普适计算时代应用更为广泛6、优化编译技术8.6指令系统的举例和设计1)寻址方式的种类:2)操作数的个数:3)寄存器和存储器的比较:4)寄存器组的个数:5)寻址范围:6)寻址粒度:一个简单的指令系统Y86的设计Y86只支持一种16比特的操作数。另一个简化是Y86只支持4个16比特的寄存器:AX,BX,CX和DX。最后,Y86处理器只支持16比特的地址总线,最大可寻址空间为64K字节。Y86指令集提供20条指令,其中七条指令为双操作数指令,八条指令为单操作数指令,五条指令为无操作数指令。mov(reg/memory/constant,reg)reg/memory/constantregadd(reg/memory/constant,reg)reg+reg/memory/constantregcmp(reg/memory/constant,reg)对reg和reg/memory/constant进行比较,用来进行条件跳转or(reg/memory/constant,reg)regorreg/memory/constantregmov(reg,memory)regmemorysub(reg/memory/constant,reg)reg-reg/memory/constantregand(reg/memory/constant,reg)regandreg/memory/constantregnot(reg/memory)notreg/memoryreg/memoryjadest如果大于则跳转jaedest如果大于或等于则跳转jbdest如果小于则跳转jbedest如果小于或等于则跳转jedest如果等于则跳转jnedest如果不等于则跳转jmpdest无条件跳转iret中断中返回get从用户交互输入整数值,然后存储到AXput输出AX中的值到屏幕halt停止程序执行brk暂停程序执行8.6.1SPARC的指令系统1、寄存器窗口2、图着色理论3、SPARC的指令集4、SPARC的指令格式8.6.2Pentium微处理器的指令系统1、程序员能见到的寄存器2、Pentium指令格式3、Pentium的指令系统给出MOVECX,[EBX+ESI×4]的指令编码。[解]首先知道MOV指令的指令码为100010,D=1,W=1。其次MOD/RM部分为00001100。SIB部分为10110011。所以该指令编码为100010110000110010110011,也就是8B0CB3。4、Pentium的MMX指令Pentium的SSE指令SSE指令集包含了70条指令,用于支持128位紧缩单精度浮点数据,使用了XMM0~XMM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论