一条C语言指令运行的时间是多少
程序1:Voiddelay1ms(wordcount){wordi,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}程序2:Voidd...
程序1:
Void delay1ms(word count)
{word i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++)
;
}
程序2:
Void delay1ms(word count)
{word j;
while(count--!=0)
{for(j=0;j<72;j++)
;
}
}
这两个程序都是延时1ms*count,为什么for程序设置为120,而while程序设置成72,望分析之,谢谢。 展开
Void delay1ms(word count)
{word i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++)
;
}
程序2:
Void delay1ms(word count)
{word j;
while(count--!=0)
{for(j=0;j<72;j++)
;
}
}
这两个程序都是延时1ms*count,为什么for程序设置为120,而while程序设置成72,望分析之,谢谢。 展开
5个回答
展开全部
编译后,反汇编出来看就晓得了。用for更简洁,这是第一个函数的反汇编:
22: for(i=0;i<count;i++)
C:0x0D7E E4 CLR A
C:0x0D7F FE MOV R6,A
C:0x0D80 EE MOV A,R6
C:0x0D81 C3 CLR C
C:0x0D82 9F SUBB A,R7
C:0x0D83 500A JNC C:0D8F
23: for(j=0;j<120;j++)
24: ;
C:0x0D85 E4 CLR A
C:0x0D86 FD MOV R5,A
C:0x0D87 0D INC R5
C:0x0D88 ED MOV A,R5
C:0x0D89 B478FB CJNE A,#0x78,C:0D87
C:0x0D8C 0E INC R6
C:0x0D8D 80F1 SJMP C:0D80
25: }
22: for(i=0;i<count;i++)
C:0x0D7E E4 CLR A
C:0x0D7F FE MOV R6,A
C:0x0D80 EE MOV A,R6
C:0x0D81 C3 CLR C
C:0x0D82 9F SUBB A,R7
C:0x0D83 500A JNC C:0D8F
23: for(j=0;j<120;j++)
24: ;
C:0x0D85 E4 CLR A
C:0x0D86 FD MOV R5,A
C:0x0D87 0D INC R5
C:0x0D88 ED MOV A,R5
C:0x0D89 B478FB CJNE A,#0x78,C:0D87
C:0x0D8C 0E INC R6
C:0x0D8D 80F1 SJMP C:0D80
25: }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编译后,反汇编出来看就晓得了。用for更简洁,这是第一个函数的反汇编:
22:
for(i=0;i
评论
0
0
0
加载更多
22:
for(i=0;i
评论
0
0
0
加载更多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一条C语言指令运行的时间是多少
取决于你用哪条指令, 会被编译成多少机器指令, 还有. 你的编译优化级别也有关系
取决于你用哪条指令, 会被编译成多少机器指令, 还有. 你的编译优化级别也有关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是while比for慢吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询