发新帖我要提问
12
返回列表
打印

每条c语句等于多少机器周期

[复制链接]
楼主: liliang9554
手机看帖
扫描二维码
随时随地手机跟帖
21
jxmzzr| | 2012-4-20 09:11 | 只看该作者 回帖奖励 |倒序浏览
同样一条语句在不同的情况下编译的结果是不一样的。

使用特权

评论回复
22
open_free| | 2012-4-20 09:34 | 只看该作者
楼上说的都很有道理,编译的时候,优化方式不一样,得到的汇编也不一样的。。同样机器周期也不同。

使用特权

评论回复
23
supreme42| | 2012-4-20 17:17 | 只看该作者
跟编译器,CPU有关。

使用特权

评论回复
24
teabottle| | 2012-4-21 09:53 | 只看该作者
机器周期的倍数

使用特权

评论回复
25
shenmu2012| | 2012-4-22 16:52 | 只看该作者
看了上边各位大虾的讨论,我也有点蒙的,一直就没咋想着问题的,和所用的单片机具体型号无关么?求解

使用特权

评论回复
26
拿起书本| | 2012-5-3 23:06 | 只看该作者
这个不定,不能一概而论。跟架构相关,跟你的上下文相关,同时跟编译器的效率也相关。比如说在arm中一个32位立即数的加载指令的机器周期就可能是一条,也可能是两条。
很多相同功能的语句,如果编译器没有优化,不能的写**导致不一样的编译长度,例如for(i = 10; i > 0; i --)
的最终指令数就要少于for(i = 0; i < 10; i ++)
最准确的结果还是要看你最终编译出来的二进制文件的map表。


顶一下

使用特权

评论回复
27
jxmzzr| | 2012-5-3 23:28 | 只看该作者
编译上可以看到,自己是没办法算的,看编译器上的统计吧。硬件不同,结果肯定不同的。

使用特权

评论回复
28
永远的不知| | 2012-5-3 23:38 | 只看该作者
1# liliang9554
每条汇编语句都不确定是多少机器周期,何况C语言呢,C语言就不要纠结多少机器周期了。要控制时序,可以尝试定时器。

使用特权

评论回复
29
TI_MCU| | 2012-5-4 11:52 | 只看该作者
要看具体的语句和编译器的情况,不一定的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则