/*******************************************/ /*compiler Keil C51 v6.23*/ /*name:main*/ unsigned char xdata temp; unsigned char xdata *p; void func(void); void main(void) { unsigned char xdata i; while(1) { p = &temp; *p = 98; func(); i = *p; } } /******************************************/ /*-------------------------------------- compile following program to assembly program, then link with the main function.ERROR!!! Why and how to chang the assembly program.please help me,thank you.! ------------------------------------------*/ #pragma src(MYPTR.A51) small extern unsigned char xdata *p; void func(void) { *p = 0xdd; } my E-mail:inspra@xjgroup.com name:huangjian
Read the section on pointers in the C51 manual - this tells you how pointer values are actually represented in memory. Then all you need to do is write your assembler accordingly to use those values!