Assembler
•Операторы сдвига выполняют сдвиг выражения на указанное количество разрядов (рис. 6). Например,mask_b equ 10111011
:
mov al,mask_b shr 3 ;al=00010111
•Рис. 6. Синтаксис операторов сдвига
•Операторы сравнения (возвращают значение "истина" или "ложь") предназначены для формирования логических выражений (см. рис. 7 и табл. 1). Логическое значение "истина" соответствует цифровой единице, а "ложь" - нулю. Например,
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