It is not obeyed which by you have put. Where check upper a limit of group? Check of ceiling should appear, as will result in doubling checks.
NextLimit 10456,168767, group1
NextLimit 204564,27567, group2
Where there will leave execution at 200000 in your alternative with a chain cmp? jmp [(200000-1456) *4] is erraticly. Check of ceiling 168767 here is necessary.
Mine macro FirstLimit and NextLimit it is complete functional clones IfInRange, but faster and is shorter on the code.
The equal label of junction for groups has passed from the test code. But it is not important.
Posted on 2002-02-17 11:06:14 by Nexo
Yes, about thread subject. My last code:

lea ecx,
cmp ecx,9
ja nodigit


:grin:
Posted on 2002-02-17 11:15:03 by Nexo
Nexo, I wouldn't have to write this for the third time if you
carefully write about what case I wrote when gave example
with jae. (Don't make me do it the forth time - If I'm not clear
just forget it :) the code was nothing but example of how to
handle groups if we know additional info)
I didn't give it as full functional replace of IfInRange, but
in case we know for sure that come value is in some group,
in other words that there can not be value wich is not in the
group.
It was just "thought around a topic"

From your sample code was not clear why do you send jmps
to group1 in all cases. Now it's clear.

Your last piece - the best.
But I hope in time we can make some better.
At least you were able to improve your own code in very short time :)
See ya!
Posted on 2002-02-17 12:17:13 by The Svin