第四章 指令系统

总览

  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能有效支持高级语言程序。
posted @ 2018-08-12 17:30  StormAX  阅读(534)  评论(0编辑  收藏  举报