For more information I test some other codes like below but no one work correct !
procedure TForm1.FormCreate(Sender: TObject);
var
DataTest: array [0..1] of byte;
b: PByte;
begin
DataTest[0] := 250;
b := @DataTest[0];
ShowMessage(IntToStr(cardinal(b)));
{$ASMMODE intel}
asm
SHL BYTE PTR [b],1
end;
ShowMessage(IntToStr(cardinal(b)));
//ShowMessage(IntToStr(DataTest[1]));
//ShowMessage(IntToStr(DataTest[0]));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
DataTest: array [0..1] of byte;
b: PByte;
begin
DataTest[0] := 250;
b := @DataTest[0];
ShowMessage(IntToStr(cardinal(b)));
{$ASMMODE intel}
asm
SHL [b],1
end;
ShowMessage(IntToStr(cardinal(b)));
//ShowMessage(IntToStr(DataTest[1]));
//ShowMessage(IntToStr(DataTest[0]));
end;
procedure TForm1.FormCreate(Sender: TObject);
var
DataTest: array [0..1] of byte;
b: PByte;
begin
DataTest[0] := 250;
b := @DataTest[0];
ShowMessage(IntToStr(cardinal(b)));
{$ASMMODE intel}
asm
SHL b,1
end;
ShowMessage(IntToStr(cardinal(b)));
//ShowMessage(IntToStr(DataTest[1]));
//ShowMessage(IntToStr(DataTest[0]));
end;
all codes change "b" location (memory address)
Thank you