• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1400 个
工控威望: 1504 点
下载积分: 13259 分
在线时间: 2203(小时)
注册时间: 2008-03-19
最后登录: 2024-11-22
查看小蜜蜂的 主题 / 回贴
楼主  发表于: 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
了却一段情缘,成就一翻事业!
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1400 个
工控威望: 1504 点
下载积分: 13259 分
在线时间: 2203(小时)
注册时间: 2008-03-19
最后登录: 2024-11-22
查看小蜜蜂的 主题 / 回贴
2楼  发表于: 2008-11-08 21:13
太爱1楼的朋友了,不过第二行的,我还是有疑问,因为D20经过第一行的乘法后是(D20  D21),到第二行D20(D20  D21)是32位的,D30是16位的,D20除以D30为什么可以用16位的DIV呢?难道说只有当D20和D30都是32位的时候才要用DDIV?D20或D30有一个是16位的就不要用DDIV?  
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1400 个
工控威望: 1504 点
下载积分: 13259 分
在线时间: 2203(小时)
注册时间: 2008-03-19
最后登录: 2024-11-22
查看小蜜蜂的 主题 / 回贴
3楼  发表于: 2008-11-08 21:29
还有如果第二行的D40是32位的(D41  D40),那么第三行为什么不要用DMOV呢?你不是说DMOV是运算结果以32位输出的。D40就是32位的啊。还有当D40是64位的(D43  D42  D41  D40)那第三行又该用哪个MOV呢?
王红星
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看王红星的 主题 / 回贴
4楼  发表于: 2008-11-08 22:24
    
王红星
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看王红星的 主题 / 回贴
5楼  发表于: 2008-11-08 22:24
      
向梦飞
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看向梦飞的 主题 / 回贴
6楼  发表于: 2008-11-08 22:45
如果第二行用DIV那么结果就不是你想要的结果了,因为源本来是32位你用16位的话只进行了低16位运算,用DIV只能运算16位数据结果是32位低16位存商高16位存余数.
用DDIV的话源1数据和源2数据都是32位.目标就64位其中商占低32位余数占高32位
至于第3行用DMOV还是用MOV就看你要商还是要余数了
请多指教
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1400 个
工控威望: 1504 点
下载积分: 13259 分
在线时间: 2203(小时)
注册时间: 2008-03-19
最后登录: 2024-11-22
查看小蜜蜂的 主题 / 回贴
7楼  发表于: 2008-11-09 12:07
6楼朋友,谢谢你了,第三行我商和余数都要用呢,我应该用哪个MOV呢?或者如果我只要用商,用哪个MOV,又如果我只要用余数,那么我应该用哪个MOV?希望大家帮帮我这个菜鸟,谢谢大家了!
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1400 个
工控威望: 1504 点
下载积分: 13259 分
在线时间: 2203(小时)
注册时间: 2008-03-19
最后登录: 2024-11-22
查看小蜜蜂的 主题 / 回贴
8楼  发表于: 2008-11-09 15:51
没人帮我看看吗?
刘铭传
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看刘铭传的 主题 / 回贴
9楼  发表于: 2008-11-09 16:00
学习了。
青争
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看青争的 主题 / 回贴
10楼  发表于: 2008-11-09 22:58
我也想学,帮你顶一下
zjwljsj200
大乐园
级别: 略有小成
精华主题: 0
发帖数量: 83 个
工控威望: 290 点
下载积分: 787 分
在线时间: 39(小时)
注册时间: 2008-11-22
最后登录: 2018-10-03
查看zjwljsj200的 主题 / 回贴
11楼  发表于: 2008-11-22 18:28
学习
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go