121: void Uart_Receive_Data(void) ----> interrupt route(USING 1) called fun
122: {
123: Tinbuf[Tiend++ & (ILEN-1)] = UartBuf_R;
124: C:0x0212 7818 MOV R0,#UartBuf_R(0x18) C:0x0214 E6 MOV A,@R0 C:0x0215 FF MOV R7,A--------------------------> UartBuf_R
C:0x0216 781A MOV R0,#Tiend(0x1A) C:0x0218 E6 MOV A,@R0 C:0x0219 06 INC @R0 C:0x021A 5407 ANL A,#Sys_100us_FLG(0x07) C:0x021C 2410 ADD A,#ReceiveWait(0x10) C:0x021E F8 MOV R0,A C:0x021F A607 MOV @R0,Sys_100us_FLG(0x07)------->Tinbuf[Tiend++ & (ILEN-1)]
------------------------------------------------------------>R7 equ 0x07??
125: P2=Tinbuf[(Tiend-1) & (ILEN-1)]; C:0x0221 781A MOV R0,#Tiend(0x1A) C:0x0223 E6 MOV A,@R0 C:0x0224 14 DEC A C:0x0225 5407 ANL A,#Sys_100us_FLG(0x07) C:0x0227 2410 ADD A,#ReceiveWait(0x10) C:0x0229 F8 MOV R0,A C:0x022A E6 MOV A,@R0 C:0x022B F5A0 MOV PPAGE_SFR(0xA0),A 163: }
Yes, it's a bug. And it's in your source code.