51单片机 把 30H,31H(内部RAM) 单元内容 传送到1000H,1001H单元 (外部RAM)

这是一个网友的回答:

MOV A,30H
MOV DPTR,#1000H
MOVX @DPTR,A
MOV A,31H
MOV DPTR,#1001H
MOVX @DPTR,A

问题: 这里为啥 第一行 30 不用加# 井号
第二行, 1000H 就要加上井号 #1000H

解释井号#的作用
当然不排除他的答案有错 原地址:zhidao点baidu点com/link?url=Wx3bQWkfUg1trHtZVb5cANvgJdJA67zomtIXqOAbt4FVauix1cXfQDMK5r0iGVmkiwbYnxMG0f4P_Of2YUoita

我觉得 第一行 30H前应加上@ ,表示间接寻址,
或者第三行 应为movx @DPTR ,@A 但是这个是错的 ,麻烦谁来纠正下,累加器A的性质,和DPTR性质, 希望有人指点,应该是不能那么用,那上面的答案是否有错误之处呢?

那个答案是非常正确的,既然人家给你答案了,你却不相信,却按你的错误思维去考虑,那还问什么哪,就自己作答案好了。
MOV A,30H,这是把30H单元内的内容(数据)送到A ,30H是RAM单元地址,并不是立即数,是送30H里面的数,具体是什么数是不知道的。所以,不能带#号的,如果带了#号就是送这个立即数30H了,送完了,A=30H了。
MOV DPTR,#1000H,这是把立即数1000H送到DPTR内,送完后DPTR=1000H,这就必须带#号了。
至于你最后的觉得的说法是完全错误的,还是好好学习吧。追问

衷心感谢你的回答。对#的疑问我解决了。
我贴出的知道的问题是别人n久前发布的,我只是在问我不懂的问题。
感谢忠告。会加倍努力学习!

温馨提示:答案为网友推荐,仅供参考
相似回答