Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Использование условных директив - Программирование от RIN.RU
Использование условных директив




Существует два класса условных директив: директивы условного ассемблирования и условные директивы генерации сообщений об ошибке. С помощью директив условного ассемблирования вы можете управлять тем, какой код будет ассемблироваться в программе при определенных условиях.


Директивы условного ассемблирования позволяют вам генерировать во время ассемблирования сообщения об ошибках при наступлении определенных событий. Турбо Ассемблер выводит сообщение об ошибке на экран и в файл листинга и предотвращает создание объектного файла. В данной главе описывается, как можно использовать имеющиеся условные директивы.


Синтаксис условных директив


Тремя директивами условного ассемблирования являются директивы IFxxx, ELSEIFxxx и ERRxxx. Эти директивы используются также, как операторы условия в языках высокого уровня.


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


Вы можете использовать директиву условного ассемблирования IFxxx для определения блока кода, который включается в объектный файл при удовлетворении определенных условий (таких как определение идентификатора или установка какого-то значения). Приведем синтаксис оператора условного ассемблирования:


IFxxx
тело_условия_true
EMDIF


или


IFxxx
тело_условия_true
ELSE
тело_условия_false
ENDIF


где IFxxx представляет следующие директивы:


IF
IF1
IF2
IFDEF
IFNDEF
IFB
IFNB
IFIDN
IFIDNI
IFDIF
IFDIFI


Каждая директива условного ассемблирования IFxxx задает конкретное условие, при вычислении которого получается истинное (true) или ложное (false) значение. Если условие имеет значение true, то выполняется ассемблирование и помещение в объектный файл блока ассемблируемого кода "тело_условия_true". Если при вычислении условия получается значение false, то Турбо Ассемблер пропускает "тело_условия_true" и не включает его в объектный файл. При наличие директивы ELSE, если условие имеет значение false, то ассемблируется и выводится в объектный файл блок "тело_условия_false". Если условие имеет значение true, то этот блок игнорируется. Условный блок завершается директивой ENDIF.


Кроме особых случаев директив IF1 и IF2 (которые мы обсудим позднее) два описанных блока кода являются взаимноисключающими: в объектный файл включается либо "тело_условия_true", либо "тело_условия_false", но не оба блока одновременно. Кроме того, если вы используете форму IFxxx.ELSE.ENDIF, один из блоков будет обязательно включаться в объектный файл. Если используется форма IFxxx.ENDIF, то "тело_условия_true" может включаться или не включаться в объектный файл, в зависимости от условия.


При использовании вложенных директив IF и ELSE директива ELSE всегда соответствует ближайшей директиве IF.


В следующем примере test является идентификатором, который управляет включением кода (если идентификатор не определен, то генерируется соответствующий блок кода) Идентификатор color устанавливается в ненулевое значение, если дисплей цветной, и равен 0, если дисплей монохромный.


От этих значений зависит фактическая генерация кода:


.
.
.
IFDEF test ; true, если test определен
; первая часть блока кода ; если test определен
IF color ; true, если color <> 0
; блок кода color ; если color <> 0
ELSE ;
; код для монохромного
; дисплея если color = 0
ENDIF ;
; вторая часть блока кода ; если test определен
ELSE ;
; другой код ; если test не определен
ENDIF
.
.
.




test
color
определен
0
определен
не 0
не определен
0
не определен
не 0
кодблок кода
1
блок кода
1
другой коддругой код
цветной/моноблок кода
color
блок кода
2
блок кода
2
 



Если идентификатор test не определен,то не ассемблируется ни код для цветного дисплея (color), ни для монохромного, поскольку все это включено в блок условного ассемблирования, который ассемблируется только при определенном идентификаторе test.


Вперед  >>>
 1  2  3  4 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Общие принципы программирования

Объектно-ориентированное программирование

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

Интерфейс с компоновщиком

Генерация листинга

Интерфейс Турбо Ассемблера и Borland C++

Интерфейс Турбо Ассемблера с Турбо Паскалем

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь