Ассемблер для Windows

Оператор switch или оператор выбора



2. Оператор switch или оператор выбора.

Оператор switch весьма часто употребляется в функциях окон. Хорошее знание его ассемблерной структуры поможет Вам легче отыскивать эти функции в море ассемблерного кода.

switch(i) { case 1: ... ... ... break; case 3: ... ... ... break; case 5: ... ... ... break; }

А вот соответствующий данной структуре ассемблерный код.

DEC EAX JZ L1 SUB EAX,2 JZ L2 SUB EAX,2 JZ L3 JMP L4 L1: ... ... ... JMP L4 L2: ... ... ... JMP L4 L3: ... ... ... L4:

Структура, как видите, интересная. Такой подход позволяет наилучшим образом оптимизировать проверку большого количества условий. В действительности оператор выбора может кодироваться и другим способом. Вот еще один возможный вариант представления оператора выбора:

CMP EAX,10 JE L1 CMP EAX,5 JE L2 CMP EAX,11 JE L3 ...



Содержание раздела