русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Директивы условного ассемблирования


Дата добавления: 2015-06-12; просмотров: 1052; Нарушение авторских прав


Директивы условного ассемблирования позволяют в некоторой степени управлять процессом ассемблирования. В зависимости от значений условий времени ассемблирования, проверяемых этими директивами, макроассемблер может пропустить обработку целого блока предложений или обработать вместо него другой (альтернативный) блок.

Блок предложений условного ассемблирования имеет следующий общий вид:

директива-условного-ассемблирования

..........

предложения Ассемблера или инструкции

..........

[[ ELSE ]]

..........

предложения Ассемблера или инструкции

..........

ENDIF

Директива-условного-ассемблирования задает условие, при истинном значении которого будут ассемблироваться предложения, расположенные непосредственно после директивы и до ключевого слова ELSE, или, если оно опущено, до конца блока, обозначаемого ENDIF. Если условие не выполняется, ассемблируется группа предложений, расположенная между ключевыми словами ESLE и ENDIF, а если ELSE опущено, MASM пропускает блок.

Допускается вложенность директив. Максимальная глубина вложения — 255.

В качестве директивы-условного-ассемблированиямогут задаваться конструкции, приведенные ниже.

 

 

Директивы условного ассемблирования:

IF выражение

IFE выражение

IF1

IF2

IFDEF имя

IFNDEF имя

IFB <аргумент>

IFNB <аргумент>

IFIDN <аргумент-1>,<аргумент-2>

IFDIF <аргумент-2>,<аргумент-2>

В случае директивы IF блок ассемблируется, если указанное выражение истинно (не нуль). Для директивы IFE блок ассемблируется, если выражение ложно (нуль). Выражение должно иметь абсолютное значение и не может содержать ссылок вперед.

Директивы IF1 и IF2 проверяют номер прохода Ассемблера и обеспечивают обработку блока только на 1-м (IF1) или только на 2-м (IF2) проходе.



Пример (выдача сообщений на консоль):

IF1

%OUT Pass 1

ELSE

%OUT Pass 2

ENDIF

Директивы IFDEF и IFNDEF проверяют, определено ли в программе указанное имя. IFDEFобеспечивает ассемблирование, если это имя определено как метка, переменная или символ, IFNDEF — если имя не определено. Заметим, что если в качестве имени задана ссылка вперед, она считается неопределенной на 1-м проходе и определенной на
2-м.

Имена можно определять не только указанием их в соответствующей позиции при мнемонике инструкции или директивах определения памяти, но в опции Ассемблера /D, что позволяет управлять составом ассемблируемой программы без изменения исходного файла.

Директивы IFB и IFNB проверяют значение указанного аргумента, трактуемого как строка символов, и вызывают ассемблирование блока, если аргумент является пробелом (IFB) или отличен от пробела (IFNB). Аргумент может быть именем, числом или выражением. Скобки < и >обязательны.

Директивы IFB и IFNB введены для использования их в макроопределениях, где они могут управлять условным ассемблированием, основываясь на том, задан или нет параметр макроопределения. В этом случае в качестве аргумента следует задавать один из формальных параметров макроопределения.

Директивы IFDIF и IFIDN сравнивают специфицированные для них аргументы, которые трактуются как символьные строки (с учетом регистра), и вызывают ассемблирование блока при их идентичности (IFIDN) или неидентичности (IFDIF). Аргументы могут быть именами, числами или выражениями. Скобки < и > обязательны. Аргументы разделяются запятой.

Директивы IFDIF и IFIDN введены для использования их в макроопределениях, где они могут управлять условным ассемблированием, анализируя значения передаваемых в макроопределение параметров. В этом случае в качестве аргументов следует задавать формальные параметры макроопределения.



<== предыдущая лекция | следующая лекция ==>
Директива GROUP | Синтаксис Номер и текст сообщения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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