6.1 Директивы определения переменных

Общая структура директивы определения переменной:

[имя]  DK  операнд-инициализатор  [, операнды ]
Где К = B|W|D|Q|T|F|P

dbрезервирование памяти для данных размером 1 байт.

  • выражение или константа (со знаком: –128…+127, без знака: 0…255);
  • символьную строку из одного или более символов. Строка заключается в кавычки. В этом случае определяется столько байт, сколько символов в строке.
  • Db ? – выделяется байт памяти, который ничем конкретным не заполняется
  • Db n DUP (‘c’, ‘k’) – выделяется n байт памяти, которые последовательно заполняются значениями в скобках

dw2 байта.

  • выражение или константа (со знаком: –32 768…32 767, без знака: 0…65 535);
  • имя переменной или команды – в выделенную память заносится смещение той переменной команды, чие имя указанно на месте операнда;
  • 1- или 2-байтовую строку, заключенная в кавычки.

dd4 байта.

  • выражение или константу, принимающую значение из диапазона:
    • для 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 и dp6 байт;

  • выражение или константу аналогично dd
  • относительное или адресное выражение, состоящее из 32 или менее бит (для i80386) или 16 или менее бит (для младших моделей микропроцессоров Intel); адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения, константу со знаком из диапазона –247…247–1; константу без знака из диапазона 0…248-1; строку длиной до 6 байт, заключенную в кавычки.

dq8 байт.

  • выражение или константу аналогично dd, относительное или адресное выражение аналогично df , константу со знаком из диапазона –263…263–1; константу без знака из диапазона 0…264–1; строку длиной до 8 байт, заключенную в кавычки.

dt10 байт.

  • выражение или константу аналогично dd, адресное выражение, состоящее из 16-битового сегмента и 32-битового смещения; константу со знаком из диапазона –279…279-1; константу без знака из диапазона 0…280-1, строку длиной до 10 байт, заключенную в кавычки; упакованную десятичную константу в диапазоне 0…99 999 999 999 999 999 999.



Переменной, объявленной с помощью директив описания, ассемблер присваивает три атрибута:

  • Сегмент (seg) — адрес начала сегмента, содержащего переменную;
  • Смещение (offset) в байтах от начала сегмента с переменной;
  • Тип (type) — определяет количество памяти, выделяемой переменной в соответствии с директивой объявления переменной.
17.07.2015