第四章 指令系统

总览

  1. 指令格式

    1. 指令的基本格式
    2. 定长操作码指令格式
    3. 不定长操作指令格式
  2. 指令的寻址方式

    1. 数据寻址和指令寻址
    2. 常见寻址方式
  3. CISC和RISC的基本概念
  1. 指令格式

    1. 指令的基本格式

操作码


地址码

  1. 零地址指令

    1. 没有操作数的指令。如操作指令、停机指令、关中断指令
    2. 堆栈计算机中的零地址运算类指令。堆栈计算机中参与运算的两个操作数隐含的从栈顶和次栈弹出,送到运算器进行运算,运算的结构再隐含地压入堆栈中。
  2. 一地址指令

    1. 只有目的操作数的单操作数指令,OP(A1) à A1
    2. 隐含约定目的地址的双操作数指令,另一个操作数由累加器ACC提供,运算结果也在ACC中,(ACC) OP (A1) à ACC
  3. 二地址指令

    1. (A1) OP (A2) à A2

二地址指令类型


操作数的物理位置


速度


M-M


主存


最慢


R-R


寄存器


最快


R-M


寄存器-主存


介于两者之间

  1. 三地址指令

    1. (A1) OP (A2) à A3
  2. 四地址指令

    1. (A1) OP (A2) à A3, A4为下一条指令地址
  3. 指令字长与机器字长

    1. 指令字长指一条指令所占用存储空间的大小,一般为字节的整数倍;指令字长取决于操作码的长度、操作地址的长度以及操作数地址的个数。
    2. 机器字长是CPU一次能处理的数据长度,通常等于内部寄存器的位数。
  1. 定长操作码指令格式

    在指令字的最高位部分分配固定的若干位表示操作码。对于具有n位操作码字段的指令系统,最多能够表示2^n条指令。

  2. 不定长操作码指令格式

    1. 不允许较短的操作码是较长操作码的前缀
    2. 各条指令的操作码一定不可以重复
    3. 用高位的剩余空间扩充低位的表示范围,以节省空间
  1. 指令的寻址方式

    1. 数据寻址和指令寻址

      1. 指令寻址:找到下一条将要执行指令的地址;一般来说有两种方式:顺序执行时,用(PC)+"1"来得到下一条指令的地址:跳转执行时,通过转移指令的寻址方式,计算出目标地址,送到PC中即可。目标转移地址的形成方式主要有3种:立即寻址、相对寻址和简介寻址。
      2. 数据寻址:找到当前正在执行指令的数据地址

操作码


寻址特征


形式地址(A)

  1. 常见数据寻址方式

寻址方式


有效地址计算方式


用途和特点


立即寻址

 
通常用于给寄存器赋初值


直接寻址


EA=A

 

隐含寻址

 
缩短指令字长


一次间接寻址


EA=(A)


扩大寻址范围,易于完成子程序返回


寄存器寻址


EA=Ri


指令字较短;指令执行速度较快


寄存器间接寻址


EA=(Ri)


扩大寻址范围


基址寻址


EA=A+(BR)


扩大操作数寻址范围;适用于多道程序设计,常用于为程序或数据分配存储空间


变址寻址


EA=A+(IX)


主要用于处理数组问题


相对寻址


EA=A+(PC)


用于转移指令和程序浮动


先间址再变址


EA=(A)+(IX)

 

先变址再间址


EA=(A+(IX))

 
  1. CISC和RISC的基本概念

    1. RISC的主要特点

      1. 指令长度固定,指令格式种类少,寻址方式种类少
      2. 只有取/存数指令访问存储器,其余指令的操作都在寄存器内完成
      3. CPU中有多个通用寄存器
      4. 采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。
      5. 控制器采用组合逻辑控制,不采用微程序控制
      6. 采用优化的编译程序
    2. CISC的主要特点

      1. 指令系统复杂庞大,指令数目一般多大200-300条
      2. 指令长度不固定,指令格式种类多,寻址方式种类多
      3. 可以访存的指令不收限制
      4. 由于80%的程序使用其20%的指令,因此CISC各指令的使用频率差距太大。
      5. 各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。
      6. 控制器大多数采用微程序控制。
      7. 难以用优化编译生成高效的目标代码程序。
    3. RISC和CISC的比较

      1. RISC比CISC更能提高计算机的运算速度,列入,由于RISC寄存器多,因此就可以减少访存次数,其次,由于指令数和寻址方式少,因此指令译码较快。
      2. RISC比CISC更便于设计,可降低成本,提高可靠性。
      3. RISC能有效支持高级语言程序。

原文地址:https://www.cnblogs.com/stormax/p/9463713.html

时间: 2024-11-02 16:54:24

第四章 指令系统的相关文章

【知识强化】第四章 指令系统 4.2 指令寻址方式

那在我们讲寻址方式之前,我们先来看一下,补充的两个知识点,一个呢是操作数的类型,一个呢是数据存放的方式.那么之前我们已经讲过了,操作的类型.那么现在我们来看一下操作数的类型. 那么操作数有哪些类型呢?有常见的这四种类型.分别是地址.数字.字符和逻辑数.那么地址是什么呢?地址呢它实际上也可以看作是一种数据.比如在跳转指令当中,那么这个跳转指令的操作数,它就是一个地址.那么绝对地址呢,我们就可以看成是一个无符号的整数.那么相对地址,我们可以看作是一个有符号的数.但是一般来说,地址呢都是一个无符号的整

第四章

第四章 源代码的下载和编译 1.下载.编译和测试Android源代码 配置Android源代码的下载环境 ①创建一个存放下载脚本文件(repo)的目录 # mkdir  ~/bin # PATH=~/bin:$PATH ②下载repo脚本文件 # curi http://dl-ssl.google.com/dl/googlesource/git-repo/repo > -/bin/repo # chmod a+x ~/bin/repo ③创建存放Android源代码的目录 # mkdir and

《UML精粹》 第四章 时序图

第四章 时序图 一般来说,我们会在一张时序图中画出某个情节的相关行为,图种会秀出这个使用案例(use case)里面可能出现的一些对象,以及在对象间传送的信息. 本章将通过一个简单情节,做时序图各方面的相关讨论.假设我们现在有一份订单,并且准备调用它的一个命令,算出这份订单的价格.为了达到这个目的,订单需要产看它里面所拥有的一些订单明细.决定它们的价格,价格决定方式是以订单明细中所包含产品之定价规则为基础决定的.对所有订单明细做完上述动作之后,接下来订单要算出整个折扣,这时候它是以跟客户绑在一起

Java 线程第三版 第四章 Thread Notification 读书笔记

一.等待与通知 public final void wait() throws InterruptedException 等待条件的发生. public final void wait(long timeout) throws InterruptedException 等待条件的发生.如果通知没有在timeout指定的时间内发生,它还是会返回. public final void wait(long timeout, int nanos) throws InterruptedException

2017.06.29数据挖掘基础概念第四章

第四章39.为什么在进行联机分析处理(OLAP)时,我们需要一个独立的数据仓库,而不是直接在日常操作的数据库上进行 1.提高两个系统的性能 2.操作数据库支持多事务的并发处理,需要并发控制和恢复机制,确保一致性和事务的鲁棒性 3.两者有着不同的数据的结构.内容和用法40.什么是数据仓库 数据仓库是一种数据库,它与单位的操作数据库分别维护,数据仓库系统允许将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,对信息处理提供支持,是一个面向主题的.集成的.时变得.非易失的数据集合,支持管理者

构建之法学习(第四章 两人合作)

第四章 两人合作 1.代码规范  1)代码风格规范.主要是文字上的规定,看似表面文章,实际上非常重要. *原则:简明,易读,无二义性 *缩进:4个空格 *行宽:行宽必须限制,可以限定为100字符 *括号:在复杂的条件表达式中,用括号清除地表示逻辑优先级 *断行与空白的{}行:推荐格式如下 if ( condition ) {        DoSomething(); } else {       DoSomethingElse(); } *分行:不要把多条语句放在一行上.并且,不要把多个变量定

第四章—变量,作用域和内存问题(二)

第四章-变量,作用域和内存问题(二) JS没有块级作用域 js没有块级作用域,这个概念容易导致误解,这里就区分下几个情况,大家好好参考下: 我们知道,在其他类C的语言中,由花挂号封闭的代码块都有自己的作用域.但是在JS中,却没有块级作用域: 这里if(true){}代表条件永真,永远执行这条.if(false){}的话就是永远不执行这条. 这个代码执行之后,在if语句定义的变量,在if语句外可以访问的到.在if语句中的变量声明会将变量添加到当前的执行环境中(这里是全局环境). 还有如下的两个例子

Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本查找.文本替换. 3.1  查找文本 如需从输入的数据文件中取出特定的文本行,主要的工具为grep程序.POSIX采用三种不同grep变体:grep.egrep.fgrep整合为单个版本,通过不同的选项,分别提供这三种行为模式.who | grep -F root上面使用-F选项,以查找固定字符串r

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(