Директивы

Ассемблер имеет ряд операторов, которые позволяют управлять процессом ассемблирования. Эти операторы называются директивами. Они действуют только в процессе ассемблирования программы и не генерируют машинных кодов. Рассмотрим основные директивы.

Директивы резервирования и инициализации данных:

Имя Длина Применение
db 1 байт · целые знаковые и беззнаковые числа · символьные строки, длина которых определяется длиной строки, указанной в кавычках
dw 2 байта · целые знаковые и беззнаковые числа · смещение в сегменте · адрес сегмента
dd 4 байта · целые знаковые и беззнаковые числа · адрес, включающий сегмент и смещение в сегменте

Директивы определения сегмента:

Формат директивы Назначение
.CODE [имя] Начало сегмента кода
.DATA Начало сегмента инициализированных данных.
.CONST Начало сегмента постоянных данных (констант) модуля
.STACK [размер] Начало сегмента стека модуля. Параметр [размер] задает размер стека

Директива model определяет модель памяти. Самые распространённые виды моделей памяти – это small и tiny. Первый наиболее часто используется для обычных программ, второй – для программ формата.com.

При использовании директивы model транслятор делает доступными несколько идентификаторов (предопределенных имен), к которым можно обращаться во время работы программы, с тем, чтобы получить информацию о тех или иных характеристиках данной модели памяти. Перечислим основные идентификаторы и их значения:

Имя идентификатора Назначение
@code адрес сегмента кода
@data адрес сегмента данных
@stack адрес сегмента стека

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: