Инициализация экземпляра перечислимого типа данных
Вы можете использовать любое выражение, при вычисление которого получается число, умещающееся в экземпляре перечислимого типа данных, например:
ETYPE ? ; неинициализированный экземпляр ETYPE FOO ; инициализированный экземпляр, значение FOO ETYPE 255 ; число вне ENUM также подходит
Создание экземпляра таблицы
Для создания экземпляра таблицы используйте в качестве директивы выделения данных имя таблицы. Предположим, например, что вы определили следующую таблицу:
TTYPE TABLE VIRTUAL MoveProc:WORD=MoveRtn, \продолжение. VIRTUAL MsgProc:DWORD=MsgRtn, \продолжение. VIRTUAL DoneProc:WORD=DoneRtn,
Тогда оператор:
TTEST TTYPE ?
создает экземпляр таблицы TTYPE (определяя переменную TTEST). В данном примере, поскольку задано значение неинициализируемых данных ?, начальные данные в текущем сегменте не генерируются.
Инициализация экземпляров таблицы
Когда вы определяете таблицу, нужно задать начальное значение для всех ее элементов. Простейший инициализированный экземпляр таблицы содержит просто заданные в определении начальные данные, например:
TTYPE {}
что эквивалентно следующему:
DW MoveRtn DD MsgRtn DW DoneRtn
Фигурные скобки ({}) представляют нулевое инициализирующее значение. Значение инициализатора определяет, что элементы (если они есть) имеют начальное значение, которое нужно переопределить, и каким именно новым значением его требуется переопределить при выделении данных для экземпляра таблицы.
Инициализатор записи в фигурных скобках имеет следующий синтаксис:
{[имя_элемента = выражение [,имя_элемента = выражение.]]}
где "имя_элемента" - это имя элемента таблицы, а "выражение" - это значение, которое вы хотите определить для элемента в данном экземпляре. Пустое значение указывает, что вы будете использовать начальное значение элемента из определения таблицы. Значение ? эквивалентно нулю. Турбо Ассемблер устанавливает для всех элементов, которые не указываются в инициализаторе, начальное значение, заданное в определении таблицы. Например:
TTYPE {MoveProc=MoveRtn2,DoneProc=?}
что эквивалентно следующему:
DW MoveRtn2 DD MsgRtn DW ?
1 2 3 4 5 6
8 8 8
| |