*暫存器間接定址:不把暫存器內容作為運算元,而作為運算元位址,間接定址只允許bx,bp,si和di,用途-迴圈程式
mov ax,[bx] 預設ds暫存器為段位址
mov dx,[bp] 預設ss暫存器為段位址
mov es:[di],ax 指定es暫存器為段位址
*暫存器相對定址:運算元的有效位址是乙個暫存器的位移量之和,有效位址除了暫存器還要加上位移量,與間接定址一樣,預設搭配為ds段暫存器和bx,si,di。ss段暫存器和bp
mov ax,arry[bx]
mov ax,[arry][bx]
mov ax,[arry+bx]
mov al,buf[bx]
mov al,[bx+8]
位移量arry一般為16位的變數,和16位的暫存器匹配,buf通常為8位的變數或常量
間接定址用途:訪問陣列,暫存器可作為陣列下標,利用修改暫存器定位陣列元素
*基址變址定址方式:運算元是乙個基址暫存器和變址暫存器的內容之和,允許使用的基址暫存器為bx和bp,變址暫存器為si和di,預設暫存器規定與間接定址一樣
mov ax,[bx][si]預設ds暫存器為段位址
mov ax,[bp][di] 預設ss
mov ax,es:[bx][di]指定es為段暫存器
可用於陣列處理,陣列首位址放於基址暫存器,修改變址暫存器內容定位陣列各元素
*相對基址變址定址方式
運算元的有效位址是乙個基址暫存器和乙個變址暫存器及位移量之和
mov ax,arry[bx][si] 預設ds暫存器為段位址,陣列首位址為arry,基址暫存器指向陣列的行,變址暫存器指向該行的某個元素
mov bx,ah 錯,bx為16位,ah為8位,長度不匹配
mov b,a 錯 位址線不能同時給出兩個變數的位址,需要分兩步進行
mov [bx],[di] 錯,兩個運算元不能同時為記憶體單元
彙編 運算元的定址方式
立即數定址方式 暫存器定址方式 直接定址方式 暫存器間接定址方式 暫存器相對定址方式 基址加變址定址方式 相對基址加變址定址方式和32位位址的定址方式 為了表達方便,我們用符號 x 表示x的值,如 ax 表示暫存器ax的值。1.立即數定址方式 運算元作為指令的一部分直接寫在指令中,這種運算元稱為立即...
組合語言基礎四 運算元的定址方式
微機系統有七種基本的定址方式 立即定址方式 暫存器定址方式 直接定址方式 暫存器間接定址方式 暫存器相對定址方式 基址加變址定址方式 相對基址加變址定址方式等。其中,後五種定址方式是確定記憶體單元有效位址的五種不同的計算方法,用它們可方便地實現對陣列元素的訪問。另外,在32位微機系統中,為了擴大對儲...
運算元基本定址方式
1.隱含定址 在指令中不明顯的給出而是隱含著運算元的位址。2.立即定址 指令的位址字段指出的不是運算元的位址,而是運算元本身。這種方式的特點是指令執行時間很短,不需要訪問記憶體取數。3.直接定址 採用直接定址方式時,指令字中形式位址d就是運算元的有效位址e,即e d。因此通常把形式位址d又稱為直接位...