{img1} |
утилиты резервного копирования |
|
Все символы самоинициализирующиеся.
Таблица 1-8. Операторы структурного управления
--------------------------------------------------------
Оператор Структура
--------------------------------------------------------
IF-THEN IF<условие> (выполнить, если условие
истинно)
ENDIF
IF-THEN-ELSE IF<условие> (выполнить, если условие ис-
тинно)
ELSE (выполнить, если условие ложно)
ENDIF
DO-WHILE WHILE <условие> (выполнить, если усло-
вие истинно)
END_WHILE
REPEAT-UNTIL REPEAT (выполнить, если условие ложно)
UNTIL <условие>
FOR-DO FOR = to (выполнить
для каждого целого значения var между
begin и end включительно, увеличивая
или уменьшая var при каждом прохождении
цикла)
END_FOR
CASE_OF_ CASE OF
(выполнить, если var = A)
(выполнить, если var = B)
. |
архиватор winrar |
|
{img2} |
системы резервного копирования |
|
. .
(выполнить, если var = N)
<по умолчанию> (выполнить, если нет со-
ответствия)
END_CASE
Листинг 1-14. |
avast 4 |
|
{img3} |
английский словарь |
|
Структурированные макросы управления
-----------------------------------------------------------------
PAGE 50,132 ;установить выдачу листинга на полный экран
;;********************************************************
;; М А К Р О О П И С А Н И Я
;;********************************************************
;;
FALSE EQU 0 ;определить "FALSE"
TRUE EQU 0FFFFh ;определить "TRUE"
;;
;;** @TestSym *************************SUPPORT MACRO******
;; Выявить, был ли определен уровень вложенности. Если нет,
;; то установить "?SYMDEF" для инициализации счетчика этого
;; уровня. |
avast 4 professional |
|
|
прокси сервера, прокси сервера, архиватор zip, программа резервного копирования, avast 4, .
архиватор win rar
|
Так как мы решили, что эти структуры могут значительно
упростить программирование, и мы можем реализовать их, используя
средства, рассмотренные ранее.
Мы упустили из рассмотрения одну конструкцию. Это - оператор
CASE (выбор). Конструкция, которую мы представим, заимствована из
синтаксиса языка Паскаль, однако аналогичные конструкции имеются
в Си и других языках программирования. Задача оператора CASE зак-
лючается в проверке на равенство значения ключевой переменной var
элементу из списка. Если исходный оператор и варианты из списка
не содержатся в одном и том же макро, невозможно определить, что
является ключевой переменной. Вспомним, что MASM не разрешает ис-
пользовать строки с (=) оператором назначения символа.
Создать оператор CASE можно, перечисляя для него все вероятные
случаи и соответствующие им метки в качестве аргументов одного
макро. Это псевдомакро рассматривается в следующем разделе данной
главы.
Полный список описаний структурированных макросов управления
приведен в Листинге 1-14. Обратите внимание на обильное использо-
вание комментариев макро (;;), экономящих память области макро.
Эти макросы вырабатывают множество символов.Они могут использова-
ться в любом допустимом порядке с теоретическим ограничением уро-
- 1-32 -
вней вложенности до 89. Однако MASM скорее выходит за пределы па-
мяти, чем за предел вложенности. Никакая инициализация не требу-
ется.
|
|
|