[应用相关] 每条c语句等于多少机器周期

[复制链接]
1574|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 | 显示全部楼层

看看反汇编 然后找本汇编的书,自己算算
xia00 发表于 2019-1-3 11:52 | 显示全部楼层
如若遇到for,if 这类语句,怎么计算?如若程序有2,000条,20,000汇编语句,怎么自己算?
hfdy01 发表于 2019-1-3 11:54 | 显示全部楼层
难道your_name.a51的内容  与  通过调试窗口看到的反汇编内容不一样么?
CallReceiver 发表于 2019-1-3 11:58 | 显示全部楼层
测时间,研究具体多少语句没有太大意义,可以估计1行C=7行汇编。
Edisons 发表于 2019-1-3 12:06 | 显示全部楼层
很多相同功能的语句,如果编译器没有优化,不能的写**导致不一样的编译长度,例如for(i = 10; i > 0; i --)
_gege 发表于 2019-1-3 12:09 | 显示全部楼层
两种写法都是正确的,不过在没有优化的情况下会有不同的编译长度。
Mozarts 发表于 2019-1-3 12:11 | 显示全部楼层

利用断点计算,在这条语句的前面加一个断点。
Listate 发表于 2019-1-3 12:15 | 显示全部楼层
一般而言,我们所写的C程序都要放到相应的编译程序中去编译,但是一般编写的C程序很难一次就能编译成功,必须通过反复调试才能通过
wanglaojii 发表于 2019-1-3 12:23 | 显示全部楼层
采用Keil uVision2的功能先将正确的C程序编译通过,再将生成的HEX文件通过反汇编成汇编语言,再计算每条语句的的执行时间,算出整个程序执行时间也可
laozhongyi 发表于 2019-1-3 12:25 | 显示全部楼层
但无论如何,你的程序执行时间一定取决于其所对应的硬件环境。
zhouhuanの 发表于 2019-1-3 12:26 | 显示全部楼层

同样一条语句在不同的情况下编译的结果是不一样的。
handleMessage 发表于 2019-1-3 12:29 | 显示全部楼层
编译上可以看到,自己是没办法算的,看编译器上的统计吧。硬件不同,结果肯定不同的。
bbapple 发表于 2019-1-3 12:29 | 显示全部楼层

keil 可以单步测出执行总时间
ayb_ice 发表于 2019-1-3 13:09 | 显示全部楼层
无法确定,取决于很多因素
keaibukelian 发表于 2019-1-5 15:40 | 显示全部楼层
不同的语句时间也不同
labasi 发表于 2019-1-5 15:44 | 显示全部楼层
能自己卡时间算算吗
paotangsan 发表于 2019-1-5 15:50 | 显示全部楼层
关注这个问题有什么用处呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

181

主题

1597

帖子

3

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