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

教教我一个给寄存器赋值的问题

zhouyu 发布于 2006-11-29 13:02, 895 次点击
有一个问题我搞不懂,请教教我!
假设 ds=2000h,(21200h)=2aH,(21201h)=4cH
mov ax,[1200h]
我认为执行后ax=4c2ah但我在电脑上操作时得出ax=1200H
那是怎么回事?
谢谢!
6 回复
#2
菜鸟上路2006-11-29 13:05
不太明白你的意思,
顺便把结果贴上来
#3
zhouyu2006-11-30 21:44

如果DS=2000H,(21200H)=2AH, (21201H)=4CH
MOV AX,[1200H]
那么AX=?

#4
菜鸟上路2006-11-30 22:10
就是1200H中的数啊
你是不是想问MOV AX,DS:[1200H]后AX=?
如果是的话,AX=4C2AH
#5
汇编学者2006-12-06 14:35

我知道你错在哪了,你是用MASM编译的,这是汇编源程序,这里MOV AX,[1200]相当于mov ax,1200
用debug实现这段的话就没问题了
用MASM实现的话,需要定义
mov bx,1200
mov ax,[bx] 这样就可以了
大家有问题一起讨论讨论啊

#6
曾小2006-12-09 19:46
为什么"你是用MASM编译的,这是汇编源程序,这里MOV AX,[1200]相当于mov ax,1200"?
#7
汇编学者2006-12-11 01:35
MASM也是一个编译程序啊,它就是这样规定的mov ax,[1200] ,它只会当[1200]是个idate,而不当它是偏移地址
可以mov ax,ds:[1200]
1