寻址方式

寻址:查找对应的内存块
本章可搭配 段超越使用

立即数寻址

对应 整数常量

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
Last modification:December 17, 2018
如果觉得我的文章对你有用,请随意赞赏