计算机组成原理day6

机器指令

机器指令,指的的是一条机器语言的语句。全部的机器指令的集合,称之为机器的指令系统,因此机器的指令系统集中反应了机器的功能。

指令的一般格式

在这里插入图片描述

  • 操作码:用来指明该指令的操作,如加、减、乘、除、位移等。
    操作码的长度可以说固定的,也可以是变化的。
  • 固定的操作码:将操作码集中放在指令字的一个字段内,这样可以便于硬件设计、指令译码时间短。
  • 不固定的操作码:其操作码分散在指令字的不同字段中。
    在这里插入图片描述
  • 地址码:用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址。
    1、 四地址指令
    格式如下:
    在这里插入图片描述
    OP为操作码,A1为第一操作数地址;A2为第二操作数地址;A3为结果地址;A4为下一条指令的地址。
    该指令完成(A1)OP(A2)->(A3)的操作。后续指令地址可以任意填写,可直接寻址的地址范围与地址字段的位数有关。如果指令长为32位、操作码占8位、4个地址字段各占6位,则指令操作数的直接寻址范围为2^6 =64。如果地址字段均指示主存的地址,则完成一条四地址指令需要访问4次存储器(取指令一次,取两个操作数两次,存放结果一次)。
    2、三地址指令
    格式如下:
    在这里插入图片描述
    该指令完成(A1)OP(A2)->(A3)的操作。这看起来跟四地址有什么差别呢?在四地址的基础上,因为在PC上程序大多是按顺序执行的,而PC中存在一个PC程序计数器,既能存放当前欲执行指的地址,又有计数功能,因此它能自动形成下一条指令的地址。这样的话A4就可以省去,就形成了三地址指令。
    3、二地址指令
    格式如下:
    在这里插入图片描述
    该指令完成(A1)OP(A2)->(A1)的操作,所以A1字段既代表源操作数的地址,又代表存放本次运算结果的地址。
    4、一地址指令
    在这里插入图片描述
    该指令在二地址指令的基础上,让二地址指令完成(A1)OP(A2)->ACC所形成的。
    5、零地址指令
    零地址指令比较特殊,它在指令字中没有地址码,但其实经常会用到这种地址指令,如:NOP(空指令)、HLT(停机)、RET(返回)、IRET(中断返回)等等,前两者只有操作码;后两者没有地址码,其操作数的地址隐含在堆栈指针SP中。

指令字长

指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。

猜你喜欢

转载自blog.csdn.net/qq_42312125/article/details/108035202
今日推荐