搜索
bottom↓
回复: 12

这条指令的结果会加倍,请各们帮助指点

[复制链接]

出0入0汤圆

发表于 2017-3-5 20:45:58 | 显示全部楼层 |阅读模式
在PIC的硬件乘法器中。有MPY乘法这条语句。但是乘出来的结果会加倍。比如3*2=6 但是使用MPY指令就会等于12。 这是为什么?

出0入0汤圆

 楼主| 发表于 2017-3-6 08:33:24 | 显示全部楼层
自己做下沙发。高手帮忙解答下

出0入0汤圆

发表于 2017-3-6 08:34:57 | 显示全部楼层
发代码出来请大家看看

出0入0汤圆

 楼主| 发表于 2017-3-6 08:51:56 | 显示全部楼层
          mov.w     #2,w5        ;

          mov.w     #3,w4        ;
          mpy       w4*w5,A        ;A=0x00000000000C   计算结果不是6而是12这是为什么???

出0入0汤圆

 楼主| 发表于 2017-3-6 08:52:56 | 显示全部楼层
jbpan852 发表于 2017-3-6 08:34
发代码出来请大家看看

使用的是MPLAB 8.6版本的软件。

出5入14汤圆

发表于 2017-3-9 15:07:21 | 显示全部楼层
现在还用汇编编程的人,真的很难找,,,,,

出0入0汤圆

发表于 2017-3-9 17:21:14 来自手机 | 显示全部楼层
天天汇编的路过

出0入34汤圆

发表于 2017-3-9 18:00:22 | 显示全部楼层
我也汇编,就是不会C

出0入14汤圆

发表于 2017-3-9 20:28:52 | 显示全部楼层
epwwm 发表于 2017-3-9 18:00
我也汇编,就是不会C

汇编根本看不懂。。。。

条条指令涉及到寄存器。。。。

要运算一个东西,C语言一个*的操作,汇编要好几行。。。。
=====

请问汇编是通用的吗?每一种单片的寄存器都不一样的,这样怎么写程序?要对每种单片机的寄存器都很熟悉?

出0入0汤圆

发表于 2017-3-9 20:31:02 | 显示全部楼层
记得硬件乘除法是可以设置了计算结果左移、右移的,

出0入34汤圆

发表于 2017-3-10 10:10:23 | 显示全部楼层
isakura 发表于 2017-3-9 20:28
汇编根本看不懂。。。。

条条指令涉及到寄存器。。。。

对,每种都不同,要对寄存器熟悉,汇编也有乘法,除法,不过低档的PIC是没有的,只有加减。汇编效率高,低档的MCU,只有1K,甚至510字节空间,汇编就有效多了

出0入0汤圆

 楼主| 发表于 2017-3-10 13:55:00 | 显示全部楼层
没想到有这么多人回答我的问题。谢谢

出0入0汤圆

 楼主| 发表于 2017-3-10 13:56:06 | 显示全部楼层
epwwm 发表于 2017-3-10 10:10
对,每种都不同,要对寄存器熟悉,汇编也有乘法,除法,不过低档的PIC是没有的,只有加减。汇编效率高, ...

PIC30f系列的乘法器MPY指令为什么结果为加倍?谢谢指点?我想知道原理。好像DSP是不会的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:50

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表