1.立即数寻址、寄存器寻址
立即数寻址就是立即数存在于指令中,与指令一同存储在代码区。
MOV AX,1234H
MOV [2100H],1234H
寄存器寻址是操作数在寄存器中,直接对寄存器进行读取,不用通过访问总线,是效率最高的数据读取方式。
MOV AX,CX
INC CX
2.直接寻址、寄存器间接寻址
直接寻址就是数据在存储器中,有效地址在包含在指令中。一般默认段为DS,也可在指令中使用前缀改变默认段
MOV AX,[1200H]
MOV AX,ES:[2000H]
寄存器间接寻址就是数据在存储器中,有效地址在(BX/SI/DI)寄存器中,则以DS为默认段;若有效地址在寄存器BP中,则默认段为SS
MOV AX,[SI] ;SI/DI/BX的默认段为DS
MOV [BP],CX ;默认段为SS
3.寄存器相对寻址
寄存器相对寻址就是操作数在存储器中,有效地址在基址寄存器(BP/BX)或变址制寄存器(SI/DI)中的地址加上指令中给出的偏移量之和
MOV [SI+disp],AX
MOV disp[SI],AX
MOV [SI]+disp,AX
4.基址加变址寻址
基址加变址寻址就是操作数在存储器中,有效地址是基址寄存器(BX/BI)加变址寄存器(SI/DI)的内容相加得到的。
MOV AL,[BS+SI]
MOV [BP][DI],AX
5.相对基址加变址
相对基址加变址就是操作数在存储器中,有效地址是基址寄存器加变址寄存器的内容相加再和指令给出的偏移量相加之和
MOV AX,[BX+SI+disp]