Dear Sirs,
The C code in my project is:
TaskStruct xdata * data pTask; data unsigned char Task; ... *pTask->ProcID=Task;
causes the assembly code
MOV A,pTask+1 ADD A,#06 LCALL 4629 MOV DPL,A MOV DPH,R6 MOV A,Task MOVX @DPTR,A ... 4629: ADDC A,pTask MOV DPL,A CLR A MOV DPH,A MOVX A,@DPTR MOV R6,A INC DPTR MOVX A,@DPTR RET
I think the correct code must be
4629: MOV DPL,A CLR A ADDC A,pTask MOV DPH,A MOVX A,@DPTR MOV R6,A INC DPTR MOVX A,@DPTR RET
Why this happens?
I'm using V8.18 C51 compiler and V4.39 LX51 linker.
The code optimization level is 11 (Reuse Common Exit Code) and Emphasis is Favor speed.
Thanks for any help, Rudolf