在下刚开始学习汇编,使用钟家民的MASM FOR WINDOWS 集成试验环境进行代码编写代码,在使用中发现了一个问题:
根据很多教科书上所写的如下类似代码完全通不过编译
mov ax,1000
mov ds,ax
mov bx,63
mov [0],bx
一编译就显示immediate operand not allowed错误(主要是第四句)。
我想不可能是这么多教科书有误,并且自己在DEBUG中也可以运行相同的语句而毫无问题:
反过头来,MASM FOR WINDOWS 集成试验环境我测试了三个不同的版本均是如此,完全不让这一句代码通过编译,明显也不像是一个它的错误,这就让我很迷惑了,请问这是为什么呢?
------解决方案--------------------
保险的话,可以写成:mov word ptr ds:[0], bx 。最起码 ds: 是必须的。