Turbo Assembler 3.0. Руководство пользователя

         

Дополнительные инструкции работы с флагами


Часто, чтобы улучшить эффективность и уменьшить размер кода, можно упростить инструкции работы с флагами. Например, если единственным желаемым результатом является установка конкретного бита в AX, а флаги процессора, на которые влияет данная инструк- ция, значение не имеют, инструкцию:

OR ax,1000h

можно упростить до инструкции:

OR, ah,10h

Турбо Ассемблер обеспечивает 4 дополнительных инструкции, которые обеспечивают эти функциональные возможности. Они показаны в следующей таблице:

Эффективные инструкции работы с флагами Таблица 13.4 ------------------T----------------T-----------------------------¬ ¦ Инструкция ¦ Функция ¦Соответствует инструкции ¦ +-----------------+----------------+-----------------------------+ ¦ SETFLAG ¦ Установка бит ¦ OR ¦ ¦ ¦ (бита) флага. ¦ ¦ ¦ ¦ ¦ ¦ ¦ MASKFLAG ¦ Размаскирование¦ AND ¦ ¦ ¦ бит (бита) ¦ ¦ ¦ ¦ флага. ¦ ¦ ¦ ¦ ¦ ¦ ¦ TESTFLAG ¦ Проверка бит ¦ TEST ¦ ¦ ¦ (бита) флага. ¦ ¦ ¦ ¦ ¦ ¦ ¦ FLIPFLAG ¦ Дополнение бит ¦ XOR ¦ ¦ ¦ (бита) флага. ¦ ¦ L-----------------+----------------+------------------------------

Эти инструкции можно использовать для улучшения модульности записей, например:

FOO RECORD R0:1,R1:4,R2:3,R3:1 . . . TESTFLAG AX,R0

В данном примере TESTFLAG будет генерировать наиболее эффек- тивные инструкции, независимо от того, где в записи находится R0.



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