




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第五章指令系统 5 9IBM大型机指令系统简介 5 1指令系统概述 5 2指令格式 5 3数据在内存中的存放格式 5 4指令的寻址方式 编码方式 5 5指令的类型 5 6指令系统的兼容性 5 7精简指令系统计算机 RISC 简介 5 8Pentium微处理器指令系统简介 2 5 1指令系统概述 计算机系统中运行的软件有系统软件和应用软件两种 系统软件对整个计算机系统进行调度 管理 监视 服务 为用户提供使用方便 扩大机器功能 提高机器使用效率 应用软件是用户针对某种领域实际应用需求而开发的软件 许多通用商品化的应用软件现已成为系统软件 如Word等 前述所有各种软件的设计基础就是计算机的指令系统 3 名词解释 指令 命令计算机直接进行某种基本操作的二进制代码串 也叫机器语言代码 每条指令可以完成一个独立的算术运算或逻辑运算操作 从计算机组成的层次结构来说 计算机的指令有微指令 机器指令和宏指令 微指令是微程序级的命令 它属于硬件 宏指令是由若干条机器指令组成的软件指令 它属于软件 而机器指令则介于微指令与宏指令之间 指令系统 一台计算机能直接理解与执行的全部指令的集合称为该机的指令系统 也叫机器语言 指令系统是进行计算机逻辑设计和编制程序的基本依据 它直接说明了这台计算机的功能 不同类型CPU的指令系统是不能混用与兼容的 但同一系列的CPU一般升级后指令都有扩充 并可兼容 复杂指令系统计算机 CISC 和精简指令系统计算机 RISC 4 计算机的性能与它所设置的指令系统有很大的关系 而指令系统的设置又与机器的硬件结构密切相关 通常性能较好的计算机都设有功能齐全 通用性强 指令丰富的指令系统 但这需要复杂的硬件结构来支持 系列 Series 计算机是指基本指令系统相同 基本体系结构相同的一系列计算机 一个系列往往有多种型号 各型号的基本结构相同 但由于推出的时间不同 所采用的器件也不同 因此在结构和性能有很大差异 系列机能解决软件兼容问题的必要条件使该系列的各机种有共同的指令集 旧机种上运行的各种软件可以不加修改的在新机种上运行 本章从指令格式 地址结构 寻址方式 指令类型等方面介绍 5 5 2 1指令的结构指令字 代表指令的一组二进制代码信息 指令长度 指令字中二进制代码的位数 位数越多 所能表示的操作信息和地址信息也就越多 使指令功能丰富 但会占用存储空间多 读取指令的时间可能增加 1 典型的指令格式操作码OP 指明操作性质的命令码 提供指令的操作控制信息 操作对象A 说明操作数存放的地址 有时则就是操作数本身 5 2指令格式 OP A 6 零地址指令例如 NOP HLT 也叫无操作数指令一地址指令例如 递增 移位 取反 INCAX NOTBX二地址指令例 A1 A2 A1 A2 为源地址 A1 目的地址三地址指令例 A1 A2 A3 其中 A1 A2 为源地址 A3 为目的地址 操作后源地址内容不变仅被拷贝多地址指令 用于实现成批数据处理 OP OPA 2 指令格式的五种类型 根据操作对象地址长度的不同而划分 7 3 指令操作码的编码格式 指令操作码的位数限制指令系统中完成操作的指令条数 固定格式操作码操作码长度固定 一般集中于指令字的前一个字段中 若操作码长度为K为 则它最多只能有2K条不同指令 在字长较长的大中型以及超级小型机上广泛使用 优点 有利于简化硬件设计 减少译码时间可变格式操作码通常在指令字中用一个固定长度的字段来表示基本的操作码 而对于一部分少地址指令则把它们的操作码扩充到该指令的地址字段 即操作码长度可以改变 这种方法在不增加指令字长度的情况下可表示更多的指令 但增加了译码和分析难度 需更多硬件支持 微机中常使用此方式 8 5 2 2指令操作码的扩展技术可变格式操作码的指令示例1 假设某机器的指令长度为16位 包括4位基本操作码和三个4位地址码段 15 1211 87 43 04位基本操作码可表示16个状态 因此如用4位操作码则能表示16条三地址指令 而用8位操作码则可表示256条二地址指令 而用12位操作码则可表示4096条一地址指令 9 同样情况下 如果需要三地址 二地址 一地址指令各15条 零地址指令16条 则一样能够采用可变格式操作码实现 例如可以这样规定 15条三地址指令的操作码为 0000 111015条二地址指令的操作码为 前4位1111 即11110000 1111111015条一地址指令的操作码为 前8位均为1 即111111110000 11111111111016条零地址指令的操作码为 前12位均为1 即1111111111110000 1111111111111111其中1111 11111111和111111111111作为扩展操作码标志 可变格式操作码的指令示例2 10 再如 同样情况下用可变格式操作码分别形成三地址指令 二地址指令 一地址指令和零地址指令15 14 31 16条 按要求得到结果之一如下15条三地址为 0000 111014条二地址为 11110000 1111110131条一地址为 111111100000 11111111111016条零地址为 1111111111110000 1111111111111111其中1111 11111110 11111111和111111111111是扩展操作码标志 可变格式操作码的指令示例3 11 5 2 3指令长度与机器字长的关系机器字长是指计算机能直接处理的二进制数据的位数 它与计算机的功能和用途有很大的关系 是计算机的一个重要技术指标 首先 字长决定了计算机的运算精度 字长越长计算机的运算精度越高 因此高性能的计算机字长较长 其次 地址码长度决定了指令直接寻址能力 若为n位 则给出的n位直接地址寻址2n字节 这对于字长较短 8位或16位 的微型机来说远远满足不了实际需要 扩大寻址能力的方法 一是通过增加机器字长来增加地址码的长度 二是采用地址扩展技术 把存储空间分成若干个段 用基地址加位移量的方法来增加地址码的长度 指令字长度是指一个指令字中包含二进制代码的位数 如指令字长度等于机器字长度的指令 称为单字长指令 12 指令的长度主要取决于操作码的长度 操作数地址的长度和操作数地址的个数 由于操作码的长度 操作数地址的长度及指令格式不同 各指令的长度不是固定的 指令的长度通常为字节的整数倍 指令的长度与机器的字长没有固定的关系 它既可以小于或等于机器的字长 也可以大于机器的字长 前者称为短格式指令 后者称为长格式指令 一条指令存放在地址连续的存储单元中 同一台计算机中可能既有短格式指令又有长格式指令 但通常是把最常用的指令 如算术逻辑运算指令 数据传送指令 设计成短格式指令 以便节省存储空间和提高指令的执行速度 在Pentium系列机中 指令格式也是可变的 由8位 16位 32位 64位不等 13 5 3数据在内存中的存放格式 计算机中基本数据有逻辑数 定点数 无符号数 浮点数 字符数及数组等 目前微机所用的数据 字 长度一般为32位 4个字节 内存地址按字节编址 计算机指令系统可支持对字节 半字 字 双字的运算 有的还支持位操作 为便于硬件的实现 一般要求多字节数据采用对准数据边界的方式储存 不合要求则填充空白字节 无操作 代替 14 4字节32位存储器 字地址0 字地址4 半字地址8 半字地址10 半字地址12 字节地址15 半字地址22 对准边界 下图所示 格式存储数据 字节地址14 字节地址19 字节地址18 字节地址16 字节地址17 字节地址20 字节地址21 地址 048121620 在数据对准边界存储的计算机中 对于以二进制表示的存储地址来说 半字地址的最低位 字地址的最低两位和双字地址的最低三位恒为零 这种方式的整个字的存储时间要短 需要1个存储周期 15 32位 4个字节 地址 04 8 字节 半字的一半 一字的3 4 半字 有的计算机不要求对准边界存储数据 如下图所示 但这种方式增加硬件的复杂程度 并且有可能导致访问次数增加 例如存储一个字 则需要2个存储周期 半字另一半 一字的1 4 半字 16 5 4指令的寻址方式 编码方式 寻址方式 指令中如何提供操作数或操作数地址 换句话说就是规定如何对地址字段作出解释以找到操作数 不同类型计算机的寻址方式亦有差别 但大多可以归结为立即寻址 直接寻址 间接寻址 变址寻址以及相对寻址等几种寻址方式 或者这几种方式的组合与变形 17 在这种方式中 指令的地址码部分就是指令的操作数 而不是操作数的地址 优点 取指同时取得操作数 提高指令的运行速度 缺点 操作数的长度受指令长度的影响 且不便修改 适合操作数固定的情况 例 MOVAX 1AH的结果 AX 1AH 1 立即数寻址方式 立即数 可正可负补码 形式地址A就是操作数 演示 18 2 直接寻址方式 指令的地址码部分给出的就是操作数在存储器中的地址 特点是简单直观 便于硬件实现 但操作数地址是指令的一部分 只能用于访问固定的存储器单元 例 MOVAX 0110H 存储器 OP A 操作数0110H 演示 19 3 寄存器寻址方式 在指令的地址码部分给出某一寄存器的名称 而所需的操作数就在这个寄存器中 这种方式数据传送快 计算机中多采用 例 MOVAX BX其中BX为源操作数地址 AX为目的操作数地址 操作的结果为将BX中的数据传送 拷贝 到AX中 有效地址即为寄存器编号 演示 20 4 寄存器间接寻址方式 在指令的地址码部分直接给出的既不是操作数也不是操作数的地址 而是操作数地址的地址 优点 改变寄存器Rn中的内容就可访问内存的不同地址 修改十分方便 缺点 二次寻址速度慢 例 MOVAX BX 存储器 OP Rn A 操作数 Rn A 演示 21 5 变址寻址方式 变址寻址 把CPU中变址寄存器的内容和指令地址部分给出的地址之和作为操作数的地址来获得操作数 这种方式多用于字串处理 矩阵运算和成批数据处理 OP RxA K Rx 加法器 存储器 操作数 A K A 演示 22 6 基址寻址方式 将整个存储空间分成若干个段 段的首地址存放在基址寄存器中 操作数的存储地址与段的首地址的距离即段内偏移量由指令直接给出 操作数存储单元的实际有效地址就等与基址寄存器的内容与段内偏移量之和 改变基址寄存器的内容 基准量 并由指令提供位移量就可以访问存储器的任一单元 基址寄存器用于程序装配可为浮动程序分配存储单元 基址寻址面向系统 解决程序的存储定位问题 变址寻址面向用户 用以访问字串和数组 23 1 采用专用寄存器作基址寄存器 EA BR A BR为基址寄存器 可扩大寻址范围 便于程序搬家 BR内容由操作系统或管理程序确定 在程序的执行过程中BR内容不变 形式地址A可变 演示 24 2 采用通用寄存器作基址寄存器 R0作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器 基址寄存器的内容由操作系统确定 在程序的执行过程中R0内容不变 形式地址A可变 25 7 相对寻址方式 也称程序计数器PC 指令指针IP 寻址 其有效地址是指令中地址码部分给出的形式地址 偏移量Disp 与程序计数器PC 或IP 的内容之和 即有效地址是以当前PC IP 的内容为基准浮动的 浮动的距离就是偏移量 偏移量可正可负 通常用补码表示 相对寻址方式主要应用于相对转移指令 由于目的地址随PC IP 变化不固定 所以非常适用于浮动程序的装配与运行 26 相对寻址 EA PC A A是相对于当前指令的位移量 可正可负 补码 A的位数决定操作数的寻址范围 程序浮动 广泛用于转移指令 操作数 相对距离A 演示 27 寻址方式演示直接寻址间接寻址多重间接寻址相对基地址寻址变址寻址变址间接寻址间接变址寻址 28 例题 一种两地址 寄存器R与存储器S RS型指令的结构如下所示 其中I为间接寻址标志位 X为寻址模式字段 D位偏移量字段 通过I X D的组合 可构成下表所示的寻址方式 可写出六种寻址方式的名称 6位4位1位2位16位寻址方式表 为变址寄存器R3为通用寄存器 为基址寄存器 E D 00 0 1 2 3 4 5 6 说明 有效地址E算法 X I 寻址方式 0 0 0 1 1 29 解 直接寻址 相对寻址 变址寻址 寄存器间接寻址 存储器间接寻址 基址寻址 30 5 5指令的类型 一个指令系统常有几十 几百条指令 Intel8086具有133条指令 但按功能可以划分为如下几大类 1 数据传送指令用以实现寄存器与寄存器之间 MOVAX BX 寄存器与内存单元之间 MOV 0001H AX 以及内存单元相互之间的数据传送 数据能够被从源地址传送到目的地址 而源地址中数据不变 拷贝 包括 立即数送寄存器 MOVAX 1 将数据送到不同字长的寄存器中 MOVAL 78H MOVAX A0A0HMOVEAX 12345678H 以及寄存器组数据交换等操作指令 31 2 算术与逻辑运算指令 算术运算指令 一般包括定点 浮点的加 减 乘 除运算 根据运算结果改变标志寄存器的状态位 ADD ADC SUB SBB INC DEC DIV MUL逻辑运算 一般包括逻辑与 逻辑或 逻辑非 逻辑异或等运算 是以二进制为单位按位进行运算 OR AND XOR NOT 32 3 移位指令 算术移位 左移时空位补0而符号位进标志位 右移时空位复制符号位而溢出位进标志位 逻辑移位 整体移位 空位补0 溢出进标志位 循环移位 有不带进位循环和带进位循环 前者循环后的溢出位进标志位 后者与标志位一起循环 4 比较指令 比较指令 CMPAX BX作用 根据参加比较的两个数相减后的结果 区分大于等于小于等情况对标志位进行置位操作 比较指令只影响标志位 而不影响参加比较的操作数 33 5 转移指令 作用 根据逻辑判断结果 改变程序的执行顺序 无条件转移指令强迫CPU运行程序地址转移至新地址开始执行程序 有条件转移指令根据当前运算的结果进行逻辑判断 符合判断条件则转移到指令表明的新地址处执行程序 否则继续按原顺序执行原来的程序 根据实际需要 有条件转移指令分为许多种类 其中包括单一条件转移指令 复合条件转移指令 适用于无符号数的条件转移指令 适用于有符号数的条件转移指令以及某些特殊的条件转移指令等等 34 6 调用指令和返回指令 调用指令实现从一个程序转去执行子程序的操作 返回指令则使CPU结束执行子程序而返回执行原程序 7 输入 输出指令 完成在中央处理器和外设之间进行数据交换 输入指令使数据由外设传送到处理机 输出指令使数据由处理机传送到外设 CALLSUB1 CALLSUB2 CALLSUB2 RETURN RETURN 35 8 堆栈及堆栈操作指令堆栈 stack 是由若干个连续存储单元组成的先进后出 firstinlastout 简称FILO 存储区 也称为软堆栈 其工作原理是第一个送入堆栈中的数据存放在栈底 最后送入堆栈中的数据存放在栈顶 栈底是固定不变的 而栈顶却是随着数据的入栈和出栈在不断变化 为了表示栈顶的位置 有一个寄存器或存储器单元用于指出栈顶的地址 这个寄存器或存储器单元就称为堆栈指针 stackpointer简称SP 任何堆栈操作只能在栈顶进行 在一般计算机中堆栈主要用来暂存中断和子程序调用时现场数据及返回地址 用于访问堆栈的指令只有压入 即进栈 和弹出 即退栈 两种 它们实际上是一种特殊的数据传送指令 压入指令 PUSH 是把指定的操作数送入堆栈的栈顶 而弹出指令 POP 的操作刚好相反 是把栈顶的数据取出 送到指令所指定的目的地 36 在一般的计算机中 堆栈从高地址向低地址扩展 即栈底的地址总是大于或等于栈顶的地址 也有少数计算机刚好相反 当执行压入操作时 首先把堆栈指针 SP 减量 减量的多少取决于压入数据的字节数 若压入一个字节 则减1 若压入两个字节 则减2 以此类推 然后把数据送入SP所指定的单元 当执行弹出操作时 首先把SP所指定的单元 即栈顶 的数据取出 然后根据数据的大小 即所占的字节数 对SP增量 例如 压入指令PUSHOPR把OPR 长度为两个字节 压入堆栈 其操作是 SP 2 SPOPR Sp 例如 弹出指令POPOPR弹出一个数据 长度为两个字节 送OPR 其操作是 SP OPR SP 十2 SP 其中 SP 表示堆栈指针的内容 SP 表示SP所指的栈顶的内容 硬堆栈是由寄存器组成 其特点是速度快但容量小 只有个别机器上采用 37 9 字符串处理指令 用于各种文字编辑与排版处理包括 字符串的传送 比较 查找 匹配以及字符串的抽取和字符串的替换等操作指令 10 其它特殊指令 专用指令用来完成特殊的专门操作 如 暂停 等待 空操作 位操作 以及开中断 关中断等等 特权指令分配和管理系统资源 防止非法用户对系统资源及其他用户程序的修改 打印以及删除等 需要说明的是 计算机种类不同其指令系统包括数量与功能亦有所不同 用其编程时务必参照相应的指令系统手册 38 5 6指令系统的兼容性 计算机的操作过程 加电 开外设 开主机 产生RESET信号 执行程序 停主机 停外设 停电计算机工作过程本身就是根据存储执行原理 按一定顺序自动执行程序指令 指令执行五阶段 取指 译码 取操作数 操作 结果处理 采用不同指令系统编写的程序不能相互使用 同一系列兼容机采用具有向前兼容的特点 系列机的指令系统只能扩充而不能减少 使其指令系统越来越复杂 这样就会使计算机的研制周期变长 增加了研制时间 成本以及调试和维护的难度 还会降低系统的性能 即难以实现流水线操作降低了机器的运行速度 如开发80386微处理器用了三年多的时间 投资一亿五千万美元 39 5 7精简指令系统计算机 RISC 简介 1 RISC由来计算机的不断升级扩充 同时又兼容过去产品使指令系统日趋复杂 形成了 复杂指令系统计算机 CISC 如VAXII 780有303条指令 18种寻址方式 Pentium机有191条 种寻址方式 复杂指令系统增加硬件复杂性 降低机器运行速度 经实际分析发现 1 各种指令使用频率相差悬殊 80 指令使用很少 2 指令系统的复杂性带来系统结构的复杂性 增加了设计时间和售价 也增加了VLSI设计负担 不利于微机向高档机器发展 3 复杂指令操作复杂 运行速度慢 由此提出 精简指令系统计算机 RISC 的概念 40 RISC不是简单地简化指令系统 而是通过简化指令使计算机的结构更加简单合理 从而提高运算速度 1 仅选使用频率高的一些简单指令和很有用但不复杂指令 指令条数少 2 指令长度固定 指令格式少 寻址方式少 3 只有取数 存数指令访问存储器 其余指令都在寄存器中进行 即限制内存访问 4 CPU中通用寄存器数量相当多 大部分指令都在一个机器周期内完成 5 以硬布线逻辑为主 不用或少用微程序控制 6 特别重视编译工作 以简单有效的方式支持高级语言 减少程序执行时间 2 RISC的特点 41 5 8Pentium微处理器指令系统简介Pentium处理器包括4个32位数据寄存器EAX EBX ECX和EDX 其低16位称为AX BX CX和DX 低16位还可分为两个8位例如AX的低8位为AL 高8位为AH 寄存器名字中的E表示扩展 所以EAX表示将16位AX扩充到32位 还有5个32位寄存器可用作指针或变址寄存器 它们是堆栈指针ESP基指针EBP 源变址寄存器ESI 目的变址寄存器EDI 指令指针EIP 即程序计数器PC 42 EAX EBX ECX EDX EBP ESI和EDI可用作通用寄存器 AX BX CX DX BP SI和DI可被程序员作为多种用途而应用于实模式 但也可被指定为专用 例如 AX用于乘法和除法操作中或者在指令中用于访问I O端口 CX在循环操作中作为指针 CX的低8位CL寄存器还可作为移位操作的计数器 DX用于乘法和除法操作 还可作为访问I O的指针 SI和DI在字符串操作中作为指针 43 Pentium拥有6个段寄存器 它用于控制访问主存和外设I O端口 程序段寄存器CS用于取指令 数据段寄存器DS常被默认用于读 写数据 堆栈段寄存器SS用于堆栈操作 扩展段寄存器ES用于程序员希望的任何事情 附加的两个段寄存器FS和GS是从80386开始增加的 可供程序员任意使用 所有段寄存器都为16位 设CS的内容为A000H 指令指针IP 即PC 的内容为5F00H 在实模式情况下形成访存地址的过程如下 将CS的内容左移4位 二进制数 即把A000H改变成A0000H然后与IP的内容相加得A5F00H 并以此新值写入IP中 此即为下一条指令的地址 在32位保护模式 段寄存器用作选择器指出预定义的段描述符 段描述符中包含有寻址和控制信息 用以产生32位地址 Pentium的指令长度变化 即可变长度 很大 1字节 10余字节 今将其指令格式介绍如下 44 指令包括以下字段 l OP 操作码 每条指令都有操作码 某些指令在操作码中还包含有操作数长度W 8位 16位或32位 或立即数是否需扩充符号位 S 等信息 2 MOD RM本字节与下一字节联合一起提供寻址信息 MOD RM字节可指出操作数是存储在寄存器中还是在存储在存储器中 该字节分成3个字段 Mod字段 2位 与R M字节 3位 可以产生32个数值 分别表示8个寄存器和24种变址方法 Reg op字段 3位 可以是寄存器号 或者作为3位附加的操作码 R M字段 3位 可以是1个操作数所在的寄存器或者与Mod字段一起指出寻址方式 3 SIB当MOD RM为某些值时 需要SIB参与决定寻址方式 SIB字节分成3个字段 SS字段 2位 指出变址寄存器的放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医医院项目投标书
- 轧钢工上岗考核试卷及答案
- 镜片基础知识理论考核试题及答案
- 2025年计算机多媒体试卷及答案
- 2025年康复医学康复训练操作规范考核试卷答案及解析
- 2025年特种医学特殊职业健康考试答案及解析
- 2025年运动医学运动损伤康复实践考察答案及解析
- 2025年产科胎儿监护技术实操考核答案及解析
- 2025年急救护士技能操作考核试题答案及解析
- 2025年微生物学细菌培养鉴定技能考核模拟考试卷答案及解析
- 4.3 海-气相互作用课件【知识精研】高二上学期地理鲁教版(2019)选择性必修1
- 护理安全的重要性
- 全套55讲-鱼C论坛小甲鱼Python课后题-20211129034856
- 10 巴黎奥运-2025年中考英语新热点时文阅读
- 2024-2030年中国过敏性鼻炎药物行业市场发展趋势与前景展望战略分析报告
- 浙江省温州市“摇篮杯”2022-2023学年高一下学期化学竞赛试卷 含解析
- 智能建造施工技术 课件 项目1 智能建造施工概论;项目2 土方工程;项目3 基础工程
- 部编版二年级语文上册《植物妈妈有办法》教学课件2篇21
- 情侣解除关系的协议书
- 精神卫生防治业务技能竞赛理论试题及答案
- 中译版 欧洲规范8 结构抗震设计 第二部分 桥梁
评论
0/150
提交评论