STM32内部硬件乘法器

[复制链接]
14500|9
 楼主| chuzhujun_ 发表于 2008-10-19 18:04 | 显示全部楼层 |阅读模式
STM32内部是带有硬件乘法器的,那么如果我在C语言描述一个算式X*Y,那么编译器会调用内部的硬件乘法器来计算这个算式吗?我看了一下C转汇编,好像不可以的,那么一定要自己操纵乘法器了??
black_wolf 发表于 2008-10-19 18:35 | 显示全部楼层

有详细的描述吗?

没仔细看过,应该能调用吧,如果不能的话那编译器太弱智了!

楼主能给个例子吗?用什么编译器?
 楼主| chuzhujun_ 发表于 2008-10-19 20:00 | 显示全部楼层

我看了好像真的不可以

我就是在IAR4.42中编译的,随便写一个乘法计算式,然后再到汇编窗口中去查看,没有发现有调用乘法器之类的语句,好像还是直接用汇编通过那种累加的笨方法算的!
again_gyf 发表于 2008-10-19 20:52 | 显示全部楼层

没有仔细研究不要瞎说!

IAR连这点优化的能力都没吗?怎么可能
lianshumou 发表于 2008-10-20 00:08 | 显示全部楼层

不很明显调用了么,那个mul指令就是乘法!

 楼主| chuzhujun_ 发表于 2008-10-20 09:11 | 显示全部楼层

用了MUL不表示就调用了硬件乘法器

我后来又仔细看了看,用了MUL不表示就调用了硬件乘法器的啊!51单片机是不是也有硬件乘法器啊?没有吧?但是也有乘法指令的,430单片机在IAR中如果不用专门的操作硬件乘法器的指令,比如设置设置两个乘数的字节数,然后吧乘数送达乘法器,然后再到结果寄存器中去取出结果,显然,STM32也没有这么做啊?所以我感觉要是利用硬件乘法器的话,还是得需要操纵硬件乘法器模块才能使用的,而不是简单的两个数相乘之后IAR会帮我们去操作硬件乘法器的!
ijk 发表于 2008-10-20 09:58 | 显示全部楼层

MUL和硬件乘法器

  在cortexM3中,把硬件乘法器整合到内核里面了,并通过指令体现出来;而430是不一样的,在430中硬件乘法器是单独的模块,跟内核没有什么关系。把cortexM3的硬件乘法器想象成430那样,完全是误解。
 楼主| chuzhujun_ 发表于 2008-10-20 10:01 | 显示全部楼层

楼上一席话,胜读十年书啊

楼上一席话,胜读十年书啊,我看样子是430用的太习惯了,所以会由此一想,楼上高见,看样子以后得跟你当菜鸟了,还望多喂一喂!再次谢过!
香水城 发表于 2008-10-20 13:04 | 显示全部楼层

STM32硬件除法器和乘法器是通过特定指令访问

这里有一个关于这个问题的旧帖:STM32硬件除法器和乘法器是通过特定指令访问
usecoolful 发表于 2008-10-21 11:08 | 显示全部楼层

借鉴下PC的CPU的处理方式

如果硬件乘法器是CPU核的一部分,那么相关的指令就是用硬件乘法器去执行的,但是对于用户是透明的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

55

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部