FAM DB 'IVANOV'
Символьные цепочки, содержащие более двух символов , применяются только для инициализации памяти. Ассемблер представляет цепочку в виде последовательности байт, соответствующих кодированию символов цепочки в коде ASCII.
Директивы.
Директивы определения переменных.
Директивы DB,DW,DD.
Рассмотрение директив начнем с директив определения данных DB (определить байт), DW (определить слово), DD (определить двойное слово).
Формат директив.
DB
<имя переменной> DW <нач. значение>, [<нач. значение>]…
DD
Мнемокоды директив фактически определяют тип переменных ( байт, слово, двойное слово). Поле операнда директив идентифицирует, сколько байт, слов, двойных слов распределяют директивы и какими должны быть их начальные значения. Атрибутом сегмента переменной является тот сегмент, в котором она определена. Атрибут смещения переменной равен числу байт от начала сегмента до ячейки с переменной.
В качестве начального значения может фигурировать выражение, содержащее значение инициализации для одной единицы памяти. Выражения могут быть числовые и адресные.
Замечание! .кроме директив DB,DW,DD есть еще следующие директивы для 386,486, 586 .
DP - определить указатель - 32-разрядный указатель
DF - определить дальний указатель - 48- разрядный указатель
DQ - определить учетверенное слово ( 8байтов) - вещественные числа
DT - определить 10 байтов - BCD числа
Инициализированные и неинициализированные слова.
Если первоначальное значение переменных не важно, то их можно определить как неинициализированные переменные .
stud db ? ; байт с неизвестным значением
morestud dw ?; слово с неизвестным значением .
Для получения резервирования большого инициированного пространства следует использовать DUP выражения со знаком ? в скобках.
При запуске программы созданный этой директивой 1000-байтовый буфер состоит из байтов, не имеющих определенных значений. Главная причина для использования неинициализированных переменных состоит в уменьшении размера исполняемого файла. Вместо записи бесполезных байтов на диск во время исполнения выделяется неинициализированное пространство. Для этого необходимо придерживаться двух правил:
1) Размещать все неинициализированные переменные последними в сегменте данных.
2) Предварять неинициализированные переменные директивой UDATASЕG. Встретив директиву UDATASЕG Turbo Assembler автоматически поместит эту часть за последнюю инициализированную страницу.
Примеры: