Здравствуйте, LuciferSaratov, Вы писали:
LS>Здравствуйте, Серж, Вы писали:
С>>Каким способом это возможно реализовать в Delphi XE6 ?
LS>для подобных вещей в паскале есть очень удобное слово absolute.
На этом и остановился, спасибо:
function TForm1.Swap32(Value: LongWord): LongWord; //register; overload;
var
B: Byte; // временный байт
WordArr: array[0..3] of byte; // массив из 4-х байт
W: LongWord absolute WordArr; // 32-битное Word с таким же начальным адресом в памяти как и массив WordArr
begin
W:= Value; // присваиваем Word-у значение Word в котором нужно переставить местами байты
B:= WordArr[0]; // присваиваем временному байту значение [0] байта массива (потому что оно затрется)
WordArr[0]:= WordArr[1]; // присваиваем [0] байту массива значение [1] байта
WordArr[1]:= B; // присваиваем [1] байту массива значение временного байта
B:= WordArr[2]; // аналогично...
WordArr[2]:= WordArr[3];
WordArr[3]:= B;
result:= W; // очень важная строка в этой функции :)
end;
Результат проверки: