• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
楼主  发表于: 2012-11-18 22:52



请教这个D7274为什么无法传送数据?
而同样的MIAN1里的D10014却可以

说明D8000、D8006、D5548均为十进制3位整数

这个数据运算我有点糊涂,也看过资料
D*好像保存结果的是4个16位软元件地址,DMOV只能传送32位,64位的高位地址怎么办???
我是用模拟器反复试验,允许没问题,RUN档



求解!!!!急1!!!!
老大,也进来帮我下,谢谢!!!
数学没学好啊,丢人啊

数据计算2.rar (12 K) 下载次数:28
[ 此帖被syking1234在2013-01-04 20:38重新编辑 ]
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
1楼  发表于: 2012-11-19 12:21
没人帮忙啊,自己顶下
aojianyun121
级别: 家园常客
精华主题: 0
发帖数量: 133 个
工控威望: 523 点
下载积分: 5540 分
在线时间: 113(小时)
注册时间: 2010-11-25
最后登录: 2024-10-30
查看aojianyun121的 主题 / 回贴
2楼  发表于: 2012-11-19 12:34
图片:
  好像是哪个D7274寄存器有问题,是不是是特别寄存器呢,我模拟也一样,不过改成D7260是可以的。我没接触过Q系列的,所以帮不了哈!不好意思,希望对你有帮助。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5196 个
工控威望: 7419 点
下载积分: 158460 分
在线时间: 3152(小时)
注册时间: 2007-11-21
最后登录: 2024-10-31
查看sjm213的 主题 / 回贴
3楼  发表于: 2012-11-19 13:42
红框中标出的32位乘法指令,其结果存储地址占用64位,故[D7275  D7274]都在该指令影响下将MOV得到的值覆盖掉。

aojianyun121
级别: 家园常客
精华主题: 0
发帖数量: 133 个
工控威望: 523 点
下载积分: 5540 分
在线时间: 113(小时)
注册时间: 2010-11-25
最后登录: 2024-10-30
查看aojianyun121的 主题 / 回贴
4楼  发表于: 2012-11-19 13:48
学习了,我咋就没想到这个茬呢!!
紫菜空间
级别: 探索解密
精华主题: 0
发帖数量: 61 个
工控威望: 193 点
下载积分: 1758 分
在线时间: 67(小时)
注册时间: 2011-11-10
最后登录: 2023-12-20
查看紫菜空间的 主题 / 回贴
5楼  发表于: 2012-11-19 13:50
3楼正解!
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
6楼  发表于: 2012-11-19 16:52
那为什么MIAN1 程序段里的D5842 D5844却不存在这样的问题、??
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5196 个
工控威望: 7419 点
下载积分: 158460 分
在线时间: 3152(小时)
注册时间: 2007-11-21
最后登录: 2024-10-31
查看sjm213的 主题 / 回贴
7楼  发表于: 2012-11-19 17:52
因为程序中D5844在D5842后面使用到,这样使用的效果就是D5550*K1000的结果,将D5548*K-10000的结果覆盖掉了,却成了你需要的结果,所以看起来是正常的。
你可以将D5550~D10012这两段程序写到D5548这一段程序上面。
就会发现虽然D10012的值虽然还是你要的正确的值,但D5844的值却是0(如果不是说明D5548的值太大,乘法运算之后超出32位储存范围,D5844内有储存的数据了)。
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
8楼  发表于: 2012-11-19 18:13
图片:
刚模拟了,D5844的值为-1
郁闷啊,有点晕头了
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
9楼  发表于: 2012-11-20 21:19
还是没办法啊
我把D* 后面的K100000 改成* 后面K10000,好像不存在4个字的问题
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5196 个
工控威望: 7419 点
下载积分: 158460 分
在线时间: 3152(小时)
注册时间: 2007-11-21
最后登录: 2024-10-31
查看sjm213的 主题 / 回贴
10楼  发表于: 2012-11-20 22:06
掉换过后,D5844显示的数跟D5548   K-10000的数值有关。
但你放心,虽然显示的数据你看着有问题,但实际运算结果是不会错的。
syking1234
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 415 点
下载积分: 879 分
在线时间: 182(小时)
注册时间: 2009-01-01
最后登录: 2024-08-03
查看syking1234的 主题 / 回贴
11楼  发表于: 2012-11-21 13:23
非常感谢,受教了
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go