| ??? 06/30/05 12:50 Read: times |
#96297 - Of course it does... Responding to: ???'s previous message |
Does Keil optimise that ? I know it should do, but does it ?
Yes. And, there's no BS you need to do to you code to make it happen. This works for do...while, while, and for loops.
line level source
1 void main (void)
2 {
3 1 volatile unsigned char i;
4 1
5 1 while (--i != 0x00)
6 1 {
7 2 }
8 1
9 1 for (i=100; i; --i)
10 1 {
11 2 }
12 1
13 1 do
14 1 {
15 2 }
16 1 while (--i);
17 1 }
; FUNCTION main (BEGIN)
; SOURCE LINE # 1
; SOURCE LINE # 2
0000 ?C0001:
; SOURCE LINE # 5
0000 D500FD R DJNZ i,?C0001
; SOURCE LINE # 6
; SOURCE LINE # 7
0003 ?C0002:
; SOURCE LINE # 9
0003 750064 R MOV i,#064H
0006 ?C0003:
; SOURCE LINE # 10
; SOURCE LINE # 11
0006 D500FD R DJNZ i,?C0003
; SOURCE LINE # 14
; SOURCE LINE # 15
0009 ?C0006:
; SOURCE LINE # 16
0009 D500FD R DJNZ i,?C0006
; SOURCE LINE # 17
000C 22 RET
; FUNCTION main (END)
Jon |



