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

精华主题: 0
发帖数量: 1390 个
工控威望: 1493 点
下载积分: 13236 分
在线时间: 2192(小时)
注册时间: 2008-03-19
最后登录: 2024-06-11
查看小蜜蜂的 主题 / 回贴
楼主  发表于: 2008-11-08 15:17
MUL   D10   K80   D20
DIV   D20   D30   D40
MOV  D40   D50

求助大家,第一行的乘法中D10乘以K80是生成D20还是D20  D21两个?第二行的要用DIV还是DDIV?第三行要用MOV还是DMOV呢?拜托大家了,谢谢!
dv0429
级别: 略有小成
精华主题: 0
发帖数量: 205 个
工控威望: 221 点
下载积分: 837 分
在线时间: 96(小时)
注册时间: 2008-02-27
最后登录: 2023-09-18
查看dv0429的 主题 / 回贴
1楼  发表于: 2008-11-09 07:27
如果结果大于32767要在前面加D,如果在32767范围内的就不加加D,32767是16位寄存器最大的值,什么时候用16位还是32位主要是看结果会不会大于这个值
dv0429
级别: 略有小成
精华主题: 0
发帖数量: 205 个
工控威望: 221 点
下载积分: 837 分
在线时间: 96(小时)
注册时间: 2008-02-27
最后登录: 2023-09-18
查看dv0429的 主题 / 回贴
2楼  发表于: 2008-11-10 08:54
真是晕倒,我的已经说得很清楚~!!
在乘法上32767是用16位寄存器还是32位的分界点,这是毫无疑问的地方
但是在除法上无论你是16位除法还是32位除法都是占用32位,第一个结果是商,第二个是余数.比如DIV D0 D10 D20来说,D20是商,D21是余数.DDIV d100 D110 D120,那么D120.D121是商,D122,D123是余数,当然如果出来的值少于32767的话你可以直接调用低位的D来作以后的运算,不必一定要用32位指令.总之还是那个原则,32767是16位和32位的分界点
目前来说PLC不支持64位