立即寻址
MOV CX,2A50H //2A50H即为操作数
寄存器寻址
MOV DX,AX //操作数在AX中,源操作数和目的操作数长度要一致
存储器寻址
操作数在存储器中
直接寻址
直接给出有效地址,计算得出物理地址,然后便可在存储器中找到操作数
MOV AX,[2000H] //物理地址为DS*16+2000H(默认段寄存器为DS)
MOV AX,ES:[500H] //物理地址为ES*16+500H
(存储器中奇存储体存高字节,偶存储体存低字节)
可根据目的操作数判断操作数的位数,当操作数为16位且物理地址为偶数时只需取一次,物理地址为偶数时需取两次
寄存器间接寻址
有效地址在寄存器中,得到有效地址后便与直接寻址一致
源操作数要加[],来与寄存器寻址区别
MOV BX,[SI] //物理地址为DS*16+SI
寄存器相对寻址
与寄存器间接寻址相比多了一个位移量,更灵活
MOV BX,COUNT[SI] //DS*16+SI+COUNT
基址变址寻址
有效地址为基址寄存器(BX或BP)与变址寄存器(SI或DI)内容之和
与寄存器间接寻址一样,寄存器用中括号括起来
MOV AX,[BX][SI] //DS*16+BX+SI
MOV AX,[BX+SI] //等效写法
基址寄存器为BX时,段寄存器为DS
基址寄存器为BP时,段寄存器为SS
相对基址变址寻址
在基址变址寻址的基础上加上偏移量
MOV AX,MASK[BX][SI] //16*DS+BX+SI+MASK
MOV AX,[BX+SI+MASK] //等效写法
MOV AX,MASK[BX+SI] //等效写法