Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Константные выражения в условных директивах

Директивы.ERRE (ERRIFE) и.ERRNZ (ERRIF)

Синтаксис директив:

.ERRE (ERRIFE) константное_выражение — директива вызывает пользовательскую ошибку, если константное_выражение ложно (равно нулю). Вычисление константного_выражения должно приводить к абсолютному значению, и это выражение не может содержать компонентов, являющихся ссылками вперед.

.ERRNZ(ERRIF) константное_выражение — директива вызывает пользовательскую ошибку, если константное_выражение истинно (не равно нулю). Вычисление константного_выражения должно приводить к абсолютному значению и не может содержать компонентов, являющихся ссылками вперед.

Как вы успели заметить, во многих условных директивах в формировании условия участвуют выражения. Результат вычисления этого выражения обязательно должен быть константой. Хотя его компонентами могут быть и символические параметры, но их сочетание в выражении должно давать абсолютный результат.
К примеру:

.datamas db...len dd.......code....erre (len-mas) lt 10;генерация ошибки, если длина;области mas меньше 10 байт...

Кроме того, выражение не должно содержать компоненты, которые транслятор еще не обработал к тому месту программы, где находится условная директива.
Также мы отметили, что логические результаты “истина” и “ложь” являются условными в том смысле, что ноль соответствует логическому результату “ложь”, а любое ненулевое значение — “истине”.
Но в языке ассемблера существуют операторы, которые позволяют сформировать и “чисто логический” результат. Это так называемые операторы отношений, выражающие отношение двух значений или константных выражений.
В контексте условных директив вместе с операторами отношений можно рассматривать и логические операторы. Результатом работы и тех, и других может быть одно из двух значений:

  • истина — число, которое содержит двоичные единицы во всех разрядах;
  • ложь — число, которое содержит двоичные нули во всех разрядах.

Операторы, которые можно применять в выражениях условных директив и которые формируют логические результаты, приведены в табл. 1 и 2.

Таблица 1. Операторы отношений

Оператор/ Синтаксис Результат отношения
EQ (equal) — равно выражение_1 EQ выражение_2 истина — если выражение_1 равно выражение_2
NE (not equal) — не равно Выражение_1 NE выражение_2 Истина — если выражение_1 не равно выражение_2
LT (less than) — меньше Выражение_1 LT выражение_2 Истина — если выражение_1 меньше выражение_2
LE (less or equal) — меньше или равно Выражение_1 LE выражение_2 Истина — если выражение_1 меньше или равно выражение_2
GT (greater than) — больше Выражение_1 GT выражение_2 Истина — если выражение_1 больше выражение_2
GE (greater or equal) — больше или равно Выражение_1 GE выражение_2 Истина — если выражение_1 больше или равно выражение_2

Таблица 2. Логические операторы

Оператор Синтаксис Результат
NOT — логическое отрицание NOT выражение Истина — если выражение ложно; ложь — если выражение истинно
AND — логическое И выражение_1 AND выражение_2 Истина — если выражение_1 и выражение_2 истинны
OR — логическое ИЛИ выражение_1 OR выражение_2 Истина — если выражение_1 или выражение_2 истинны
XOR — исключающее ИЛИ выражение_1 XOR выражение_2 Истина — если выражение_1 = (NOT выражение_2)
<== предыдущая лекция | следующая лекция ==>
Директивы .ERRDIF (ERRIFDIF) и .ERRIDN (ERRIFIDN) | Теоретические вопросы к экзамену
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 267; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.