2: {
3: unsigned int i=3,j,k,z;
C:0x0003 7F03 MOV R7,#0x03 ; R7 = i
C:0x0005 7E00 MOV R6,#0x00
4: j=(++i)+5;
C:0x0007 0F INC R7
C:0x0008 EF MOV A,R7
C:0x0009 7001 JNZ C:000C
C:0x000B 0E INC R6
C:0x000C 2405 ADD A,#0x05
C:0x000E FD MOV R5,A
C:0x000F E4 CLR A
C:0x0010 3E ADDC A,R6
C:0x0011 FC MOV R4,A
5: k=(i++)+6;
C:0x0012 EF MOV A,R7
C:0x0013 2406 ADD A,#0x06
C:0x0015 FF MOV R7,A ; R7 = k
C:0x0016 E4 CLR A
C:0x0017 3E ADDC A,R6
C:0x0018 FE MOV R6,A
6: z=j+k;
7:
C:0x0019 ED MOV A,R5
C:0x001A 2F ADD A,R7
C:0x001B F509 MOV 0x09,A
C:0x001D EC MOV A,R4
C:0x001E 3E ADDC A,R6
C:0x001F F508 MOV 0x08,A
8: }
C:0x0021 22 RET
因为是局部变量,所以开始使用R7作为i变量,到第三句时,i完成使命,增加了k变量,此时R7充当了k的角色,所以它的值与k相同。 |