指令包括操作码和操作数两部分。指令的寻址方式即指令如何寻找下一条指令的:分为顺序寻址方式和跳跃寻址方式,其中顺序寻址方式是根据PC给出下一条要执行指令的地址,跳跃寻址方式是从执行指令中获取下一条指令的地址,之后更新PC数据,找到下一条要执行的指令。
顺序寻址方式:
如图
程序计数器+1可得到下一条指令
如图
跳跃寻址方式
如图
由指令3可以知道向下条指令为6,程序计数器的值变为6
如图
下面介绍操作数寻址方式,前面提到指令有操作码和操作数组成,一条指令中的操作数可以通过操作数地址寻找。寻找的方式有一下几种。
首先说明,一种单地址指令的结构如下所示,其中用X,I,A各字段组成该指令的操作数地址。其中形式地址也成为偏移量。
操作码 | 变址 | 间址 | 形式地址 |
OP | X | I | A |
隐含寻址方式,操作数存在专用寄存器中
立即寻址方式,操作数存在去该指令中
直接寻址操作数存在存储器中,指令中只有操作数的形式地址
间接寻址方式,操作数存在存在存储器中,但指令中的形式地址要通过存储器中的地址找到操作数。
寄存器寻址,操作数存在寄存器组中
偏移量寻址,指令需要通过操作码的隐式地址和显式地址协作寻找存储器中的操作数。
下面是堆栈寻址
这里只做简单描述,深入学习需要另寻资料。有错误的地方还请雅正。