We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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
One more information about wrong DPR value of message above.
It doesn't happen when
TaskStruct xdata * /*data*/ pTask;
AND Emphasis of Code Optimization is Favor speed .
Somebody has an idea what's happening?
Hugs, Rudolf