表驱动选择是用查表来代替多路选择结构的一种方法。使用这种方法,需要新建一个表,表中包含查询值和标号或过程的偏移量,然后必须用循环来检索这个表。当有大量比较操作时,这个方法最有效。
例如,下面是一个表的一部分,该表包含单字符查询值,以及过程的地址:
.data
CaseTable BYTE 'A' ;查询值
DWORD Process_A ;过程地址
BYTE 'B'
DWORD Process_B
(etc.)
假设 Process_A、Process_B、Process_C 和 Process_D 的地址分别是 120h、130h、140h 和 150h。上表在内存中的存放如下图所示。