基址寻址

  1. 在计算机设置一个专用的基址寄存器,或者由指令指定一个通用寄存器为基址寄存器。操作数的地址由基址寄存器的内容和指令的地址码A相加得到,这种情况下地址码A常被成为位移量(disp)。
  2. 当存储器容量比较大,有指令的地址码部分直接给出的地址不能直接访问到存储器的单元时,通常将存储器分成若干段,段的首地址存放在基址寄存器中,段内的位移量由指令给出。存储器的实际地址就等于基址寄存器和段内位移量相加。
  3. 基址寻址主要用来解决程序在存储器中的定位和扩大寻址空间等问题。通常基址寄存器只能由系统程序设定,由特权指令执行,一般用户不能够修改,保证了系统的安全性。
    基址寻址

    变址寻址

    指令地址码给出地址A和指定的变址寄存器R,将A和R的内容相加就是操作数的地址。常利用变址操作与循环执行程序的方法对数组进行运算。
    变址寻址

    区别

  • 基址寻址主要用于为程序或数据分配存储空间,故基址寄存器的内容通常由操作系统或管理程序确定,在程序运行过程中,值是不可变的,而指令字中的地址码是可变的。
  • 变址寻址中,变址寄存器的内容是用户自己设定的,在程序运行过程中是可变的,而指令字中的地址码是不可变的。编制寻址主要用于处理数组等问题,并且特别适合编制循环程序。