首页 CH03指令系统

CH03指令系统

举报
开通vip

CH03指令系统 第 3章 计算机指令系统 这一章主要介绍计算机的指令系统 所涉及的一般概念 操作数类型 指令类 型 寻址方式和指令格式 3.1指令系统概述 3.1.1 指令系统的基本概念 指令系统是计算机系统中软件与硬 件之间的分界面 凡是能够在机器上直接运行的目标 程序都是由一系列机器指令组成的 一台计算机的指令系统设计得好坏 与否 不但直接关系着对程序设计的支持 程度 也关系着该计算机硬件系统的结 构 是计算机设计中一个需要十分关注的 1 问题 在计算机系统的设计和使用过程中 ...

CH03指令系统
第 3章 计算机指令系统 这一章主要介绍计算机的指令系统 所涉及的一般概念 操作数类型 指令类 型 寻址方式和指令格式 3.1指令系统概述 3.1.1 指令系统的基本概念 指令系统是计算机系统中软件与硬 件之间的分界面 凡是能够在机器上直接运行的目标 程序都是由一系列机器指令组成的 一台计算机的指令系统设计得好坏 与否 不但直接关系着对程序设计的支持 程度 也关系着该计算机硬件系统的结 构 是计算机设计中一个需要十分关注的 1 问题 在计算机系统的设计和使用过程中 硬件设计人员采用各种手段实现指令系 统 指令是计算机可以理解的 语言 它们是由 0和 1的二进制数据组成 所以 称为机器语言 所有的计算机都提供一些基本的操 作系统 2 计算机设计者们有一个共同目标 就 是设计出一种语言 它能很容易地以最小 的代价来实现硬件和编译器的最大功能 对于软件设计人员而言 则使用这些 指令编制各种各样的系统软件和应用软 件 用这些软件来填补硬件的指令与人们 习惯的使用方式之间的语义差距 因此 可以说 指令系统是软件设计人员与硬件 设计人员之间的一个主要分界面 也是他 们之间互相沟通的一座桥梁 基本概念 指令 计算机要执行某种操作的命令 指令系统 一台计算机的所有指令的集合 称为该计算机的指令系统 指令系统是计算机硬件的语言系统 3 一方面是程序员所能看到的机器的主要 属性 另一方面 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 明计算机具有哪些最基 本的硬件功能 也就是说指令系统既为软 件设计者提供最低层的程序设计语言 也 为硬件设计者提供了最基本的设计依据 因此说指令系统是软件和硬件的主要界 面 系列计算机 基本指令系统相同 基本结 构相同的一系列计算机 指令字 表示一条指令的机器字 就称为 指令字 机器指令是用机器字来表示的 3.1.2 指令的要素 指令包含以下要素 1. 操作码 指定计算机将要完成的具体 操作 4 2. 源操作数 操作可能涉及到多个操作 数 源操作数是操作所需要的输入数据 3. 结果 目的 操作数 操作所产生的 一个结果数据 4. 下一条指令的地址 它告诉 CPU当前 指令执行完以后到哪里去取下一条指令 3.1.3 指令的表示 1. 指令格式 即指令结构的形式 是指 令字用二进制代码表示的形式 通常由操 作码字段和地址码字段组成 一条指令的结构形式为 操作码 OP 地址码 操作码 OP 用于说明该指令操作的 性质及功能 5 地址码用来描述该指令的操作对象 由它给出操作数地址或直接给出操作数 及操作结果存放的地址 假若一个计算机指令系统需要有 N 条指令 操作码的二进位数为 n 则应满 足关系式 N 2n 指令格式设计的准则之一是 在满足 操作种类 寻址范围和寻址方式的前提 下 指令尽可能短 指令长度的确定是个值得关注的问 题 通常 精简指令系统 RISC 计算 机采用固定长度的指令格式 而复杂指令 系统 CISC 计算机采用可变长度的指 令格式 6 2 用助记符来表示指令 机器指令是二进制数 但这对于人类 来说既不方便 也难辨认 所以我们通常 用指令助记符来表示 表 3.1 Add 表示相加 Sub 表示相减 Mul 表示相乘 Div 表示相除 And 表示相与 Or 表示相或 Load 表示从存储器取数据 Store 表示存数据到存储器 操作数也用符号来表示 例如 add r1 r2 r3 表示把寄存器堆中寄存器 r2的内容和 r3 的内容相加 结果放到寄存器 r1中 7 一般来讲 一个计算机的指令系统应 包括以下几种类型的指令 1 算术运算指令 2 逻辑运算指令 3 移位指令 4 存储器访问指令 5 I/O访问指令 如果 I/O空间与 存储器空间是分开的 6 转移指令 7 浮点运算指令 8 其它指令 3.1.4 指令系统设计应该考虑的问题 指令系统的设计是一个比较复杂的 问题 涉及到诸多方面 指令系统定义了 CPU应完成的多数功能 它主要包括 8 操作表 应提供多少和什么样的操作 数据类型 对多少种数据类型进行操作 指令格式 指令的长度 地址数目及各个 字段的大小 寄存器 能被指令访问的 CPU寄存器的 数目及其用途 寻址方式 确定操作数地址的方式 在设计一个计算机或处理机的指令 系统时会遇到这样一个问题 就是指令种 类和寻址方式是越多越复杂越好 还是越 少越简单越好呢 3.2 操作数类型 机器指令对操作数进行处理 操作数 可以分为以下几种 1 地址 addresses 9 2 数值 numbers 3 字符 characters 4 逻辑数据 logic data 3.2.1 地址 地址也是一种形式的数据 通常需要 计算才能得到存储器地址 由访问存储器 的指令计算出 它是无符号整数 3.2.2 数值 它可分为以下 3种 1 整数 integer 或定点 fixed point 数 2 浮点 floating point 数 3 十进制 decimal 数 整数的表示方法简单 数据运算速度 快 但是数据精度及表示范围都较低 10 浮点数的数据精度及表示范围较整 数有很大的提高 但运算复杂 速度较慢 3.2.3 字符 文本 把由一系列字符组成的字符串 charater string 称为文本 text 文本或字符 characters 是另一种 比较常见的数据类型 3.2.4 逻辑数据 每项的值为 0或 1 当数据以这种方 式看待时 它就是逻辑数据 3.2.5 数据类型举例 自学 3.3 指令类型 不同的计算机指令系统是不同的 而 且具有很大的差别 但有些常用的指令则 是每个计算机所共有的 以下列出的是一 11 些比较通用的典型的指令类型 1 数据传送类型 2 算术运算类型 3 逻辑操作类型 4 移位操作类型 5 转移控制类型 6 输入输出类型 下面我们简要介绍每种类型所包含的指 令 3.3.1 据传送类型 数据传送指令是最基本的指令类型 它应该完成如下的工作 1 指明源操作 数和目的操作数的地址 这些地址可能是 存储器地址 寄存器编号或堆栈的栈顶 2 指明将要传送数据的长度 3 指 明每个操作数的寻址方式 12 表 3.5 数据传送操作类型 操作 说明 Move Store Load Exchange Push Pop 由源向目标传送字或块 由处理器向存储器传送字 由存储器向处理器传送字 源和目标交换内容 由源向堆栈顶传送字 由堆栈顶向目标传送字 若源和目标都是寄存器 CPU 的动 作只要完成使一个寄存器到另一个寄存 器即可 这是 CPU内部的动作 若有一 个或两个操作数在存储器中 则 CPU必 须完成如下的某些或全部动作 1. 根据寻址方式计算存储器的地址 2. 若是虚拟存储器的地址 则要将虚存 地址转换成实际的存储器地址 13 3. 确定所寻找的栈顶是否在 Cache中 4. 若不是 则向存储器模块发命令 3.3.2算术运算类型 大多数计算机提供加减乘除 4种基 本的算术运算指令 表 3.6 算术运算类型 操作 说明 Add Sub Mul Div Abs Neg Inc Dec 计算两个操作数的和 计算两个操作数的差 计算两个操作数的积 计算两个操作数的商 取操作数的绝对值 改变操作数的符号 操作数加 1 操作数减 1 3.3.3 逻辑类型 逻辑操作主要是指位与位之间的与 14 或 非 异或 4种逻辑 它们的共同特点 是按位操作 位与位之间不发生关系 表 3.7 逻辑运算类型 操作 说明 AND OR NOT XOR 与 或 非 异或 3.3.4 移位操作类型 我们可以对数据进行算术移位操作 前提是不产生溢出 移位有左移 shift left 和右移 shift right 两种 无论是 左移还是右移都分为算术移位和逻辑移 位两种形式 算术移位指的是将数据看作是有符 号的整数 移位规则与机器采用的码制有 15 关 算术左移 n 位相当于把机器数所对 应的真值乘以 2n 算术右移 n 位相当于把机器数所对 应的真值除以 2n 逻辑移位要简单一些 无论是逻辑左 移还是逻辑右移 都是简单地把移出的位 丢失 而在另一端填入 0 表 3.8 移位操作类型 操作 解释 shl/shr sal/sar rol/ror rcl/rcr 逻辑左移/逻辑右移 算术左移/算术右移 循环左移/循环右移 带 C逻辑左移/带 C逻辑右移 3.3.5 转移控制类型 转移指令改变程序的顺序执行次序 16 条件转移 branch 指令通常用 PC 加偏移量的寻址方式令 PC 指向目的地 址 无条件转移 jump 指令 把某个 寄存器的内容写入 PC 以改变程序的执 行顺序 表 3.9 转移控制类 指令 解释 Branch Jump Call Return Trap Rett 条件转移 无条件转移 子程序调用 从子程序返回 陷阱 从陷阱返回 3.3.6 输入输出 输入输出有多种不同的方式 如独立 17 编址的I/O 存储器映射编址的 I/O DMA 方式及 IOP方式 3.3.7 指令类型举例 自学 3.4 寻址方式 指令的执行需要引用操作数 寻找操 作数的地址的方式就是寻址方式 下面介绍几个概念 隐含 寻址方式 由指令字段中操作码 字段决定的寻址方式 称为 隐含 寻址 方式 也称为 隐式 寻址方式 显式 寻址方式 在指令中设置寻址 方式字段 由寻址方式字段不同的编码来 指定操作数地址的寻址方式 这称为 显 式 寻址方式 形式地址 指令格式中的地址码字段 18 提供的 地址 称为形式地址 有效地址 存放操作数的内存的实际 地址称为有效地址 寻址方式 指令中提供的形式地址变 换为有效地址的方法 当指令格式确定之后 指令中各个字 段的布局也就确定了 因而地址字段也就 确定了 一般说来指令格式中的地址字段 是非常有限的 指令设计的一个很重要的方面就是 要确定寻址方式 使得能够用指令格式中 的非常有限的地址字段尽可能的在大的 范围内寻找操作数 即寻址 常用的基本寻址方式 立即寻址方式 19 直接寻址方式 间接 寄存 偏移 符号约 A=指 为形式地址 R=指 容 EA=操 X 3.4.1 立即 寻址方式 寄存器寻址方式 器间接寻址方式 量寻址方式 定 令中地址字段的内容 A 也称 向寄存器的指令地址字段的内 作数的实际 有效 地址 =位置 X中的内容 寻址方式 操作数 A OP A 20 立即寻址方式的优点 获得操作数不 需要额外的存储器访问周期 速度快 立即寻址方式的缺点 数据的大小受 到限制 即受到地址字段的长度的限制 3.4.2直接寻址方式 指令中的形式地址直接作为存储器 的有效地址 即 EA=A 存储器 操作数 OP A 直接寻址方式的优点 简单 不需要 进行加法运算 21 直接寻址方式的缺点 地址空间受指 令地址字段长度的限制 3.4.3间接寻址方式 指令中的形式地址不是直接作为存 储器的有效地址 而是作为存储器的有效 地址的地址 即 EA= A 存储器 地址 操作数 OP A 间接寻址方式的优点 寻址范围大 间接寻址方式的缺点 多重存储器访问 22 3.4.4寄存器寻址方式 寄存器寻址类似于直接寻址方式 唯 一的区别是指令的地址字段中指明的不 是存储器的有效地址 而是寄存器的编 号 即操作数在寄存器中 EA=R 寄存器 操作数 OP R 寄存器寻址方式的优点 指令中仅需 要一个较小的地址字段 这种寻址方式并 不访问存储器 因而速度快 寄存器寻址方式的缺点 地址空间很 23 有限 3.4.5寄存器间接寻址方式 寄存器间接寻址方式类似于间接寻 址方式 寄存器的内容是存储器的有效地 址 即 EA= R 寄存器 存储器 操作数 OP R 寄存器间接寻址方式的优缺点也类 似于间接寻址方式的优缺点 寄存器间接 寻址方式比间接寻址方式少了一次存储 器的访问 24 3.4.6偏移量寻址方式 偏移量寻址方式是直接寻址与寄存 器间接寻址相结合的一种寻址方式 寄存 器的内容与偏移量相加的结果是存储器 地址 即 EA= R +A 寄存器 存储器 ⊕ R A 操作数 偏移量寻址要求指令有两个地址字 段 至少其中一个是显式的 另一个地址 字段可以隐含在操作码之中 或者说是基 25 于操作码隐含引用的寄存器 该寄存器的 内容加上 A产生有效地址 偏移量寻址方式通常有如下的三种 使用方式 相对寻址 基址寄存器寻址 变址寻址 1 相对寻址 隐含引用的寄存器是程序计数器 PC 即 EA= PC +A 相对寻址利用了程序的局部性概念 若大多数存储器的访问都靠近正在执行 的指令 则使用相对寻址可以节约指令的 地址字段的位数 2 基址寄存器寻址 基址寄存器寻址方式简称基址寻址 26 方式 其的概念如下 指令中被引用的寄存器称为基址寄 存器 基址寄存器中的内容是一个存储器 地址 指令中的地址字段含有一个相对于 那个基址寄存器内容 存储器的地址 的 偏移量 该偏移量通常用无符号整数表 示 寄存器的引用可以是显式的也可以 是隐式的 记指令中被引用的寄存器的编 号为 B 则有效地址为 EA= B +A 3 变址寻址 指令的地址字段引用一个存储器的 地址 被指令引用的寄存器的内容是相对 27 于 指令的地址字段引用的 存储器地址 的一个偏移量 若记被指令引用的寄存器 为 I 则 EA= I +A 3.4.7 实际机器的寻址方式简介 自学 3.5 指令格式 3.5.1指令格式的选择 确定指令格式是指令系统设计的一 个重要方面 指令格式中包括操作码字段 和地址码字段 1. 操作码字段 指令格式中操作码字段长度的选择 主要根据指令系统中所包含的总的指令 的数量 操作码是用来指示机器执行什么样 28 的操作 每一条指令都有一个确定的操作 码 不同指令的操作码用不同的编码表 示 操作码位数越多 所能表示的操作种 类就越多 两种编码方式 A.定长操作码 操作码的长度固定 且集中放在指令 字的第一个字段中 指令的其余部分用于 地址码 精简指令系统计算机 RISC 中广泛 采用定长操作码 B 变长操作码 这是操作码长度不固定 即操作码和 地址码位数不固定 操作码位数随地址码 29 数的减少而增加 对地址数少的指令允许 操作码长些 对地址数多的指令则操作码 就短些 2. 地址码字段 首先要确定操作数的地址 用以指明 操作数的存放处 然后要确定操作结果的地址 用以存 放运算的结果 不同的指令其所需的操作数个数可 能不同 一般说来 操作数地址个数可以 从 0到 3 另外从指令的完备性角度考虑 指令 中应当有一个地址字段指出下一条指令 地址 以便程序能连续运行 但由于在大 多数情况下程序是顺序执行的 因此 可 30 以在硬件上设置一个程序计数器 PC Program Counter 专门存放当前要执 行的指令地址 每取出一条指令后 PC 自动增值指出下一条指令地址 设计指令格式首先遇到的一个问题 就是定义指令的长度 从程序员的角度 从执行效率考虑 A.三地址指令格式 三地址指令指令格式的一般形式为 A2 A1 A3 OP 该指令的意义是 (A1)OP(A2) (A3) B 二地址指令格式 二地址指令格式为: 31 A2 A1 OP 该指令的意义是 (A1)OP(A2) (A1) C 一地址指令格式 一地址指令的一般格式为 OP A 该指令意义是一个操作数由地址码 A给出 即源操作数 另一个操作数 目 的操作数 隐含在累加器 AC中 操作结 果替代累加器 AC原来的内容 记为 (AC)OP(A) (AC) D 零地址指令格式 零地址指令格式是面向堆栈的 零地 址指令格式为 OP 32 固定长度的指令格式有利于指令译 码及流水线操作 RISC计算机通常采用 固定长度的指令格式 可变长度的指令格 式有利于有效地使用指令字段 节约存储 器空间 计算机发展的早期 存储器价格 很贵 因此 发展较早的 CISC计算机通 常采用可变长度的指令格式 但 CISC计 算机在流水线及超标量执行方面会遇到 很多麻烦 因此 CISC计算机不利于采用 计算机体系结构中的一些新的研究成果 3.5.2 实际指令格式简介 自学 33
本文档为【CH03指令系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_316916
暂无简介~
格式:pdf
大小:184KB
软件:PDF阅读器
页数:33
分类:其他高等教育
上传时间:2010-11-27
浏览量:18