寻址方式
寻址
:查找对应的内存块
本章可搭配 段超越
使用
立即数寻址
对应 整数常量
mov ax,123
寄存器寻址
通过寄存器寻址
mov ax,bx
内存寻址
默认使用ds
作为基址 物理地址= 基址 * 0x10 + [计算地址]
逻辑地址= 基址:[计算地址]
有效地址= [计算地址]
内存 直接寻址
从内存中寻址
默认使用ds
基址
mov ax,[200]
类似c的指针
short ax = *(short*)(ds:200)
寄存器 间接寻址
直接使用 寄存器的值作为地址 16
位中只能使用 bx/si/di/bp
作为 参数 bx/si/di
:默认使用ds
作为基址 ,物理地址= ds*0x10+[bx/si/di]
bp
:默认使用ss
作为基址 ,物理地址= ss*0x10+bp
mov ax,[bx]
寄存器 偏移 间接寻址
寄存器直接寻址
的基础上加上偏移量
有三种方式
bx+100 作为相对地址
mov ax,[bx + 100]
mov ax,100[bx]
mov ax,[bx]100
基址变址 间接寻址
使用 寄存器计算后的值作为 寻址地址
默认使用ds
作为基址
不能随意搭配 bx/bp
二选一 si/di
二选一
两种方式
mov ax,[bx/bp +si/di]
mov ax,[bx/bp][si/di]
基址变址 偏移 间接寻址
在 基址变址
的基础上 相对寻址
三种方式
mov ax,[bx/bp +si/di + 100]
mov ax,[bx/bp][si/di][100]
mov ax,[100][bx/bp][si/di]
比例因子寻址(386+)
mov eax,[ebx + esi *2 +1000]
比例因子: 1,2,4,8,16