12M晶振单片机。 while(i--) { ; } 循环一次占几个机器周期,为什么?

 我来答
纵安民符庄
2019-10-23 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:869万
展开全部
跟晶振速度没有关系,这个几个机器周期不一定,得看是什么单片机,程序编译好后,查看生成的编译文件,找到对应的编译好的汇编程序,对照每个汇编命令的指令周期,计算一共需要多少机器周期,如果要算耗时,再根据晶振算下。
宫甜恬秦晗
2020-01-19 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:25%
帮助的人:804万
展开全部
告诉你一个很容易的办法,要想知道这段程序用了多少指令周期就把这段程序放在KEIL
C51里面调用,在调用前记住机器周期数,调用完之后会产生一个新的周期数,这两个周期数的差值就是这段程序执行完所需要的周期数了,然后再根据使用晶振频率计算出周期的时间,这个方法对精确延时调试很管用的,多少可以用NOP空指令补,希望能采纳
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
登皓君支妍
2019-10-12 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:29%
帮助的人:880万
展开全部
这是个和具体编译器等有关的问题,没有标准答案的。
自己看看生成的汇编代码
或者仿真跑一下,就有答案了,
但这种答案是不通用的,和编译器类型、版本、参数设置(例如优化等级)都有关系,
甚至这行代码前后的代码不一样都可能导致不一样的编译结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钦飞双相忻
2019-08-16 · TA获得超过2.9万个赞
知道大有可为答主
回答量:9516
采纳率:35%
帮助的人:1001万
展开全部
这个不好说清楚的,与i的数据类型有关,还与编译器有关。所以要精确计算时间,必须用汇编,这是实打实的。
再看看别人怎么说的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式