Директива определения двойного слова DD
Директива определения байта DB
ДИРЕКТИВЫ ОПРЕДЕЛЕНИЯ ДАННЫХ
Директива ASSUME
Процессор использует регистр SS для адресации стека, регистр DS для адресации сегмента данных и регистр CS для адресации сегмента кода. Ассемблеру необходимо сообщить назначение каждого сегмента. Для этой цели служит директива ASSUME, кодируемая в сегменте кода следующим образом:
Директива Операнд
ASSUME SS:имя_стека,DS:имя_сегмента_данных,CS:имя_сегмента_кода
Например, SS:имя_стека указывает, что ассемблер должен ассоциировать имя сегмента стека с регистром SS. Операнды могут записываться в любой последовательности. Следует учитывать, что директива ASSUME является командой компилятора, и не осуществляет никаких действий над регистрами.
Ассемблер обеспечивает два способа определения данных: во-первых, через указание длины данных и, во-вторых, по их содержимому. Рассмотрим основной формат определения данных:
[имя] Dn выражение
Имя элемента данных не обязательно (это указывается квадратными скобками), но если в программе имеются ссылки на некоторый элемент, то это делается посредством имени. Для определения элементов данных имеются следующие директивы: DB (байт), DW (слово), DD (двойное слово), DQ (учетверенное слово) и DT (десять байт).
- Выражение может содержать константу, например:
FLD1 DB 25
или знак вопроса для неопределенного значения, например
FLDB DB ?
Выражение может содержать несколько констант, разделенных запятыми и ограниченными только длиной строки:
FLD3 DB 11, 12, 13, 14, 15, 16, ...
Ассемблер определяет эти константы в виде последовательности смежных байт. Ссылка по имени FLD3 указывает на первую константу, 11, по FLD3+1 - на вторую, 12. (FLD3 можно представить как FLD3+0). Например команда
MOV AL,FLD3+3
загружает в регистр AL значение 14 (шест. 0E). Выражение допускает также повторение константы в следующем формате:
[имя] Dn число_повторений DUP (выражение)
Следующие три примера иллюстрируют повторение:
DW 10 DUP(?) ;Десять неопределенных слов
DB 5 DUP(14) ;Пять байт, содержащих шест.14
DB 3 DUP(4 DUP(8)) ;Двенадцать восьмерок
В третьем примере сначала генерируется четыре копии десятичной 8 (8888), и затем это значение повторяется три раза, давая в результате двенадцать восьмерок. Выражение может содержать символьную строку или числовую константу.
По директиве DB определяются данные размером в байт.
[<имя>] DB <операнд>
Директива определения слова DW
Директива DW определяет элементы, которые имеют длину в одно слово (два байта).
[<имя>] DW <операнд>
Директива DD определяет элементы, которые имеют длину в два cлова (четыре байта). Числовое выражение может содержать одну или более констант, каждая из которых имеет максимум четыре байта (восемь шест. цифр).