pic16单片机中双字节乘法子程序的更正.pdfVIP

  • 10
  • 0
  • 约6.32千字
  • 约 3页
  • 2019-07-14 发布于江苏
  • 举报

pic16单片机中双字节乘法子程序的更正.pdf

PIC1 6单片机中双字节乘法子程序的蔓正 ●福州大学 江禾Ⅱ ⑩ MoVFACCbL0,W 美国Microchip公司的PICl6系列单片机以其功能 齐全、品种多、可靠性高著称,得到国内越来越多的相关技 ⑩ MOVWFACCdL0 术人员的青睐。但是,PICl6系列单片机中无乘除指令,⑩ CLRFAOCbHI 因此必须用加减和移位的办法实现乘法与除法运算。国 ④ CLRFACCbL0 ⑨ RETURN 内许多教材引用了Microchip公司的相关子程序或自编 ;双字节加,ACCb+Acca一ACCb 了通用子程序,给从事PIC系列单片机开发的人员带来了 MOVF ◎D_-ADD ACCaL0,W 便利。但由于Microchip公司早期对外发布的子程序中 AC(、bLo,F ④创)亡IWF ;先加低字节 存在错误,使得国内出版的几乎所有的PICl6系列单片机 BTFSCSTATUS,C ③ ;判断是否有进位 教材及文献中的无符号双字节乘法子程序都存在错 INCFACCbHI,F ③ ;有进位高字节加1 误口…。笔者最近在Microchip公司网站上新下载了该子 MOVFACCaHI,W ⑦ 程序口],发现已进行了修改,但仍存在错误,因此有必要对 ;加高字节 ◎川]【)ⅥⅢ。Aa璃HI,F 此做一个更正,否则若在产品中引用这个错误的程序,将 ⑦ RETURN 导致不可预料的后果。 可以看到,该乘法子程序使用的是移位及相加的办 法:每次循环时判断乘数右移出的那一位是否为1,若为 1错误的由来 1则将部分积加上被乘数,然后将部分积带标志位右移。 在上述文献中,无符号双字节乘法S版本(占用程序 空间少,Small;另一版本为F版本,即运行速度快,Fast) 的程序如下(方便起见,程序加上行号): ;双字节乘,ACCa(16位)×ACCb(16位),结果放入到ACCb、 ;ACCc(共32位) DWF CALLSETUP ①DLMPYS 志位C,这样在其后的调用返回中第⑥行指令 RRF ACCdHI。F ②ML00P ;乘数右移1次

文档评论(0)

1亿VIP精品文档

相关文档