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

精华主题: 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)中了?
langman
级别: 家园常客
精华主题: 0
发帖数量: 576 个
工控威望: 606 点
下载积分: 1500 分
在线时间: 227(小时)
注册时间: 2008-06-23
最后登录: 2021-04-09
查看langman的 主题 / 回贴
1楼  发表于: 2009-02-05 15:14
我来说具体一点吧:
1.MUL   D10   K80   D20;乘法的结果占用两个寄存器D20(低16位)、D21(高16位)
2.DIV   D20   D30   D40;根据上句程序,按一般使用意图,这里你当然需要用到D20、D21两个寄存器,所以这里要用DDIV命令,注意这里很容易搞错,用DDIV命令之后,除数也占用两个寄存器D30、D31,而结果会占用4个寄存器,D40 D41(商),D42、D43(余数)。
初学者这一点很容易搞错。

3.MOV  D40   D50,根据上一句,这里必须要用DMOV命令,如果余数也要传送,那还得加一句:DMOV D42 D52;
朗工自动化,承接自动化改造工程:PLC控制系统、伺服系统、气动、步进、节能灯设备、机械手、集成电路测试设备、变频器、人机界面,欢迎洽谈,