您现在所在的是:

台达论坛

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

双字运算问题

4349
857362369
文章数:637
年度积分:621
历史总积分:4349
品牌积分(台达):35
注册时间:2017/5/7
发站内信
发表于:2019/1/28 14:42:56
#10楼
回复 #8楼 pan_xiansheng
那如果两种都需要用到呢,因为这是一个速度值,需要快速和慢速都要且可调,那慢速的时候是在单字的,快速的时候就可能在双字了,大神们你们是怎么解决的类似问题
4349
857362369
文章数:637
年度积分:621
历史总积分:4349
品牌积分(台达):35
注册时间:2017/5/7
发站内信
发表于:2019/1/28 14:45:07
#11楼
回复 #9楼 ZCMY
是的版主,那我这个速度值可能会超过32767,也有可能比这个小,那我运算时,用什么指令呢
85329
ZCMY 版主
文章数:47405
年度积分:1388
历史总积分:85329
品牌积分(台达):193
注册时间:2004/3/16
发站内信
2018论坛贡献奖
2018春节活动(三)
2017论坛优秀版主
2017国庆活动(三)
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
2014相约国庆
2013论坛优秀版主
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2019/1/28 17:26:23
#12楼
要先计算好,如果可能大于32767,就需要用32位数据;
17378
pan_xiansheng
文章数:2332
年度积分:1026
历史总积分:17378
品牌积分(台达):10
注册时间:2011/11/18
发站内信
2018论坛解答高手
2015论坛贡献奖
发表于:2019/1/28 18:00:18
#13楼


与计算的结果D400无关,即使D400超了16位,只要被乘数D420没超16位,仍然还用MUL指令。至于D400超过16位,那就看你后面怎么调用D400,是加、减运算,还是赋值给另一寄存器,此时可用双字指令,即:
加指令:[D400 K34567 D410] (D400、D401双字带入)
减指令:[D400 K34567 D412](D400、D401双字带入)

赋值指令:[DMOV D400 D414](D400、D401双字带入)

附件 53104c80465e61447c0650d47aee6a3b006cc066.jpg

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

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

62.4004