Write / read from EEPROM not output correct values

The last two lines of below will never be executed

     return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
     p_address=( p_address + 1);
     delay (500);