为什么[BX]的操作数是在存储器中解决办法

为什么[BX]的操作数是在存储器中
Assembly code
XOR [BX],[BX]


BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?

还有
AND AX,[CX]
为何寄存器间接寻址方式不允许用CX呢?

------解决方案--------------------
探讨
Assembly code
XOR [BX],[BX]


BX不是寄存器吗,为什么教材说[BX]是在存储器中呢?

------解决方案--------------------
xor the memory
------解决方案--------------------
这个应该看汇编器吧, 看指定版本汇编器对不同寻址方式在语法上如何表示,结合汇编器的说明应该能明白。
我记得用masm的时候寄存器加上方括号就表示寄存器内的值作为一个指针,方括号就相当于指针解引用。

被我误导了别怪我
------解决方案--------------------
编译器就这个约定的。
如果你写一个编译器,改为(BX)也行。

为何寄存器间接寻址方式不允许用CX呢?

cpu中没有这中电路。
------解决方案--------------------
好了,楼主我懂你的意思,那是指针问题。寄存器间接寻址
------解决方案--------------------
假如BX=1000H,那么,[BX]表示的就是起始地址为DS段偏移地址为1000H的内容。所谓指针就是地址。在80386或更高的处理器里,就支持了[AX],[CX]这样的寻址了,在16位汇编里,这是不允许的。