打印
[应用相关]

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

[复制链接]
1210|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
androidbus|  楼主 | 2019-1-3 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
每条c语句等于多少机器周期
沙发
litengg| | 2019-1-3 11:43 | 只看该作者
用keil u3,debug调试,然后查看汇编窗口,里面就是对应c程序的汇编代码.每条语句对应的机器周期是不一样的

使用特权

评论回复
板凳
qiangweii| | 2019-1-3 11:46 | 只看该作者
想得到自己C程序的汇编码,也不用到调试窗口:只要在你的C程序第一条输入
#pragma  src(your_name.a51)

然后把your_name.a51文件加到项目窗口就可以看到汇编码了。

使用特权

评论回复
地板
shashaa| | 2019-1-3 11:48 | 只看该作者

看看反汇编 然后找本汇编的书,自己算算

使用特权

评论回复
5
xia00| | 2019-1-3 11:52 | 只看该作者
如若遇到for,if 这类语句,怎么计算?如若程序有2,000条,20,000汇编语句,怎么自己算?

使用特权

评论回复
6
hfdy01| | 2019-1-3 11:54 | 只看该作者
难道your_name.a51的内容  与  通过调试窗口看到的反汇编内容不一样么?

使用特权

评论回复
7
CallReceiver| | 2019-1-3 11:58 | 只看该作者
测时间,研究具体多少语句没有太大意义,可以估计1行C=7行汇编。

使用特权

评论回复
8
Edisons| | 2019-1-3 12:06 | 只看该作者
很多相同功能的语句,如果编译器没有优化,不能的写**导致不一样的编译长度,例如for(i = 10; i > 0; i --)

使用特权

评论回复
9
_gege| | 2019-1-3 12:09 | 只看该作者
两种写法都是正确的,不过在没有优化的情况下会有不同的编译长度。

使用特权

评论回复
10
Mozarts| | 2019-1-3 12:11 | 只看该作者

利用断点计算,在这条语句的前面加一个断点。

使用特权

评论回复
11
Listate| | 2019-1-3 12:15 | 只看该作者
一般而言,我们所写的C程序都要放到相应的编译程序中去编译,但是一般编写的C程序很难一次就能编译成功,必须通过反复调试才能通过

使用特权

评论回复
12
wanglaojii| | 2019-1-3 12:23 | 只看该作者
采用Keil uVision2的功能先将正确的C程序编译通过,再将生成的HEX文件通过反汇编成汇编语言,再计算每条语句的的执行时间,算出整个程序执行时间也可

使用特权

评论回复
13
laozhongyi| | 2019-1-3 12:25 | 只看该作者
但无论如何,你的程序执行时间一定取决于其所对应的硬件环境。

使用特权

评论回复
14
zhouhuanの| | 2019-1-3 12:26 | 只看该作者

同样一条语句在不同的情况下编译的结果是不一样的。

使用特权

评论回复
15
handleMessage| | 2019-1-3 12:29 | 只看该作者
编译上可以看到,自己是没办法算的,看编译器上的统计吧。硬件不同,结果肯定不同的。

使用特权

评论回复
16
bbapple| | 2019-1-3 12:29 | 只看该作者

keil 可以单步测出执行总时间

使用特权

评论回复
17
ayb_ice| | 2019-1-3 13:09 | 只看该作者
无法确定,取决于很多因素

使用特权

评论回复
18
keaibukelian| | 2019-1-5 15:40 | 只看该作者
不同的语句时间也不同

使用特权

评论回复
19
labasi| | 2019-1-5 15:44 | 只看该作者
能自己卡时间算算吗

使用特权

评论回复
20
paotangsan| | 2019-1-5 15:50 | 只看该作者
关注这个问题有什么用处呢

使用特权

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

本版积分规则

181

主题

1597

帖子

3

粉丝