Hi All,
I wrote the follwing:
char far *fp;
fp = (long) 0x1e00a5; *fp = 0x89; tmp = *fp;
expecting to see value 0x89 at far address 0x1e00a5.
on the debugger >D X:0x1e00a5 results 0.
The assembler : ; fp = (long) 0x1e00a5; ; SOURCE LINE # 20 MOV R3,#01EH MOV R2,A MOV R1,#0A5H ;---- Variable 'fp?045' assigned to Register 'R1/R2/R3' ---- ; *fp = 0x89; ; SOURCE LINE # 21 MOV A,#089H LCALL ?C?CSTPTR I expected CSTXPTR with long DPTR MOVX instead I got:
CSTPTR with MOVC What I’m doing wrong ??
You should specify the target device that you are using along with the compiler switches.
I looks like you have not used the VARBANKING compiler switch: http://www.keil.com/support/man/docs/c51/c51_varbanking.htm.