• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

@@@@@关于51单片机程序里面#号和@号的用法不明了,请指教?

我对51单片机什么时候用#号和@号不太清楚,有没有人帮我解释下,谢谢了.
全部回复(6)
正序查看
倒序查看
njyd
LV.8
2
2007-02-27 19:28
  没查书,说的可能不全.
  @好象只在间址时用,@R0表示R0里是个地址,这个地址里的数才是你要的数.
  #表示后面跟的数字就是实际要的数.
0
回复
yrxinxin
LV.6
3
2007-02-27 19:59
@njyd
  没查书,说的可能不全.  @好象只在间址时用,@R0表示R0里是个地址,这个地址里的数才是你要的数.  #表示后面跟的数字就是实际要的数.
那什么时候是间址,什么时候不是,应该怎么判断啊?
可以举几具体的例子么?谢谢了.
0
回复
albalb
LV.1
4
2007-03-05 17:26
#数字
是立即寻址
如:mov a #01h
就是把立即数01h放A中
mov a @r0
就是把ro所指的内容为地址,然后把这个地址里的内容放到A中
如:(30h)=01h;(01h)=40h,30h地址里的内容为01h,01h地址里的内容为40h
执行 mov a @r0
就是把40h 放到A中
0
回复
njyd
LV.8
5
2007-03-05 22:34
@yrxinxin
那什么时候是间址,什么时候不是,应该怎么判断啊?可以举几具体的例子么?谢谢了.
  在Ri前面加上@号就是间址.
  比如说R0内容是2FH,地址2FH里的内容是30H
  MOV A,RO
  执行后A里的内容是2FH
  MOV A,@RO
  执行后A里的内容是30H
0
回复
njyd
LV.8
6
2007-03-05 22:54
@albalb
#数字是立即寻址如:mova#01h就是把立即数01h放A中mova@r0就是把ro所指的内容为地址,然后把这个地址里的内容放到A中如:(30h)=01h;(01h)=40h,30h地址里的内容为01h,01h地址里的内容为40h执行mova@r0就是把40h放到A中
“如:(30h)=01h;(01h)=40h,30h地址里的内容为01h,01h地址里的内容为40h
执行 mov a @r0
就是把40h 放到A中”

  好象不对吧?
  应该是把40H中的数放到A中.
  也许是打错字了?改成:
“如:(30h)=40h;(01h)=30h,30h地址里的内容为40h,01h地址里的内容为30h
执行 mov a @r0
就是把40h 放到A中”
0
回复
yrxinxin
LV.6
7
2007-03-06 16:42
@njyd
“如:(30h)=01h;(01h)=40h,30h地址里的内容为01h,01h地址里的内容为40h执行mova@r0就是把40h放到A中”  好象不对吧?  应该是把40H中的数放到A中.  也许是打错字了?改成:“如:(30h)=40h;(01h)=30h,30h地址里的内容为40h,01h地址里的内容为30h执行mova@r0就是把40h放到A中”
感谢指教,等我好好研究后再来问你.
0
回复