当前位置: 代码迷 >> 汇编语言 >> 为何直接向内存地址mov数据无法通过编译器
  详细解决方案

为何直接向内存地址mov数据无法通过编译器

热度:194   发布时间:2016-05-02 04:51:30.0
为什么直接向内存地址mov数据无法通过编译器?
在下刚开始学习汇编,使用钟家民的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: 是必须的。