3.7 Директивы резервирования и инициализации памяти
Директивы позволяют резервировать в памяти слова, полуслова и байты. В абсолютном сегменте зарезервированное пространство начинается с текущего адреса. В перемещаемом сегменте зарезервированное пространство начинается с текущего смещения. Директивы приведены в таблице 7.
Таблица 7 – Директивы резервирования и инициализации памяти
|
Директива |
Описание |
|
DB |
Заносит в память программ байтовую константу |
|
DC8 |
Заносит в память программ байтовую константу |
|
DC16 |
Заносит в память программ 16 разрядную константу (полуслово) |
|
DC32 |
Заносит в память программ 32 разрядную константу (слово) |
|
DH |
Заносит в память программ 16 разрядную константу (полуслово) |
|
DS |
Резервирует пространство памяти в текущем сегменте для 8 разрядных данных |
|
DS8 |
Резервирует пространство памяти в текущем сегменте для 8 разрядных данных
|
|
DS16 |
Резервирует пространство памяти в текущем сегменте для 16 разрядных данных |
|
DS32 |
Резервирует пространство памяти в текущем сегменте для 32 разрядных данных |
|
DW |
Резервирует пространство памяти в текущем сегменте для 32 разрядных данных |
Синтаксис: DC8 expr [,expr] ...
DC16 expr [,expr] ...
DC24 expr [,expr] ...
DC32 expr [,expr] ...
DB expr [,expr] ...
DW expr [,expr] ...
DP expr [,expr] ...
DD expr [,expr] ...
DS8 expr
DS expr
где: expr - Действительное абсолютное, переместимое, или внешнее выражение, или строка ASCII.
Директивы DB, DC8, DC16, DC32, DH и DW резервируют и инициализируют память. Директивы DS, DS8, DS16 и DS32 только резервируют память.
Примеры:
Следующий пример генерирует поисковую таблицу адресов подпрограмм:
NAME table
RSEG CONST
table DC16 addsubr/2, subsubr/2, clrsubr/2
RSEG CODE
addsubr ADD A,C
RET
subsubr SUB A,C
RET
clrsubr MOV A,#0
RET
END
Следующий пример инициализирует строку “Please enter your name”:
mymsg: DC8 ‘Please enter your name’
Следующий пример резервирует память размером 8 байт:
table: DS8 0xA
4 Контрольные вопросы
Что такое метка, приведите примеры.
Как задаются числа в десятичной, восьмеричной, двоичной и шестнадцатеричной системах счисления.
Что такое комментарий, приведите примеры.
Назовите основные категории директив ассемблера.
Какие директивы называются директивами управления модулями программы, приведите примеры.
Какие директивы называются директивами управления сегментами, приведите примеры.
Какие директивы называются директивами макроопределений, приведите примеры.
Какие директивы называются директивами препроцессора, приведите примеры.
Какие директивы называются директивами резервирования и инициализации памяти, приведите примеры.
Приведите пример исходного текста программы, поясните из каких частей она состоит.
