Where you check whether this part of the code should be run, and if not, jump down to the next check. However, those jmps are more often then not going to be long or "absolute" jmps (as opposed to short/relative jmps) which take up (if I remember correctly) six bytes each. Coupled with the cmps, this has a best case scenario of s = 9*n (tual best case, w/ short jumps, is 5*n). The jmp table has one jmp, and then a table of possible locations, meaning s = 7 + 4*n. The implication of this is that if you have more than ONE (7 if only short jumps) check(s), a jmp table will be more efficient. It is also obscenely easy to expand. If you think that you might increase the number of states later, just leave some nops at the end of the table and you can fill them in later. With the first method, you have to completely restructure the code each time.