4. 定址方式

通過上一節的例子我們瞭解到,訪問內存時在指令中可以用多種方式表示內存地址,比如可以用數組基地址、元素長度和下標三個量來表示,增加了定址的靈活性。本節介紹x86常用的幾種定址方式(Addressing Mode)。內存定址在指令中可以表示成如下的通用格式:

ADDRESS_OR_OFFSET(%BASE_OR_OFFSET,%INDEX,MULTIPLIER)

它所表示的地址可以這樣計算出來:

FINAL ADDRESS = ADDRESS_OR_OFFSET + BASE_OR_OFFSET + MULTIPLIER * INDEX

其中ADDRESS_OR_OFFSET和MULTIPLIER必須是常數,BASE_OR_OFFSET和INDEX必須是寄存器。在有些定址方式中會省略這4項中的某些項,相當於這些項是0。