Тема 5. Директивы языка Ассемблер
Ассемблер имеет ряд директив, которые позволяют управлять процессом ассемблирования и формирования листинга. Директивы действуют только при выполнении операции ассемблирования исходного модуля и не генерируют машинных кодов.
1. Директива TITLE.
Эта директива используется для того, чтобы вверху каждой страницы листинга печатался заголовок программы.
Формат записи директивы:
TITLE Имя
где Имя – это любая текстовая надпись.
Пример:
TITLE SORT
Здесь SORT – это имя программы.
2. Директива SEGMENT
Эта директива используется для определения сегмента в ассемблерной программе.
Формат записи директивы:
Имя SEGMENT [Параметры]
.
.
.
Имя ENDS
Имя сегмента должно обязательно присутствовать и быть уникальным. Директива ENDS закрывает сегмент. Директивы SEGMENT и ENDS должны иметь одинаковые имена.
Директива SEGMENT может иметь 3 типа параметров: параметр выравнивания, параметр объединения, параметр класса.
Параметр выравнивания.
Параметр выравнивания определяет положение начальной ячейки сегмента в параграфе.
Параметр выравнивания может принимать 3 значения: PARA, WORD, BYTE.
PARA – этот параметр определяет, что начальный адрес сегмента должен совпадать с началом параграфа.
CODE SEGMENT PARA
WORD – этот параметр определяет, что начальный адрес сегмента должен совпадать с четной ячейкой параграфа.
CODE SEGMENT WORD
BYTE – этот параметр определяет, что начальный адрес сегмента может совпадать с любой ячейкой параграфа.
CODE SEGMENT BYTE
Параметр объединения.
Параметр объединения определяет способ объединения нескольких сегментов при компоновке. Параметр объединения может принимать 4 значения: NONE, PUBLIC, STACK, COMMON.
NONE – этот параметр определяет, что сегмент должен быть логически отделен от других сегментов и иметь отличный от других сегментов начальный адрес.
CODE SEGMENT PARA NONE
PUBLIC – этот параметр определяет, что все сегменты, имеющие этот параметр, должны располагаться в соседних областях оперативной памяти и иметь общий начальный адрес.
CODE SEGMENT PARA PUBLIC
STACK – этот параметр определяет стековый сегмент, который содержит стековую память.
CODE SEGMENT PARA STACK
COMMON – этот параметр определяет, что сегменты, имеющие данный параметр и одинаковые имена, должны объединяться при компоновке в один общий сегмент.
CODE SEGMENT PARA COMMON