Turbo Assembler 3.0. Руководство пользователя

         

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


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

Все директивы определения данных имеют некоторые общие средства. Во первых они могут генерировать инициализированные данные и резервировать место для неинициализированных данных. Для инициализированных данных определяется некоторое начальное значе- ние. Неинициализированные данные определяются без задания началь- ного значения (говорят, что их начальное значение является неоп- ределенным). В директивах определения данных неинициализированные данные указываются с помощью символа ?. Все прочее должно предс- тавлять значение инициализированных данных. О том, как следует различать инициализированные и неинициализированные данные, расс- казывается в Главе 7.

Другим средством, которое применяется во всех директивах определения данных, является использование для указания повторе- ния блока данных ключевого слова DUP. Приведем общий синтаксис всех директив распределения данных:

[имя_директивы [выражение_dup [выражение_dup.]]

Турбо Ассемблер инициализирует "имя" таким образом, чтобы оно указывало на резервируемую директивой область. Тип данной пе- ременной зависит от фактически используемой директивы.

Каждое "выражение_dup" может иметь следующий синтаксис:

- ?;

- значение;

- выражение_счетчик DUP( выражение_dup[,выражение_dup.]);

где "выражение_счетчик" задает, сколько раз будет повторяться блок данных. "Выражение_счетчик" не может быть относительным и иметь опережающие ссылки.

Если вы хотите получить неинициализированные данные, исполь- зуйте идентификатор ?. Объем резервируемой для неиницализирован- ных данных памяти зависит от фактически используемой директивы.

"Значение" предназначено для фактического описания отдельно- го элемента данных в каждой директиве. В некоторых директивах поле значения может быть очень сложным и содержать много элемен- тов, другие могут потребовать только простого выражения.

В следующем примере используется директива DW, которая выде- ляет слова:

DW 2 DUP (3 DUP (1,3),5) ; эквивалентно директиве ; DS 1,3,1,3,1,35,1,3,1,3,1,3,5



Содержание раздела