一概述
1.基址寻址
将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A。
注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。
当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
优点:可扩大寻址范围(基址的位数大于形式地址A的位数);用户不必考虑自己的程序存于主存的哪一空间区域。故有利于多道程序设计,以及用于编制浮点程序。
优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);用户不变考虑自己的程序
2.变址寻址
有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,
即EA=(IX)+A,其中IX为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可用用户改变(作为偏移量),形式地址A不变(作为基地址).
优点:可扩大寻址范围(变址寄存器的位数大于形式地址A的位数);在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
变址寻址和基址寻址配合使用:EA=A+(BR)+(IX)
变址寻址与间接寻址配合使用;
如先变址后间址:EA=(A+(IX));
先间址后变址:EA=(A)+(IX)。
相对寻址
把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于当前指令地址的位移量,可正可负,补码表示。
优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总相差一个固定值,因此便于程序浮动。
相对寻址广泛应用于转移指令。
例题: