bx、si、di 和 bp
在 8086CPU 中,只有这 4 个寄存器可以用在 “[...]” 中来进行内存单元的寻址。
mov ax, [bx]
mov ax, [bx+si]
mov ax, [bx+di]
mov ax, [bp]
mov ax, [bp+si]
mov ax, [bp+di]
而下面的指令是错误的
mov ax, [cx]
mov ax, [ax]
mov ax, [dx]
mov ax, [ds]
这四个寄存器可以单个出现,或者以 4 种组合出现:bx 和 si,bx 和 di,bp 和 si,bp 和 di。
结合这条就比较好记上一条:只要在 [...] 中使用寄存器 bp,而指令中没有没有显式的给出段地址,那么段地址在 ss 中。因为如果在 [...] 中使用了寄存器 bx,而指令中没有显式的给出段地址的话,段地址在 ds 中,所以不可以将 bx 和 bp 作为组合,而 si,di 作为 bx 和 bp 的辅助寄存器,也不能单独将它俩放在一起。
下面的指令是错误的:
mov ax, [bx+bp]
mov ax, [si+di]