for循环占用的指令周期问题

for循环占用指令周期的影响因素:

1.单片机的指令集合,指令所花费的时间周期

2.循环变量的数据类型,所占字节数越大,所占指令周期也就越大

3.循环体完成的工作

以avr单片机为例对于循环代码

for(i=0;i<4;i++); 

对应汇编指令如下:

for(i=0;i<1;i++)

0000           ;              i -> R16,R17

0000           ;   for(i=0;i<4;i++);

 00000027              clr R16

 00021127              clr R17

 0004           L2:

 0004                   .dbline 4

 0004          L3:

 0004                   .dbline 4

 00040F5F              subi R16,255  ; offset = 1

 00061F4F              sbci R17,255

 0008                   .dbline 4

 00080430              cpi R16,4

 000AE0E0              ldi R30,0

 000C1E07              cpc R17,R30

 000ED4F3              brlt L2

 

开始循环前变量i初始化占用两个指令周期,每次变量i的累加占用两个指令周期。跳转命令的判断占用三个指令周期,跳转命令占用两个指令周期。

所以每次循环占用七个指令周期。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值