1. 程式人生 > >組合語言——彙編的8種定址方式,以及2個預設段暫存器

組合語言——彙編的8種定址方式,以及2個預設段暫存器

1.立即定址方式 MOV AH, 80H(直接給暫存器賦值)
2. 暫存器定址方式(源或者目的有一個是暫存器)
2.1) 源運算元是暫存器定址方式
如:ADD VARD, EAX  ADD VARW, AX   MOV VARB, BH等。
其中:VARD、VARW和VARB是雙字,字和位元組型別的記憶體變數。
2.2) 目的運算元是暫存器定址方式
如:ADD BH, 78h    ADD AX, 1234h   MOV EBX, 12345678H等。
2.3) 源和目的運算元都是暫存器定址方式
如:MOV EAX, EBX   MOV AX, BX     MOV DH, BL等。
3. 直接定址方式

(地址值在括號裡)
MOV BX, [1234H] (預設使用DS)
MOV ES:[1000H], AX
4. 暫存器間接定址方式(暫存器在括號裡)
MOV BX,[DI]
運算元的有效地址用SI、DI、BX和BP等四個暫存器之一來指定,稱這種定址方式為暫存器間接定址方式。
若有效地址用SI、DI和BX來指定,則其預設的段暫存器為DS;
若有效地址用BP來指定,則其預設的段暫存器為SS(即:堆疊段)。
5. 暫存器相對定址方式(一個暫存器和一個立即數在括號裡,並且還要計算)
MOV BX, [SI+100H]
6. 基址加變址定址方式(兩個暫存器在括號裡,並且還要計算)
MOV BX, [BX+SI]
7. 相對基址加變址定址方式
(兩個暫存器在括號裡和一個立即數在括號裡,並且還要計算)
MOV AX, [BX+SI+200H]