Часто, чтобы улучшить эффективность и уменьшить размер кода, можно упростить инструкции работы с флагами. Например, если единственным желаемым результатом является установка конкретного бита в 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.