寻址方式表
寻址方式 | 含义 | 名称 | 常用格式举例 |
---|---|---|---|
[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 中.