Code:

var

X1, X2: Byte;

begin

X1 := X2 xor X2;

X2 := X1 xor X2; // X2 = X1

X1 := X1 xor X2; // X1 = X2

 

Автор ___ALex___

 

Code:

procedure SwapVars1(var u, v; Size: Integer);

var

x: Pointer;

begin

GetMem(x, Size);

try

System.move(u, x^, Size);

System.move(v, u, Size);

System.move(x^, v, Size);

finally

FreeMem(x);

end;

end;

 

 

procedure SwapVars2(var Source, Dest; Size: Integer);

// By Mike Heydon, Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

begin

asm

push edi

push esi

mov esi,Source

mov edi,Dest

mov ecx,Size

cld

@1:

mov al,[edi]

xchg [esi],al

inc si

stosb

loop @1

pop esi

pop edi

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

begin

SwapVars1(X1, X2, SizeOf(Integer));

end;

 

 

 

 

Взято с сайтаhttps://www. swissdelphicenter.ch/en/tipsindex

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить