形成操作数或指令地址的方式,称为寻址方式。8086有七种寻址方式:立即数寻址方式 、寄存器寻址方式 、直接寻址方式 、寄存器间接寻址方式 、寄存器相对寻址方式 、基址变址寻址方式 、相对基址变址寻址方式。
1)立即数寻址方式
操作数作为指令的一部分存放在操作码之后的内存单元中这种操作数被称为立即数
8位数值(00h~ffh)
16位数值(0000h~ffffh)
立即数寻址方式常用来给寄存器赋值
2)寄存器寻址方式
1.有效地址
有效地址(ea)=位移量(disp)+基址(base)+变址(index)
位移量:存放在指令中的数,但它不是立即数,而是一个地址,可以用变量或标号表示。
基址:存放在基址寄存器(bx、bp)中,有效地址的基址部分。
变址:存放在变址寄存器(si、di)中,有效地址的变址部分。
2.段前缀使用规则
8086允许程序员用段跨越前缀来改变系统所指定的默认段,如:允许数据存放在ds以外的段中,使用时指明段前缀,但是有些情况是不可以修改的。
(1)串处理操作中目的串必须用es段,即默认为es:di,不可修改。
(2)压栈(push)、弹栈(pop)必须使用ss段,即默认为ss:sp不可修改。
(3)指令必须存放在cs段中。
3) 直接寻址
操作数的地址中的偏移量直接跟在操作码之后,默认情况下基址存放在ds中,这个时候不需要加前缀,如果是加了别的前缀,如es,则表示基址在es中。
例如:
movax,[4000h]
movax,value (如果我们在前面定义了“符号地址”value=4000h,那么这句和上面的是一样的)
data segment
w dw 4
x dw 5
y dw 1
data ends
这里的 w,x,y就是符号地址,它代表变量的在段中偏移量。
这个时候我们就可以使用:
mov ax, w
这里表示的w表示的就是偏移量,所以属于直接寻址。
4)寄存器间接寻址方式
有效地址在寄存器si/di/bx/bp中
若在si、di、bx中,则操作数默认在数据段
若在bp中,则操作数默认在堆栈段
操作数在存储器中,而其有效地址存放在某个寄存器中,可用寄存器有 bx、bp、si、di。
区别于寄存器寻址,前者操作数存放在寄存器中,在指令中存放相应的寄存器号码,不需要访存;后者的寄存器存放操作数的有效地址,而操作数本身在存储器中。指令要先通过该寄存器获取操作数有效地址,在通过该地址访存获取操作数。
同样也可以为其指定其他段前缀。
图形示意:
代码示意:
mov ax,[bx] ;假设 (ds) = 2000h,(bx) = 1000h ,则执行结果为:(ax) = (21000) ,即取出存储单元 21000h-21001h 位置的值赋给 ax
5)寄存器相对寻址方式
(1)基址相对寻址
对于bx寄存器来说,使用ds作为基址寄存器。例如:
mov ax,count[bx] 或 movax, [count+bx] ------ds基址,上面2条指令作用是相同的。
对于bp寄存器来说,使用ss作为基址寄存器。
例如:
mov ax,count[bp] 或 movax, [count+bp] ------ss基址
(2)变址相对寻址
使用2个变址寄存器si,di.例如:
movax, count[si] 或 mov ax,[count+si]
movax, count[di] 或 mov ax,[count+di]
最后的物理地址计算总体是这样的:
物理地址=16d*(ds)+(bx)+8
或(si)或16位位移量
或(di)
物理地址=16d*(ss)+(bp)+8位位移量
或16位位移量
6)基址变址寻址方式
操作数有效地址等于基址寄存器与变址寄存器内容之和,可使用寄存器有 bx、bp、si、di。
有效地址(ea)= 基址 + 变址。
图形示意:
代码示意:
mov ax, [bx][di]/[bx+di] ;假设 (ds) = 2100h ,(bx) = 0158h ,(di) = 10a5h ,则执行结果为:(ax) = (221fdh),即取出存储单元 221fdh-221feh 位置的值赋给 ax
7)相对基址变址寻址方式
有效地址是基址寄存器(bx/bp)、变址寄存器(si/di)与一个8位或16位位移量之和:
ea=[bx]/[bp]+[si]/[di]+8/16位位移量
基于FPGA 的SPI Flash 控制器设计及验证
Altium Designer09的3D视图如何应用
评估采用LX0航天器电机驱动器的高可靠性SMD-5.7720 MOSFET
太阳能电池的可持续发展分析
基于DWC2的USB驱动开发-0x09 ULPI接口协议其他工作模式介绍
微机原理8086的七种寻址方式
3月份要发布的5G手机有哪些
日本西海岸强震影响半导体产业,多数工厂初步检查机台未受严重灾
AOC27V2H窄边框显示器评测 色域表现非常出色
温州区块链产业联盟揭牌 相信区块链的的未来前景
低功耗SRAM存储器IS62WV1288DALL的特征
常见的6种DC-DC升压电路设计
在美国份额不足3% 索尼回天无力?
你知道智能温度传感器的发展前景如何?
国产芯片替代不应成为主旋律,合作竞争才能发展
手机运行内存不足怎么处理
诺基亚遭集体诉讼:夸大Lumia欺骗股东
功率二极管的主要类型
小米6、oppoR11、vivox9S这三款手机您是否难以选择,不用怕
特斯拉与台积电合作开发7nm自动驾驶芯片,华为再次受到挫折