Ассемблер и программирование для IBM PC



       

ГЛАВА 3. Требования языка ассемблер - часть 4


PAGE 60,132

Количество строк на странице межет быть в пределах от 10 до 255, а символов в строке - от 60 до 132. По умолчанию в ассемблере установлено PAGE 66,80. Предположим, что счетчик строк установлен на 60. В этом случае ассемблер, распечатав 60 строк, выполняет прогон листа на начало следующей страницы и увеличивает номер страницы на eдиницу. Кроме того можно заставить ассемблер сделать прогон листа на конкретной строке, например, в конце сегмента. Для этого необходимо записать директиву PAGE без операндов. Ассемблер автоматически делает прогон листа при обработке диpективы PAGE.

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

TITLE текст

Рекомендуется в качестве текста использовать имя програм мы, под которым она находится в каталоге на диске. Например, если программа называется ASMSORT, то можно использовать это имя и описательный комментарий общей длиной до 60 символов:

TITLE ASMSORT - Ассемблерная программа сортировки имен

В ассемблере также имеется директива подзаголовка SUBTTL, которая может оказаться полезной для очень больших программ, содержащих много подпрограмм.

Директива SEGMENT

Любые ассемблерные программы содержат по крайней мере один сегмент - сегмент кода. В некоторых программах используется сегмент для стековой памяти и сегмент данных для определения данных. Асcемблерная директива для описания сегмента SEGMENT имеет следующий формат:

Имя Директива Операнд имя SEGMENT [параметры] . .

Ассемблер для IBM PC. Глава 3 64

. имя ENDS

Имя сегмента должно обязательно присутствовать, быть уникальным и соответствовать соглашениям для имен в ассемблере. Директива ENDS обозначает конец сегмента. Обе директивы SEGMENT и ENDS должны иметь одинаковые имена. Директива SEGMENT может содержать три типа параметров, определяющих выравнивание, объединение и класс.

1. Выравнивание. Данный параметр определяет границу начала сегмента. Обычным значением является PARA, по которму сегмент устанавливается на границу параграфа. В этом случае начальный адрес делится на 16 без остатка, т.е. имеет шест. адрес nnn0. В случае отсутствия этого операнда ассемблер принимает по умолчанию PARA. 2. Объединение. Этот элемент определяет объединяется ли данный сегмент с другими сегментами в процессе компановки после ассемблирования (пояснения см. в следующем разделе "Компановка программы"). Возможны следующие типы объединений: STACK, COMMON, PUBLIC, AT выражение и MEMORY. Сегмент стека определяется следующим образом:




Содержание  Назад  Вперед