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

新手提问,内存单元问题。

diaoooo 发布于 2007-08-07 09:50, 831 次点击
请看一下指令。
mov bx,1000H
mov ds,bx
mov ax,[0] ;1000:0处的字型数据送入ax
mov [0],cx ;cx中的16位数据送到1000:0处

我的问题是:[0]不是代表1各内存单元吗,8位的, 所以mov ax,[0] 这一步不是应该把[0]覆盖ax中的低8位吗?
能不能对[0]给个详细的解释。
4 回复
#2
Pants2007-08-07 12:13

mov要看目标的位数
如果目标为ax,就是从[0]开始传送16位数据;如果目标为al或ah,就是从[0]开始传送8位。

见王爽《汇编语言》 “ 3.3 字的传送” 第三行:
“我们只要在mov指令中给出16位的寄存器就可以进行16位数据的传送了。”

[此贴子已经被作者于2007-8-7 12:20:59编辑过]

#3
菜鸟上路2007-08-07 12:17
用DEBUG看下会印象深刻点
#4
I喜欢c2007-08-08 09:46
怎么会覆盖ax中的低8位呢?

16位传送呀...
#5
zhulei19782007-08-08 20:16
16位传送
1