指令系统

4.0 指令系统

- 按地址码数目分类

  零地址指令: OP

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

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

  一地址指令: OP..A1

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

  二地址指令: OP..A1()...A2()

    含义: (A1)OP(A2)>A1    

  三地址指令: OP..A1..A2..A3()

    含义: (A1)OP(A2)>A3 

  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=(Ri)

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

 


__EOF__

本文作者Sakurajimamai
本文链接https://www.cnblogs.com/o-Sakurajimamai-o/p/17931303.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   o-Sakurajimamai-o  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
-- --
点击右上角即可分享
微信分享提示