小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1402 个
工控威望: 1507 点
下载积分: 13266 分
在线时间: 2204(小时)
注册时间: 2008-03-19
最后登录: 2024-11-26
查看小蜜蜂的 主题 / 回贴
楼主  发表于: 2008-11-08 16:25
三菱程序疑问
MUL   D10   K80   D20
DIV   D20   D30   D40
MOV  D40   D50

求助大家,第一行的乘法中D10乘以K80是生成D20还是D20  D21两个?第二行的要用DIV还是DDIV?第三行要用MOV还是DMOV呢?拜托大家了,谢谢!还有从书上看是MUL  D0   D2    D4,(D0)乘以(D2)等于(D5  D4),比如D0=8,D2=9,(D5  D4)=72,虽然72远远小于32767,但是也要存到(D5  D4)中,那上面我的程序是MUL   D10  K80  D20  也就是(D21  D20)中了?
yeyhx
爱虽没有说出口, 但并不代表不爱!!!
级别: 略有小成
精华主题: 0
发帖数量: 463 个
工控威望: 422 点
下载积分: 1168 分
在线时间: 36(小时)
注册时间: 2007-04-20
最后登录: 2023-06-05
查看yeyhx的 主题 / 回贴
1楼  发表于: 2008-11-08 20:25
第一行的乘法中D10乘以D80是生成D20还是D20  D21两个?
答:乘法不管你D10和D80里面的数据是多大,其结果都会占用两个寄存器,即D21  D20
       如果用DMUL  D10  D80    D20则占用(D23 D22  D21 D20)
第二行的要用DIV还是DDIV
答:两个都可以用,不过如果用DIV则是低8位参与运算。不过在这里用DIV就可以了

第三行要用MOV还是DMOV呢
答:MOV   DMOV是传送指令,如果第二行用DDIV那么第三行就要用DMOV了。   DMOV是运算结果以32位输出的。




结论:            MUL  D10  K80   D20     占用(D21  D20)
            第二行DIV    D20   D30   D40    占用(D41 D40)
            第三行MOV   D40  D50                         D40=D50


以上GOOD LUCK
工控技术讨论群火爆招人中:32853037
群里不定期赠送群友视频教程,不带嘴的免进。

GOOD  LUCK
了却一段情缘,成就一翻事业!
yeyhx
爱虽没有说出口, 但并不代表不爱!!!
级别: 略有小成
精华主题: 0
发帖数量: 463 个
工控威望: 422 点
下载积分: 1168 分
在线时间: 36(小时)
注册时间: 2007-04-20
最后登录: 2023-06-05
查看yeyhx的 主题 / 回贴
2楼  发表于: 2009-02-03 08:08
引用
引用第1楼yeyhx于2008-11-08 20:25发表的  :
第一行的乘法中D10乘以D80是生成D20还是D20  D21两个?
答:乘法不管你D10和D80里面的数据是多大,其结果都会占用两个寄存器,即D21  D20
       如果用DMUL  D10  D80    D20则占用(D23 D22  D21 D20)
第二行的要用DIV还是DDIV
答:两个都可以用,不过如果用DIV则是低8位参与运算。不过在这里用DIV就可以了
.......




这里这一句我说错了,两个都可以用,不过如果用DIV则是低8位参与运算。不过在这里用DIV就可以了
应该是低16位参与运算,
工控技术讨论群火爆招人中:32853037
群里不定期赠送群友视频教程,不带嘴的免进。

GOOD  LUCK
了却一段情缘,成就一翻事业!