第六节 指令系统.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理 主编:杨光煜 第6章 指 令 系 统 指令是使计算机完成某种操作的指示或命令,又称为机器指令。计算机完成的各种功能,就是执行各种指令的体现。所谓指令系统(Instruction Set)是指一台计算机上全部指令的集合,也称指令集。它反映了该计算机的全部功能,机器类型不同,其指令系统也不同,因而功能也不同。在计算机系统的设计过程中,指令系统的设计占有十分重要的地位,合理的指令系统能够提升计算机系统的性能。指令系统的设置和机器的硬件结构密切相关,一台机器要有较好的性能,必须设计功能齐全、通用性强、指令丰富的指令系统,这就需要复杂的硬件结构来支持。本章介绍指令的格式、指令的寻址方式、指令的种类以及指令的执行方式等内容。 6.1 指令的分类 6.2 指令格式 6.3 寻址方式 6.4 指令的执行 6.5 小结 6.1指令的分类 6.1.1 数据传送类指令 数据传送类指令主要包括数据传送、数据交换、压栈和退栈三种指令。这类指令主要用来实现主存和寄存器之间,或寄存器和寄存器之间的数据传送。 1.数据传送指令 这是一种常用指令,用以实现寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的数据传送。进行数据传送时,数据从源地址传送到目的地址,源地址中的数据保持不变,这实际上是一种数据复制。 应该注意,有些计算机的数据传送指令不能实现存储单元与存储单元之间的数据传送,如 Intel8086/8088的传送指令MOV。 2.数据交换指令 这种指令的功能是实现两个操作数之间的位置互换,包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的数据互换。 同样应该注意的是,有些计算机的数据交换指令不能实现存储单元与存储单元之间的数据互换,如 Intel8086/8088的XCHG指令就没有这种功能。 6.1指令的分类 3.压栈和退栈指令 压栈和退栈指令都是针对堆栈进行操作的指令。堆栈(Stack)是主存中专门用来存放数据的一个特定的区域,是由若干连续的存储单元组成的按照先进后出(FILO)原则存取数据的存储区。压栈指令的功能是把数据存入堆栈区,而退栈指令的功能是把数据从堆栈中弹出。 堆栈有两种存放数据的方向,一种是由低地址向高地址存放,另一种是由高地址向址低地址存放,通常采用后者,如图6-1所示。 6.1指令的分类 对图6-1说明如下: (1) 栈底以下是非栈区,不能放入数据,栈底以上是栈区,可存放数据。 (2) 为了指示栈顶的位置,用一个寄存器或存储器单元来指出栈顶的地址,这个寄存器或存储器单元称 为堆栈指针(Stack Pointer SP)。栈顶以上的数据为无效数据。SP的内容就是栈顶地址。用于访问堆 栈的指令只有压栈和退栈两条指令,压栈指令(在Intel8086/8088中是PUSH)用来把指定的操作数送 人堆栈的栈顶,而退栈指令(Intel8086/8088中是POP)则用来把栈顶的数据取出。图6-2表示了压栈 和退栈的过程。 6.1指令的分类 6.1.2 算术逻辑运算类指令 这类指令包括算术运算指令、逻辑运算指令和移位指令。 1.算术运算指令 算术运算指令包括二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术比较指令,十进制加、减运算指令等。不同档次的计算机具有不同数量的算术运算指令,一般微、小型机的硬件结构比较简单,支持的算术运算指令比较少,只设有二进制数的加、减、比较和求补等最基本的指令。高档的机器,除了这些最基本的算术运算指令外,还具有乘、除运算指令,浮点运算指令,以及十进制运算指令等。浮点运算指令主要用于需要大量数值运算的科学计算中,而十进制运算指令主要用于需要大量输入输出的商业数据处理中。大型机和巨型机则还设有向量运算指令,可以直接对整个向量或矩阵进行求和、求积等运算。 6.1指令的分类 2.逻辑运算指令 一般计算机都具有与、或、非、异或和测试等逻辑运算指令。有些计算机还具有位测试、位清除、位求反等位操作指令。这些指令主要用于无符号数的位操作、代码的转换、判断及运算。 3.移位指令 移位指令用来对寄存器的内容实现左移、右移或循环移位的功能,可分为算术移位、逻辑移位和循环移位三种指令,一般计算机都具有这三种指令。图6-3显示了这三种移位指令的操作过程。 6.1指令的分类 6.1指令的分类 6.1.3字符串处理指令 字

文档评论(0)

00625 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档