На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 1 / Операторы отношений Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Операторы отношений

Кроме использования символов с предопределенными значениями и арифметических выражений MASM поддерживает операторы отношений, которые могут применяться для управления операторами условного ассемблирования. Операторами отношений являются операторы, выражающие взаимосвязь между двумя значениями. Less than (меньше чем), greater than (больше чем), equal to (равно) и not equal to (не равно) - примеры операторов отношений.


Эти операторы позволяют выполнять специальные действия по проверке на попадание в диапазон. Использование операторов отношений разрешает создавать довольно сложные программные структуры, которые автоматически настраиваются на конкретную среду функционирования (например, определение размера области данных для запоминания резервной области памяти). Однако, используя операторы отношений, MASM не всегда выполняет то, что планировалось.


Работая с целыми со знаком, вы можете посчитать OFFFFh и -1 за одно и то же значение. За некоторым исключением MASM также использует взаимозаменяемость значений. Хотя ранние версии MASM при работе с отрицательными числами имели некоторые сложности, более новые версии (1.2 и выше) знают, что -1 равно 0FFFFh, однако при сравнении величин двух чисел MASM рассматривает их по-разному. Это иллюстрирует следующий пример:



            True       FFFF       dw    1 gt -1        очевидно
            False      0000       dw    1 gt 0FFFFh    65535, а не -1
            True       FFFF       dw   -1 ge 0FFFFh    -1=-1
            False      0000       dw   -1 gt 0FFFFh    -1 не больше -1

В примере показано, что MASM рассматривает 0FFFFh как положи тельное целое число 65535, однако при сравнении с -1 0FFFFh интерпретируется как -1. Об этом можно заметить: "Кто предостережен, тот вооружен".


Полный список операторов отношений приведен в Табл. 1-5. Пример использования этих операторов при программировании макроструктур помещен в конце данной главы. В Табл. 1-6 приведен список директив условного ассемблирования.



              Таблица 1-5. Логические операторы и операторы отношений
                           условного ассемблирования
         ------------------------------------------------------------
            Оператор   Синтаксис            Описание применения
         ------------------------------------------------------------
            EQ        exp1 EQ exp2     TRUE,если выражение1 равно вы-
                                            ражению2
            NE        exp1 NE exp2     TRUE,если выражение1 не равно
                                            выражению2
            LT        exp1 LT ехр2     TRUE,если выражение1 меньше
                                            выражения2
            LE        exp1 LE exp2     TRUE,если выражение1 меньше
                                            или равно выражению 2
            GT        exp1 GT exp2     TRUE,если выражение1 больше
                                            выражения2
            GE        exp1 GE exp2     TRUE,если выражение1 больше
                                            или равно выражению2
            NOT       NOT  exp         TRUE,если выражение - FALSE,
                                            иначе FALSE
            AND       exp1 AND exp2    TRUE,если только оба выражение1
                                            и выражение2 - TRUE
            OR        exp1 OR  exp2    TRUE,если выражение1 либо выра-
                                            жение2 - TRUE
            XOR       exp1 XOR exp2    TRUE,если выражение1 равно лог.
                                            NOT от выражения2
            FALSE     (0000 16-CC)     Для IF TRUE любое нулевое выра-
                                       жение - FALSE
            TRUE      (FFFF 16-CC)     Для IF TRUE любoe ненулевое вы-
                                       ражение - TRUE
            ---------------------------------------------------------


              Таблица 1-6. Список директив условного ассемблирования

            ---------------------------------------------------------
            Директива                 Описание применения
            ---------------------------------------------------------
            .LFCOND         Приводит список ассемблерных условий, со-
                            ответствующих  FALSE.
            .SFCOND         Подавляет выдачу списка условий, соответ-
                            ствующих FALSE. По умолчанию устанавлива-
                            ется .SFCOND.
            .TFCOND         Включает список условного ассемблирования
                            FALSE аналогично переключателю MASM /X.
                            Действует независимо от переключателей
                            .LFCOND и .SFCOND.
            .LIST           Приводит список исходных строк. Противо-
                            положно .ХLIST, но не изменяет характерис-
                            тик листинга условного ассемблирования,
                            определенных .LFCOND,.SFCOND или .TFCOND.
            .XLIST          Подавляет любую выдачу.  Перекрывает все
                            предыдущие  директивы.
         ------------------------------------------------------------

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz