注册 登录
编程论坛 汇编论坛

关于寻址方式的一道小问题

小兵打将 发布于 2011-10-14 09:25, 942 次点击
mov [02345H],01a23h
这个语句怎么错了,立即数给内存单元送值,应该没错啊,但是我编译运行显示错误
还有,mov [0524H],ax  我这样运行就是错的,
但是 mov ax,[0524H] 是对的,为什么?,,我觉得两个应该都是对的啊
4 回复
#2
obstratiker2011-10-15 22:50
在你错误的地方加上段前缀
比如
mov ds:[02345H],01a23h
#3
天外2011-10-26 11:53
对于存储单元,指令中给出的立即数可以理解为字也可以理解为字节,为区别,必须在存储单元前指明。用byte ptr和word ptr
#4
小兵打将2011-11-03 19:10
回复 3楼 天外
thx
#5
zaixuexi2011-11-18 12:42
这个是汇编器的问题
mov [02345H],01a23h
同理mov [0524H],ax
在masm上被解释成mov 2345h, 1a23h, imm->imm当然是错的
反过来
mov [0524H],ax被解释成reg->imm也是不对的

有些汇编器上没有这样的问题,所以大可不用纠结

1