mov word ptr ds:[0*4],200h
mov word ptr ds:[0*4+2],0
为什么 mov word ptr [0*4],200h
mov word ptr [0*4+2],0
是错误的。
------解决方案--------------------------------------------------------
200h 还在 word 范围内吧,不是必须 dword 的。
这个问题,其实是 Masm 的个老问题了,它将[0*4] 和 [0*4+2] 理解成了个立即数,而不是你预想的内存地址。解决这个问题,就是在这两个地址前加上 ds: 当然了,最后生成的指令是不会有这个多余的段前缀指令的
mov word ptr ds:[0*4],200h
mov word ptr ds:[0*4+2],0