2010/10/16

Fast replacement for Abs() function

WARNING: This function works only with Integer variable/constant!
function Abs(i: Integer): Integer; assembler; register;
asm
mov edx, eax sar edx, 31 xor eax, edx     // "xor eax,edx + sub eax,edx" is equal to sub eax, edx     // if edx = -1 then neg eax
end;

No comments:

Post a Comment