Директивы определения скалярных данных приведены в таблице.
Таблица 2. Директивы определения скалярных данных.
Формат
Функция
[[имя]] DB значение,...
определение байтов
[[имя]] DW значение,...
определение слов
[[имя]] DD значение,...
определение двойных слов
[[имя]] DQ значение,...
определение квадрослов
[[имя]] DT значение,...
определение 10 байтов
Директива DB обеспечивает распределение и инициализацию 1 байта памяти для каждого из указанных значений. В качестве значения может кодироваться целое число, строковая константа, оператор DUP (см. ниже), абсолютное выражение или знак «?». Знак «?» обозначает неопределенное значение. Значения, если их несколько, должны разделяться запятыми. Если директива имеет имя, создается переменная типа BYTE с соответствующим данному значению указателя позиции смещением.
Если в одной директиве определения памяти заданы несколько значений, им распределяются последовательные байты памяти. В этом случае, имя, указанное в начале директивы, именует только первый из этих байтов, остальные остаются безымянными. Для ссылок на них используется выражение вида имя+k, где k – целое число.
Строковая константа может содержать столько символов, сколько помещается на одной строке. Символы строки хранятся в памяти в порядке их следования, т.е. 1-й символ имеет самый младший адрес, последний - самый старший.
Во всех директивах определения памяти в качестве одного из значений может быть задан оператор DUP. Он имеет следующий формат:
счетчик DUP (значение,...)
Указанный в скобках список значений повторяется многократно в соответствии со значением счетчика. Каждое значение в скобках может быть любым выражением, имеющим значением целое число, символьную константу или другой оператор DUP (допускается до 17 уровней вложенности операторов DUP). Значения, если их несколько, должны разделяться запятыми.
Оператор DUP может использоваться не только при определении памяти, но и в других директивах.