На метку ZERO управление передает
000D 0011 R DW ROUTINE_TWO
000F 0011 R DW ROUTINE_THREE
; ...
0011 ROUTINE_ONE LABEL NEAR
0011 ROUTINE_TWO LABEL NEAR
0011 ROUTINE_THREE LABEL NEAR
0011 CODE ENDS
END
Фиг. 4.28 Таблица переходов
Здесь используется условный переход с противоположным условием.
На метку ZERO управление передает команда безусловного перехода,
которая может использовать смещение вплоть до 32768 байт, а в
условном переходе используется метка CONTINUE.
Если целью является минимизация программ, этого метода нужно
избегать, так как он превращает команду условного перехода в
пятибайтовую последовательность. Иногда реорганизация программы
приводит к тому, что место перехода попадает в нужный диапазон.
Однако не стоит особенно стараться минимизировать программу. В
большинстве случаев не имеет особого значения, насколько у
программы большой объем, лишь бы он не превышал заданного. Это
имело бы смысл, если бы вы пытались сделать нечто помещающееся в
модуль ПЗУ постоянного объема, но обычно усилия, затрачиваемые на
изменения программы, не дают ощутимого выигрыша.
Содержание Назад Вперед