Символьное определение типов данных помогает вам писать модульный код. Отделяя определения типа данных от того кода, в котором он используется, вы можете легко изменять или расширять структуры данных без необходимости переписывать код. Это позволяет также организовать символьный доступ к типу данных и его компонентам.
Турбо Ассемблер определяет столько же символьных типов данных, сколько поддерживается в языках высокого уровня. В данной главе описывается, как можно определить различные типы данных.
Определение перечислимых типов данных
Перечислимые типы данных представляют набор значений, которые можно сохранять в определенном числе бит. Максимальное записанное значение определяет фактически необходимое число бит.
Приведем пример синтаксиса режима Ideal определения перечислимого типа данных:
ENUM имя [переменная_перечисления [, переменная_перечисления.]]
В режиме MASM вы можете использовать следующий синтаксис:
имя ENUM [переменная_перечисления [, переменная_перечисления.]]
Каждая "переменная_перечисления" имеет следующий синтаксис:
имя_переменной [=значение]
Когда вы присваиваете переменной "имя_переменной" конкретное значение, Турбо Ассемблер, если поле "значение" отсутствует, будет присваивает ей значение, равное значению последней переменной в списке, плюс единица. Значения не могут быть относительными или иметь опережающие ссылки. Переменные, создаваемые перечислимым типом (ENUM), представляют собой переопределяемые переменные с глобальной областью действия.
Предупреждение: Если вы используете в двух перечислимых типах данных одно и то же имя переменной, то первое значение переменной будет потеряно, и в результате возникнет ошибка.
"Имя" - это имя типа данных ENUM. Для получения различной информации о присваивании значений переменным вы можете затем использовать это имя. Имена перечислимых типов данных можно также использовать для создания переменных и выделения памяти. Подробности см. в этой главе.
Перечислимые типы данных являются переопределяемыми. В модуле вы можете несколько раз определить одно и то же имя перечислимого типа данных.
Кроме того, Турбо Ассемблер для определения перечислимого типа данных с большим числом переменных использует синтаксис, в котором указывается несколько строк. Начало такого определения отмечается символом {, а конец - символом }.
В режиме Ideal этот синтаксис имеет следующий вид:
ENUM имя [переменная_перечисления [, переменная_перечисления.]] {переменная_перечисления [,переменная_перечисления].] . . . {переменная_перечисления [,переменная_перечисления].] }
В режиме MASM используется следующий синтаксис:
имя ENUM [переменная_перечисления [, переменная_перечисления.]] {переменная_перечисления [,переменная_перечисления].] . . . {переменная_перечисления [,переменная_перечисления].] }
Например, все приведенные ниже перечислимые типы данных эквивалентны:
foo ENUM f1, f2, f3, f4 ; исходная версия
foo ENUM { ; версия из нескольких строк f1, f2, f3, f4 }
foo ENUM f1, f2, { f3, f4 } ; более компактная версия
Примечание: Турбо Ассемблер не распознает в определении перечислимого типа данных из нескольких строк никаких псевдоопераций.
1 2 3 4 5 6
8 8 8
|