{ BSwap sur entier 16bits }
function BSwap(const a : word) : word;
asm
XCHG AL, AH;
end;
{ BSwap sur entier 32 bits }
function BSwap(const a : longword) : longword;
asm
BSWAP EAX;
end;
{ BSwap sur entier 64 bits }
function BSwap(const a : int64) : int64;
asm
MOV EDX,[EBP+$08];
MOV EAX,[EBP+$0C];
BSWAP EAX;
BSWAP EDX;
end;
{ BSwap sur n'importe quoi }
procedure BSwap(const InBuffer; var OutBuffer; const BufferLen: integer);
var pI, pO : ^byte;
N : integer;
begin
pI := @InBuffer;
pO := @OutBuffer;
inc(pO, BufferLen-1);
for N := 0 to BufferLen-1 do
begin
pO^ := pI^;
inc(pI);
dec(pO);
end;
end;