51for语句执行周期

#include

void delay()

{unsigned char n;

for(n=0;n<100;n++)

;

   }

void main(void)

{while(1)

  {P0=0X00;

delay();

P0=0XFF;

delay();

  }

    }51for语句执行周期_第1张图片

01  CLR A;将A清0

02 C:0011 MOV R7,A;将A送给工作寄存器

03   INC R7 ; 将R7加一

04   CJNE R7,0x64;若R7不等于0x64(6*16+4=100)则转到C:0011处执行

CLR消耗1个机器周期

MOV消耗1个机器周期

INC消耗1个机器周期

CJNE消耗2个机器周期

根据循环条件 第03行和04行要执行100次 (0x64=100)所以上述程序消耗机器周期数N=1+1+(1+2)X100=302

所以 for 语句的一重循环

for(i=0;i

机器周期数: N=3XN+2 (n必须为无符号字符型)

 

二重循环 for(i=0;i

for(i=0;i

;

机器周期: N=3XmXn+5m+2

 

你可能感兴趣的:(51,for语句机器周期)