In C51 v8.01 Compiler void Fnc(BYTE * pT, WORD Dat, BYTE x, BYTE y) { BYTE Asc[6]; BYTE * pSource = Asc + 5 - (x + y); ..... } I got wrong "pSource", but it is OK in v7.50 I changed it to BYTE * pSource = &Asc + 5 - (x + y); It is OK, WHY?