您现在所在的是:

欧姆龙OMRON

回帖:2个,阅读:849 [上一页] [1] [下一页]
* 帖子主题:

请教@D,*D的用法

1403
yuyinliu168
文章数:139
年度积分:50
历史总积分:1403
注册时间:2009/12/19
发站内信
发表于:2013/3/26 19:01:30
#0楼
大家好,我想请教@D,*D的用法,具体要怎样配搭使用呢。谢谢指教
[此贴子已经被作者于2013/3/26 19:01:45编辑过]
37237
cvlsam 版主
文章数:12401
年度积分:1589
历史总积分:37237
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2013/3/26 21:39:41
#1楼
以下是引用yuyinliu1682013/3/26 19:01:30的发言:
大家好,我想请教@D,*D的用法,具体要怎样配搭使用呢。谢谢指教
[此贴子已经被作者于2013/3/26 19:01:45编辑过]
它们之间的差别仅仅在于@间接寻址使用的二进制,*间接寻址使用的是Bcd码而已,对于寻址的结果是相同的。

例如:*D100,D100中的数据是Bcd码 10,那么最终寻址到D10
     @D100,D100中的数据是二进制的10,也就是2#1010,那么最终寻址到也是D10

但是:如果给@D100中使用Bcd的10,那么悲剧了,Bcd就是用16进制表示的10进制数,10转换为二进制就是0001 0000,那就是32,最终寻址到了D32.

因此,针对于不同的数制,所对应的指令稍有差别而已,而无论哪个指令,其寻址仍然在于D区域,要使用全内存地址寻址,需要使用Ir,Dr寄存器做间接寻址,这已经超过本帖的讨论范围了。

Good Luck~
1403
yuyinliu168
文章数:139
年度积分:50
历史总积分:1403
注册时间:2009/12/19
发站内信
发表于:2013/3/27 21:44:40
#2楼
谢谢解答,结合您之前解答别人的说法就明白了 谢谢
您之前的解答以下是引用truezhang在2012/9/29 10:17:22的发言:
我把程序照搬进OMRON里面,显示是有问题的,能否帮看看哪里没写对

人家写给你看的是伪代码,你怎么不翻译成程序就输入了呢?

看不懂就照搬了。



@LD W0.00    //触发条件
+(400) &120 D100 D200   //120+D100中的值,送入D200中,作为间接寻址的目标地址
MOV(021) D110 @D200      // 将D110的值送入 D200中存储的编号所对应的值,使用了二进制间接寻址符号@。

Regards

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002