Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
88
Добавлен:
12.03.2015
Размер:
320 Кб
Скачать

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 Контрольные вопросы

  1. Что такое метка, приведите примеры.

  2. Как задаются числа в десятичной, восьмеричной, двоичной и шестнадцатеричной системах счисления.

  3. Что такое комментарий, приведите примеры.

  4. Назовите основные категории директив ассемблера.

  5. Какие директивы называются директивами управления модулями программы, приведите примеры.

  6. Какие директивы называются директивами управления сегментами, приведите примеры.

  7. Какие директивы называются директивами макроопределений, приведите примеры.

  8. Какие директивы называются директивами препроцессора, приведите примеры.

  9. Какие директивы называются директивами резервирования и инициализации памяти, приведите примеры.

  10. Приведите пример исходного текста программы, поясните из каких частей она состоит.

35

Соседние файлы в папке методички к 78К0