Общая структура директивы определения переменной:
[имя] DK операнд-инициализатор [, операнды ] Где К = B|W|D|Q|T|F|P
db — резервирование памяти для данных размером 1 байт.
- выражение или константа (со знаком: –128…+127, без знака: 0…255);
- символьную строку из одного или более символов. Строка заключается в кавычки. В этом случае определяется столько байт, сколько символов в строке.
- Db ? – выделяется байт памяти, который ничем конкретным не заполняется
- Db n DUP (‘c’, ‘k’) – выделяется n байт памяти, которые последовательно заполняются значениями в скобках
dw — 2 байта.
- выражение или константа (со знаком: –32 768…32 767, без знака: 0…65 535);
- имя переменной или команды – в выделенную память заносится смещение той переменной команды, чие имя указанно на месте операнда;
- 1- или 2-байтовую строку, заключенная в кавычки.
dd — 4 байта.
- выражение или константу, принимающую значение из диапазона:
- для i8086: (со знаком: –32 768…32 767, без знака: 0…65 535);
- для i386 и выше: (со знаком: –2 147 483 648…+2 147 483 647, без знака: 0…4 294 967 295);
- относительное или адресное выражение, состоящее из 16-битового адреса сегмента и 16-битового смещения;
строку длиной до 4 символов, заключенную в кавычки.
df и dp — 6 байт;
- выражение или константу аналогично dd
- относительное или адресное выражение, состоящее из 32 или менее бит (для i80386) или 16 или менее бит (для младших моделей микропроцессоров Intel); адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения, константу со знаком из диапазона –247…247–1; константу без знака из диапазона 0…248-1; строку длиной до 6 байт, заключенную в кавычки.
dq — 8 байт.
- выражение или константу аналогично dd, относительное или адресное выражение аналогично df , константу со знаком из диапазона –263…263–1; константу без знака из диапазона 0…264–1; строку длиной до 8 байт, заключенную в кавычки.
dt — 10 байт.
- выражение или константу аналогично dd, адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения; константу со знаком из диапазона –279…279-1; константу без знака из диапазона 0…280-1, строку длиной до 10 байт, заключенную в кавычки; упакованную десятичную константу в диапазоне 0…99 999 999 999 999 999 999.
Переменной, объявленной с помощью директив описания, ассемблер присваивает три атрибута:
- Сегмент (seg) — адрес начала сегмента, содержащего переменную;
- Смещение (offset) в байтах от начала сегмента с переменной;
- Тип (type) — определяет количество памяти, выделяемой переменной в соответствии с директивой объявления переменной.