寻址方式是指寻找指令或者操作数的有效地址的方式。即确定本条指令的数据地址及下一条指令将要执行的指令地址的方法。 指令中的地址码字段并不代表操作数的真实地址,地址码中的字段,称为形式地址(A)。用形式地址结合寻址方式可以计算出操作数在存储系统中的真实地址,称为有效地址(EA)。 对于符号 (A),整个内容表示的是地址为A的数值。而A可以是寄存器的标号,也可以是内存地址,所以(A)是对应的数值。例如EA = (A),可以表示为有效地址为地址为A的数值。
这一部分可以用指针的知识理解,(A)相当于*A,
而EA = (A)相当于,EA = *(*A)
寻址方式分为指令寻址跟数据寻址两大类。寻找下一条要执行的指令地址,称为指令寻址。寻找操作数的地址称之为数据寻址。
指令寻址
- 顺序寻址 程序的指令序列在主存中顺序存放,程序执行的时候,从第一条指令开始,逐条取出并逐条执行。这种程序的顺序执行,称为顺序寻址方式。 为了达到顺序寻址的目的,CPU中必须有一个程序计数器(PC).对指令的顺序号进行计数。PC中开始时存放的是程序的首地址,每执行一条指令,PC+1,用来指明下一条指令所在内存的地址,直到程序结束。这里一定注意,PC中存放的是下一条指令的地址。
- 跳跃寻址 当程序出现分支或者循环的时候,就会改变程序的执行顺序,此时对指令寻址采取跳跃寻址方式。。所谓跳跃,便是指下条指令的地址并不是通过PC的当前值来获取的,而是由指令本身给出,跳跃的处理方式是重新修改PC的内容,然后进入取指令阶段(也就是说,下一条指令的地址仍由PC所给出,只不过它的值被修改了。)
数据寻址
数据的寻址方式比较多样,其过程就是把操作数的形式地址,变换成操作数的有效地址的过程。通常数据寻址的指令格式如下: