1.寄存器寻址
不访问内存,在寄存器中完成操作
mov bx,ax
mov es,ax
add al,bh
2.立即寻址
操作数为常数,无须为获得操作数访问内存
mov ax,0x10
mov bx,0x12
add ax,bx
3.直接寻址
直接给出操作数的内存地址,直接寻址默认使用ds作为段寄存器
mov ax,[0x102]
4.寄存器间接寻址
使用寄存器中的值作为操作数地址,用于此目的的寄存器有si,di,bx。此模式下默认使用ds作为段寄存器
mov ax,[si]
5.基址相对寻址(Base relative addressing)
此模式下,使用bx和bp寄存器,使用bx时ds作为默认段寄存器,用bp时ss作为默认段寄存器
mov cx,[bx]+10 ; Physical addr=ds:bx+10
mov al,[bp]+5 ; PA=ss:bp + 5
6.索引相对寻址 (Index relative addressing)
于基址相对寻址基本相同,差别在于这里使用di和si寄存器,
7.基址索引寻址 (Based indexed addressing)
mov cl,[bx][di]+8 ; PA=DS(shift left)+BX+DI+8
mov ah,[bp][si] + 10 ;PA=SS(shift left)+BP+SI+10
下图给出了 Offset registers for various segments
CS | DS | ES | SS |
IP | SI,DI,BX | SI,DI,BX | SP,BP |