80x86寻址模式

本文详细介绍了8086汇编语言中的各种寻址方式,包括寄存器寻址、立即寻址、直接寻址、寄存器间接寻址、基址相对寻址、索引相对寻址及基址索引寻址等,并通过实例说明了每种寻址方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
CSDSESSS
IPSI,DI,BXSI,DI,BXSP,BP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值