Справочник по языку Ассемблера IBM PC



       

Синтаксис ассемблера - часть 7


     mask_b equ 10111011 … mov al,mask_b shr 3 ;al=00010111

Рис. 6. Синтаксис операторов сдвига

Операторы сравнения (возвращают значение “истина” или “ложь”) предназначены для формирования логических выражений (см. рис. 7 и ). Логическое значение “истина” соответствует цифровой единице, а “ложь” — нулю. Например,

      tab_size equ 30 ;размер таблицы …  mov al,tab_size ge 50 ;загрузка размера таблицы в al  cmp al,0 ;если tab_size < 50, то  je m1 ;переход на m1 … m1: …

В этом примере если значение tab_size больше или равно 50, то результат в al равен 0ffh, а если tab_size меньше 50, то al равно 00h. Команда cmp сравнивает значение al с нулем и устанавливает соответствующие флаги в flags/eflags. Команда je на основе анализа этих флагов передает или не передает управление на метку m1.

Рис. 7. Синтаксис операторов сравнения

Таблица 1. Операторы сравнения

Оператор Значение
eq ИСТИНА, если выражение_1 равно выражение_2
ne ИСТИНА, если выражение_1 не равно выражение_2
lt ИСТИНА, если выражение_1 меньше выражение_2>ИСТИНА, если выражение_1 не равно выражение_2
le ИСТИНА, если выражение_1 меньше или равно выражение_2
gt ИСТИНА, если выражение_1 больше выражение_2
ge ИСТИНА, если выражение_1 больше или равно выражение_2

Логические операторы выполняют над выражениями побитовые операции (рис. 8). Выражения должны быть абсолютными, то есть такими, численное значение которых может быть вычислено транслятором. Например:

       flags   equ     10010011          mov    al,flags xor 01h        ;al=10010010;пересылка в al поля flags с                                         ;инвертированным правым битом

<


Содержание  Назад  Вперед