相对寻址:以当前
程序计数器pc的内容为基址,加上指令给出的一字节补码数(偏移量)形成新的pc值的寻址方式。
以当前
程序计数器pc的内容为基址,加上指令给出的一字节补码数(偏移量)形成新的pc值的寻址方式称为相对寻址。隐含引用的专用
寄存器是程序计数器(PC),即EA=A+(PC),它是当前PC的内容加上指令字段中A的值。一般来说,
地址字段的值在这种操作下被看成2的补码数的值。因此有效地址是对当前指令地址的一个上下范围的偏移,他基于
程序的局部性原理。使用相对寻址可节省指令中的地址位数,也便于程序在内存中成块搬动。
表示指令中操作数所在的方法称为寻址方式。8086/8088有七种基本的寻址方式:
立即寻址,
寄存器寻址,
直接寻址,
寄存器间接寻址,
寄存器相对寻址,
基址加
变址寻址,相对基址加变址寻址。
直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址和相对基址加变址寻址,这五种
寻址方式属于
存储器寻址,用于说明操作数所在
存储单元的地址。由于
总线接口单元BIU能根据需要自动引用
段寄存器得到段值,所以这五种方式也就是确定存放操作数的存储单元有效地址EA的方法。有效地址EA是一个16位的
无符号数,在利用这五种方法计算有效地址时,所得的结果认为是一个无符号数。除了这些基本的寻址方式外,还有固定寻址和
I/O端口寻址等。
计算机中的寻址方式是非常重要的概念。所谓寻址方式就是寻找
操作数的方法。只有找到相应存储单元中的操作数,才能进行相关操作。程序执行的过程其实就是不断地在存储单元中寻找操作数并对操作数进行特定操作的过程。一般来说,指令的寻址方式越多,意味着指令的功能也越强。
MCS-51单片机的寻址方式共有7种。分别为
直接寻址、
立即数寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和
位寻址。
8051单片机设有
转移指令,分为直接转移指令和相对转移指令两种。相对转移指令需要采用
相对寻址方式。此时指令的操作数部分给出的是地址的相对偏移量。在指令中以“rel”表示相对偏移量,rel为一个
带符号的常数,可正可负(若rel为负,用
补码表示)。一般将相对转移指令本身所在的地址称为源地址,转移后的地址称为目的地址,它们的关系为: