8086彙編學習筆記6 定址方式

2021-06-01 19:19:36 字數 1045 閱讀 7124

定址,尋的什麼址,當然是記憶體,定址方式有多種,就像我回四川一樣,可以坐飛機,然後坐火車,也可以直接坐火車,當然還可以坐汽車,不過我到沒有試過。

1. 運算元據的位址,有四個暫存器bx,si,di和bp可以用來對記憶體單元的定址

(1)直接定址ds:[idata]

(2)暫存器間接定址,[bx]、[si]、[di]、[bp]

(3)暫存器相對定址[bx+idata]、[si+idata]、[di+idata]、[bp+idata]

(4)基址變址定址[bx+si]、[bx+di]、[bp+si]、[bp+di]

(5)相對基址變址定址[bx+si+idata]、[bx+di+idata]、[bp+si+idata]、[bp+di+idata]

注意:使用bp代替bx使用時,bp與bx不同之處在於,如果沒有顯示各給出段位址,則段位址預設在ss中

2. 運算元據的長度

(1) 通過暫存器隱式的指明資料操作的長度

(2) 通過byte ptr或word ptr顯示指明資料操作的長度

add

再來說說定址方式吧,結合實際的例子。

1. 直接定址

其中idata表示乙個立即數,例如:

2. 暫存器間接定址

mov ax, [bx]
將段位址為ds,偏移位址為bx,長度為2位元組的記憶體單元資料送入到暫存器ax中。

3. 暫存器相對定址

暫存器相對定址就是將前兩種定址方式結合在了一起,例如:

mov ax, [200+bx]

mov ax, 200[bx]

mov ax, [bx].200

4. 基址變址定址

例如:

mov ax, [bx][si]

5. 相對基址變址定址

例如:

mov ax, [bx+200+si]

mov ax, [200+bx+si]

mov ax, 200[bx][si]

mov ax, [bx].200[si]

mov ax, [bx][si].200

8086彙編定址方式總結

1.運算元可以存在什麼地方?運算元存在於指令 中,處理器解碼時就立即獲得了這個運算元,這就是立即 數 定址方式。彙編指令中,這個立即數 運算元 以常量形式出現。運算元存在於處理器內部暫存器中,處理器從暫存器中獲得這個運算元,這就是暫存器定址方式。彙編指令中,這個暫存器運算元以暫存器名形式出現。運算元...

8086組合語言學習 五 8086定址方式

前面的部落格都多少提到了8086彙編的記憶體定址,例如mov ax 2345h 而8086彙編還提供了更多 更靈活的定址方式,以滿足多種需求。需要強調的是,無論何種定址方式,記憶體定址的位址總是由基礎位址 偏移位址 段基址 偏移量 組合而成,不同之處在於基礎位址與偏移位址應該從何處獲得。在示例mov...

8086CPU學習筆記 8086的定址方式

認真寫好一篇文章 計算機的指令通常包含操作碼和運算元兩部分。指令有單運算元 雙運算元和無運算元三種,其中雙運算元的兩個運算元要用逗號隔開,逗號左邊是目的運算元,逗號右邊是源運算元。例如 mov ax,cx 該指令將cx暫存器中的數值放到ax暫存器中,其中mov為操作碼,ax為目的運算元,cx為源運算...