Archive for August, 2006  How to divide fast by immediates
Sunday, August 13th, 2006  In almost all assembly books you’ll
find some nice tricks to do fast multiplications. E.g. instead
of “imul eax, ebx, 3″ you can do “lea eax,
[ebx+ebx*2]“Â (ignoring flag effects). It’s pretty clear how
this works. But how can we speed up, say, a division by 3? This
is quite important since division is still a really slow
operation. If you never thought or heart about this problem
before, get pen and paper and try a little bit. It’s an
interesting problem.   Shift oddities  Monday, August 7th, 2006
Most of the x86 instructions will automatically alter the flags
depending on the result. Sometimes this is rather frustrating
because you actually what to preserve the flags as long as
possible, and sometimes you miss a “mov eax, ecx” which alters
the flags. But at least it’s guaranteed that an instruction
either sets the flags or it doesn’t touch them, independent of
the actual operation… Or is it?  There is the familiy of shif