用于内存寻址的寄存器
正确的指令;只有bx、bp、si、di可以用在...对内存单元寻址
mov ax,[bx]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp]
mov ax,[bP+si]
mov ax,[bp+di]
错误的指令
;汇编语言每一条都对应着机器指令,它和cpu连线时相关的,设计电路时没有考虑到这种情况所以是不行的
;bx以外的通用寄存器、段寄存器不可以用在[...]中
mov ax,[cx]
mov ax, [ax]
mov ax,[dx]
mov ax,[ds]
正确的指令
;bx、bp区别:· bx默认指ds段;· bp默认指ss段。
mov ax,[bx]
mov ax,[si]
mov ax,[di]
mov ax,[bp]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp+si]
mov ax,[bp+di]
mov ax,[bx+si+idata]
mov ax,[bx+di+idata]
mov ax,[bp+si+idata]
mov ax,[bp+di+idata]
错误的指令
mov ax,[bx+bp]
mov ax,[si+di]
mov ax,[bp2] (ax)=((ss)*16+(bp))
mov ax,ds:[bp] (ax)=((ds)*16+(bp))
mov ax,es:[bp] (ax)=((es)*16+(bp))
mov ax,[bx] (ax)=((ds)*16+(bx))
mov ax,ss:[bx] (ax)=((ss)*16+(bx))
mov ax,[bp+idata] (ax)=((ss)*16+(bp)+idata)
mov ax,[bp+si] (ax)=((ss)*16+(bp)+(si))
mov ax,[bp+si+idata] (ax)=((ss)*16+(bp)+(si)+idata)