您现在所在的是:

三菱Mitsubishi

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

mul指令

1284
hanqin
文章数:125
年度积分:50
历史总积分:1284
注册时间:2006/10/7
发站内信
发表于:2009/9/7 13:12:20
#0楼
mul d10 k254 d20
d10的数据是150,为什么d20的结果数是-179717248?
请指教,谢谢!
37608
cvlsam 版主
文章数:12429
年度积分:219
历史总积分:37608
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2009/9/7 13:44:28
#1楼
MUL 为16位数据乘法,其数据范围为-32768~+32767

你150×254,溢出啦。

请使用32位MUL,也就是DMUL进行运算。

Good Luck
1137
baoming-1986
文章数:73
年度积分:50
历史总积分:1137
注册时间:2008/1/27
发站内信
发表于:2009/9/7 14:13:08
#2楼
150*254=38100,但16位的D的数据荡围为-32768~32768,所以你的已经溢出。用DMUL指令就行、、、、、你可以用WIN系统的计算器,自己计算一下。多少位可以表示的数据范围。
85730
ZCMY 版主
文章数:47487
年度积分:249
历史总积分:85730
注册时间:2004/3/16
发站内信
2018论坛贡献奖
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(三)
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2014相约国庆
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2009/9/8 9:20:26
#3楼
呵呵;可以用16位的;
执行后结果是存在D20的32位内,也就是D20 D21
你查看时把D20改成32位的看一下结果;
12705
lixiaobai
文章数:7781
年度积分:50
历史总积分:12705
注册时间:2006/4/5
发站内信
08年最佳博客奖
发表于:2009/9/9 20:31:01
#4楼
乘法的结果太大了,超过16位了,所以要用32位的乘法来做
说说
1437
A136126
文章数:167
年度积分:50
历史总积分:1437
注册时间:2005/12/31
发站内信
发表于:2009/9/11 14:43:45
#5楼
以上所说的是对的,但有时有很个别的例子,储存器D也会出问题的。
818
kubi0307
文章数:7
年度积分:50
历史总积分:818
注册时间:2009/9/13
发站内信
发表于:2009/9/13 12:56:19
#6楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
38831
fumz78 版主
文章数:17156
年度积分:62
历史总积分:38831
注册时间:2006/10/8
发站内信
2018论坛优秀版主
2017春节活动(二)
2016论坛优秀版主
2016国庆活动(二)
2015论坛优秀版主
2014论坛优秀版主
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
08年最佳博客奖
发表于:2009/9/17 8:38:00
#7楼
以下是引用A136126在2009-9-11 14:43:45的发言:
以上所说的是对的,但有时有很个别的例子,储存器D也会出问题的。
出现折问题,把PLC清除内存再试下,通常就能解决
三菱 PLC、触摸屏、伺服电机、变频器、数控系统
   深圳       fumz78@163.com

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

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

78.0005