80x86寻址模式

来源:互联网 发布:无损音乐论坛 知乎 编辑:程序博客网 时间:2024/04/28 19:35

1.寄存器寻址

不访问内存,在寄存器中完成操作
mov bx,axmov es,axadd al,bh

2.立即寻址

操作数为常数,无须为获得操作数访问内存
mov ax,0x10mov bx,0x12add 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+10mov 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+8mov ah,[bp][si] + 10 ;PA=SS(shift left)+BP+SI+10

下图给出了 Offset registers for various segments
CSDSESSSIPSI,DI,BXSI,DI,BXSP,BP
原创粉丝点击