指令系统

4.0 指令系统

- 按地址码数目分类

  零地址指令: $OP$

    含义: 1. 不需要操作数,如空操作,停机,关中断等指令

       2.两个操作数放在栈顶和次栈顶,结算结果押回栈顶

  一地址指令: $OP..A_1$

    含义: 1. $OP(A_1)->A_1$,如加一,减一等操作

  二地址指令: $OP..A_1(目的操作数)...A_2(源操作数)$

    含义: $(A_1)OP(A_2)->A_1$    

  三地址指令: $OP..A_1..A_2..A_3(结果)$

    含义: $(A_1)OP(A_2)->A_3$ 

  1. 指令字长(Instruction Word Length):

    • 定义: 指令字长是指计算机中一条机器指令所占的位数。
    • 示例: 如果一条机器指令的长度为32位,那么它的指令字长就是32位。
  2. 机器字长(Machine Word Length):

    • 定义: 机器字长是指计算机中一条指令或数据所占的位数,也是 CPU 一次能处理的二进制数据的位数。
    • 示例: 如果计算机的机器字长为64位,那么 CPU 一次可以处理64位的二进制数据。
  3. 存储字长(Storage Word Length):

    • 定义: 存储字长是指计算机中一个存储单元(通常是一个存储单元的大小)所占的位数。
    • 示例: 如果计算机的存储字长为8位,那么每个存储单元可以存储8位的二进制数据。

  举例说明: 假设一个计算机的体系结构如下:

  • 指令字长为32位,表示每条机器指令占用32位。
  • 机器字长为64位,表示 CPU 一次能处理64位的二进制数据。
  • 存储字长为8位,表示每个存储单元的大小为8位。

- 扩展操作码: 

  举例: 

 

- 指令寻址: 

  -顺序寻址: $PC+"1"->PC$

  -跳跃寻址: 由转移指令指出

  正常情况下,若是顺序执行,则只需要让 $PC+1$ 即可,若按字节编址 则让 $PC+2$ 即可

  

 - 数据寻址:

  1.直接寻址: 指令字中的形式地址A就是操作数中的真实地址,即 $EA=A$,访存 $2$ 次即 取指令和执行指令

     优点:简单,指令执行阶段仅访问一次主存不常专门计算操作数的地址。
     缺点:A的位数决定了该指令操作数的寻址范围操作数的地址不易修改。

  2.间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,即$EA=(A)$。一条指令的执行取指令访存$1$次执行指令 访存$2$次暂不考虑存结果共访存$3$次

  3.寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即$EA=R$,其操作数在由R所指的寄存器内。一条指令的执行:取指令访存$1$次/执行指令 访存$0$次暂不考虑存结果共访存$1$次  

      优点:指令在执行阶段不访问主存,只访问寄存器指令字短且执行速度快,支持向量/矩阵运算。

      缺点:寄存器价格昂贵,计算机中寄存器个数有限

 

   4.寄存器间接寻址:寄存器$R$;中给出的不是一个操作数,而是操作数所在主存单元的地址即 $EA=(R_i)$。

   5.立即寻址: 形式地址$A$就是操作数本身,又称为立即数,一般采用补码形式#表示立即寻址特征。只需要取指令即可,接下来的操作数直接被包含,执行速度最快

 

posted @ 2023-12-27 19:50  o-Sakurajimamai-o  阅读(126)  评论(0)    收藏  举报
-- --