8086寻址方式

寻址方式表

寻址方式 含义 名称 常用格式举例
[idata] EA = idata; SA = (ds) 直接寻址 [idata]
[bx] EA = (bx); SA = (ds)


寄存器间接寻址



[bx]
[si] EA = (si);  SA = (ds)
[di] EA = (di); SA = (ds)
[bp] EA = (bp); SA = (ss)
[bx + idata] EA = (bx) + idata; SA = (ds)


寄存器相对寻址

用于结构体:
[bx].idata
用于数组:
idata[si], idata[di]
用于二维数组:
[bx][idata]
[si + idata] EA = (si) + idata; SA = (ds)
[di + idata] EA = (di) + idata; SA = (ds)
[bp + idata] EA = (bp) + idata; SA = (SS)
[bx + si] EA = (bx) + (si); SA = (ds)


基址相对寻址



用于二维数组:
[bx][si]
[bx + di] EA = (bx) + (di); SA = (ds)
[bp + si] EA = (bp) + (si); SA = (ss)
[bp + di] EA = (bp) + (di); SA = (ss)
[bx + si + idata] EA = (bx) + (si) + idata;
SA = (ds)





相对基址变址寻址



用于表格(结构)中的数组项:
[bx].idata[si]

用于二维数组:
idata[bx][si]
[bx + di + idata] EA = (bx) + (di) + idata;
SA = (ds)
[bp + si + idata] EA = (bp) + (si) + idata;
SA = (ss)
[bp + di + idata] EA = (bp) +(di) + idata;
SA = (ss)

bx, si, di 和 bp

1、在 8086CPU 中, 只有这 4 个寄存器可以用在 "[...]" 中进行内存单元的寻址.

2、在 [...] 中, 这 4 个寄存器可以单个出现, 或只能以 4 中组合出现: bx 和 si、 bx 和 di、bp 和 si、bp 和 di.

3、含有 bx 的寻址, 其段地址 SA 默认在 ds 中, 而含有 bp 的寻址, 其段地址 SA 默认在 ss 中.

原文地址:https://www.cnblogs.com/fanlumaster/p/14062115.html