指令寻址
顺序寻址
由于指令在内存中是顺序存放,当执行一段程序时,通常是一条指令接一条指令的顺序执行。为了能够指示下一条欲执行指令的指令地址,CPU内部有一个程序计数器 PC (指令指针寄存器IP),每执行一条指令其值自动加1,指向下一条欲执行指令的指令地址。这种程序顺序执行的过程我们称为指令的顺序寻址。PC 就是用来做指令追踪
跳跃寻址方式
当程序执行循环指令或者转移指令时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址不是由程序计数器PC加1产生,而是将本条指令给出的目标地址装入PC作为下条指令的地址。
操作数寻址
形式地址是指令字中的地址,有效地址是操作数的内存地址。寻址过程就是通过寻址特征位把操作数的形式地址,变换为有效地址的过程。
立即寻址
地址码部分的形式地址 A就是操作数D,而不是操作数的地址
直接寻址
直接内存寻址特点是:在指令格式的形式地址 A 中直接指出操作数的有效地址EA。由于操作数地址直接给出而不需要变换,称为直接寻址方式。
间接寻址
(基本不采用,效率太低)
间接寻址的情况下,指令地址字段中的形式地址A不是操作数的有效地
址EA,A单元的内容才是操作数的有效地址EA。虽然可以扩大寻址范围,但是需要至少访问 2 次内存。效率低下。
寄存器寻址
当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。此时指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。
优点:执行阶段只访问寄存器,执行速度快。寄存器的个数有限,所以指令 的字长一般都很短。