用D1[i]来访问一维数组D1的第i个元素,它的寻址有一个自由度,用D2[i][j]来访问二维数组D2的第i行、第j列的元素,其寻址有二个自由度。多一个可变的量,其寻址方式的灵活度也就相应提高了。
相对基址加变址寻址方式有多种等价的书写方式,下面的书写格式都是正确的,并且其寻址含义也是一致的。
MOV AX, [BX+SI+1000H] MOV AX, 1000H[BX+SI]
MOV AX, 1000H[BX][SI] MOV AX, 1000H[SI][BX]
但书写格式BX [1000+SI]和SI[1000H+BX]等是错误的,即所用寄存器不能在“[“,”]”之外,该限制对寄存器相对寻址方式的书写也同样起作用。
相对基址加变址寻址方式是以上7种寻址方式中最复杂的一种寻址方式,它可变形为其它类型的存储器寻址方式。表3.1列举出该寻址方式与其它寻址方式之间的变形关系。
表3.1 相对基址加变址寻址方式与其它寻址方式之间的变形关系
源操作数
指令的变形
源操作数的寻址方式
只有偏移量
MOV AX, [100H]
直接寻址方式
只有一个寄存器
MOV AX, [BX] 或 MOV AX, [SI]
寄存器间接寻址方式
有一个寄存器和偏移量
MOV AX, [BX+100H] 或 MOV AX, [SI+100H]
寄存器相对寻址方式
有二个寄存器
MOV AX, [BX+SI]
基址加变址寻址方式
有二个寄存器和偏移量
MOV AX, [BX+SI+100H]
相对基址加变址寻址方式