Ну не извращенец-ли я? )))
Вот написал от нефиг делать ещё в 8-м классе:
program Project1;
{$APPTYPE CONSOLE}
var
i:integer;
begin
i:=100500; // +100500 forever!
writeln(i);
//Algo ~ 1
asm
mov eax,i
mov edx,1
mov ecx,0
@cycle:
xor eax,edx
shl edx,1
inc ecx
cmp ecx,32
jne @cycle
inc eax
mov i,eax
end;
////////////
writeln(i);
//Algo ~ 1//без цикла, но принцип тот же
asm
mov eax,i
mov edx,11111111111111111111111111111111b
xor eax,edx
inc eax
mov i,eax
end;
////////////
writeln(i);
//Algo ~ 3//способ полегче: биты инвертируются командой NOT
asm
mov eax,i
not eax
inc eax
mov i,eax
end;
////////////
writeln(i);
//Algo ~ 4//изменение знака зашито в команду neg
asm
mov eax,i
neg eax
mov i,eax
end;
////////////
writeln(i);
//Algo ~ 5//народный метод: прост, как табуретка! :)))))))
i:=-i;
////////////
readln;
end.