jobmen 发表于 2017-3-5 20:45:58

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

在PIC的硬件乘法器中。有MPY乘法这条语句。但是乘出来的结果会加倍。比如3*2=6 但是使用MPY指令就会等于12。 这是为什么?

jobmen 发表于 2017-3-6 08:33:24

自己做下沙发。高手帮忙解答下

jbpan852 发表于 2017-3-6 08:34:57

发代码出来请大家看看

jobmen 发表于 2017-3-6 08:51:56

          mov.w   #2,w5        ;

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

jobmen 发表于 2017-3-6 08:52:56

jbpan852 发表于 2017-3-6 08:34
发代码出来请大家看看

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

EMC菜鸟 发表于 2017-3-9 15:07:21

现在还用汇编编程的人,真的很难找,,,,,

mcujack 发表于 2017-3-9 17:21:14

天天汇编的路过

epwwm 发表于 2017-3-9 18:00:22

我也汇编,就是不会C

isakura 发表于 2017-3-9 20:28:52

epwwm 发表于 2017-3-9 18:00
我也汇编,就是不会C

汇编根本看不懂。。。。

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

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

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

长夜伴灯 发表于 2017-3-9 20:31:02

记得硬件乘除法是可以设置了计算结果左移、右移的,

epwwm 发表于 2017-3-10 10:10:23

isakura 发表于 2017-3-9 20:28
汇编根本看不懂。。。。

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


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

jobmen 发表于 2017-3-10 13:55:00

没想到有这么多人回答我的问题。谢谢

jobmen 发表于 2017-3-10 13:56:06

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

PIC30f系列的乘法器MPY指令为什么结果为加倍?谢谢指点?我想知道原理。好像DSP是不会的。
页: [1]
查看完整版本: 这条指令的结果会加倍,请各们帮助指点