5463|8

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

st7系列的乘法指令 [复制链接]

st7mc有8位无符号乘法指令,在汇编下使用情况就不说了。
但是在用c语言编程时如果c(16bit)=a(8bit)*b(8bit),cosmic编译后的汇编代码是怎么样的?
cosmic会直接用那个乘法指令么,还是像我们以前的那种移位加法运算耗去几十条指令?
另外那种16位乘16位的情况又是如何?如果cosmic能聪明到直接运用那个乘法指令的话,估计10几个指令周期就搞定一次16位乘了吧。

手头虽然有编译器,但是不知道在哪儿看汇编代码,以前都是进debug阶段才看到汇编代码的,不知道怎么样才能编译后直接看汇编语句。知道的话就不麻烦大家了哈。
此帖出自stm32/stm8论坛

最新回复

                                 估计也就是那些需要压榨单片机一切资源的才会去关心这个事了。虽然和dsp几十ns一次乘法运算有不少差距,不过和大多数单片机比很不错了。   详情 回复 发表于 2007-10-30 16:27
点赞 关注
 

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

那就debug一下啊

                                  
此帖出自stm32/stm8论坛
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

编译时用一个大概是-s的选项可以生成汇编代码列表

                                 关于具体的选项使用,请LZ查一下cosmic的用户手册。如果你装了cosmic的套件,手册就在cosmic的系统目录下;如果是盗版的,我就不清楚了。
此帖出自stm32/stm8论坛
 
 

回复

84

帖子

0

TA的资源

一粒金砂(中级)

4
 

不在公司,明天试下

目前也就知道单片机里pic的带有乘法指令。
今天偶尔看看st7mc指令时看到个乘法指令,惊喜啊!用好的话省去我很多事。
我装的cosmic用的是st给的16k license,估计是没有手册的。麻烦老大发给我一个吧。
邮箱是yefeng@szhittech.com,不要吝啬哈,我公司的变频洗衣机,空调就用你们st的单片机的,当然现在有日本的厂商来抢单了。
此帖出自stm32/stm8论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 

16K的免费版本也有手册

安装后,手册在这个目录下:....COSMICCXST7_16KDocs

建议是用STVD7,选择Project/Setting,再"Project Settings"的窗口中选"C Compiler"子菜单,在Listings中选中"C and Assembly"即可。程序编译完后记生成汇编列表。


我试了一下,你说的情况,编译器使用了乘法指令!如你的例子c=a*b,产生了这样的5条指令:
LD  A, _a  ; 取a到寄存器A
LD  X, _b  ; 取b到寄存器X
MUL X, A
LD  _c+1, A ; 存结果低8位
LD  _c, X   ; 存结果高8位 (ST7使用大端存储方式)
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 

再帮我测试一下16位相乘吧

我按老大说的选了,但编译后没有输出任何结果阿,也没跳出什么窗口显示汇编代码。汗

不过这个暂时搁置,到时仔细研究。我现在只要看下16位相乘的结果是怎么样的,粗略估计是要20多个指令。老大帮我测试下看看,谢谢!
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 

编译完后要到目标文件所在的目录下找.ls结尾的文件

                                 .ls结尾的文件里面包含了C语句与对应汇编代码的列表。
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 

它是通过一个隐含的库函数完成的16位乘16位的运算

总共用了不到30条指令,包括函数参数的传递,库函数中3次使用了MUL乘法指令。

因为使用了库函数,增加了函数的进入退出和参数的传递,所以指令数目不是最优;如果确实要求运算速度,你可以根据库函数自己写一段汇编嵌到C程序中。
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

9
 

谢谢老大,可以结贴了

估计也就是那些需要压榨单片机一切资源的才会去关心这个事了。
虽然和dsp几十ns一次乘法运算有不少差距,不过和大多数单片机比很不错了。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表