Microchip 93lc56a and ST 93c56

The write code does not look right

     for(int i=0;i<=11;i++)
   {
     digitalWrite(CHIP_SEL ,HIGH);
     shiftOut(DATA_OUT,CLOCK,MSBFIRST,WRITE); //sending WRITE instruction 
     shiftOut(DATA_OUT,CLOCK,MSBFIRST,low);   //sending low address
     shiftOut(DATA_OUT,CLOCK,MSBFIRST,dataword); //sendind data
     digitalWrite(CHIP_SEL ,LOW);
     delay(100);
    low++;       //incrementing low address
   }

shiftOut(DATA_OUT,CLOCK,MSBFIRST,dataword);
dataword with out an index is a byte pointer, so it should only be printing the address value.
I think you must be using newer code, or are reading old data.

you may be wanting this:
shiftOut(DATA_OUT,CLOCK,MSBFIRST,dataword[ i ] );

and dataword is a null terminated string, so it contains 13 characters ( including the null ), your loop only writes 11.