The T_T_HELLOMSG string starts with address 0000H. How can the other variables in the progam ?_MYPUTCHAR?BYTE, ?TST_PRINTF?BYTE, P_A?141, MM_IX?251 have the same address ?? Same story with the following two variables: T_NUM_DATA. . . . . X ADDR 001CH R SEG=?XD?TEST BUF?148 . . . . . . X ADDR 0012H R SEG=?XD?TST_PRINTF?TEST Any help to explain how to interpret symbol table the right way will be appreciated. c code ====== #include <REG66x.H> /* for the intended 8051 derivative */ #include <stdio.h> /* prototype declarations for I/O functions */ #include <stdlib.h> #include <string.h> #include <math.h> sfr T_SBUF = 0x99; char xdata t_helloMsg[] = "Hello World"; char xdata t_msg[16]; char xdata t_buffer[32]; unsigned int xdata t_num_data[32]; char xdata t_msg1[64] = { 0 , 0xfe, 0x10, 0x10, 0x10, 0xfe, 0, 0xfc, 0x12, 0x12, 0x12, 0xfc, 0, 0xfe, 0x08, 0x10, 0x20, 0xfe, 0, 0x02, 0x02, 0xfe, 0x02, 0x02, 0, 0xfe, 0x12, 0x32, 0x52, 0x8c, 0, 0x7c, 0x82, 0x82, 0x82, 0x7c, 0, 0xfe, 0x08, 0x10, 0x20, 0xfe, 0, 0x0 , 0x0 , 0x82, 0xfe, 0x82, 0, 0 , 0xc6, 0x28, 0x10, 0x28, 0xc6, 0, 0 , 0x38, 0x7c, 0xf8, 0x7c, 0x38, 0, 0 }; char myputchar (char mp_c1) { while (!TI); TI = 0; return (T_SBUF = mp_c1); } void tst_printf() { char xdata p_a; int xdata p_b; long xdata c3; unsigned char xdata x; unsigned int xdata y; unsigned long xdata z; float xdata f; char xdata buf[] = "Test String"; char xdata *p = buf; char xdata lcd_y[2]; } void main (void) { int xdata mm_ix; int xdata mm_j; char m_c2; while (1); } test.ls1 selected output ======================== N A M E T Y P E V A L U E ATTRIBUTES T_HELLOMSG. . . . . X ADDR 0000H R SEG=?XD?TEST T_MSG . . . . . . . X ADDR 000CH R SEG=?XD?TEST T_NUM_DATA. . . . . X ADDR 001CH R SEG=?XD?TEST T_MSG1. . . . . . . X ADDR 005CH R SEG=?XD?TEST T_BUFFER. . . . . . X ADDR 009CH R SEG=?XD?TEST MP_C1?040 . . . . . X ADDR 0000H R SEG=?XD?_MYPUTCHAR?TEST ?_MYPUTCHAR?BYTE. . X ADDR 0000H R SEG=?XD?_MYPUTCHAR?TEST ?TST_PRINTF?BYTE. . X ADDR 0000H R SEG=?XD?TST_PRINTF?TEST P_A?141 . . . . . . X ADDR 0000H R SEG=?XD?TST_PRINTF?TEST P_B?142 . . . . . . X ADDR 0001H R SEG=?XD?TST_PRINTF?TEST C3?143. . . . . . . X ADDR 0003H R SEG=?XD?TST_PRINTF?TEST X?144 . . . . . . . X ADDR 0007H R SEG=?XD?TST_PRINTF?TEST Y?145 . . . . . . . X ADDR 0008H R SEG=?XD?TST_PRINTF?TEST Z?146 . . . . . . . X ADDR 000AH R SEG=?XD?TST_PRINTF?TEST F?147 . . . . . . . X ADDR 000EH R SEG=?XD?TST_PRINTF?TEST BUF?148 . . . . . . X ADDR 0012H R SEG=?XD?TST_PRINTF?TEST P?149 . . . . . . . X ADDR 001EH R SEG=?XD?TST_PRINTF?TEST LCD_Y?150 . . . . . X ADDR 0020H R SEG=?XD?TST_PRINTF?TEST ?MAIN?BYTE. . . . . X ADDR 0000H R SEG=?XD?MAIN?TEST ?MAIN?BYTE. . . . . X ADDR 0000H R SEG=?XD?MAIN?TEST MM_IX?251 . . . . . X ADDR 0000H R SEG=?XD?MAIN?TEST MM_J?252. . . . . . X ADDR 0002H R SEG=?XD?MAIN?TEST M_C2?253. . . . . . X ADDR 0004H R SEG=?XD?MAIN?TEST