Turbo Assembler 3.0. Руководство пользователя

Параметры изменения формата листинга


Директивы управления форматом листинга изменяют формат файла листинга. Вы можете использовать эти директивы, чтобы приспосо- бить вид листинга под свой вкус и потребности.

Директива PAGE задает высоту и ширину страницы файла листин- га и начинает новую страницу. Директива PAGE работает только в режиме MASM. Она имеет следующий синтаксис:

PAGE [число_строк] [,число_столбцов] PAGE +

где "число_строк" задает число строк, выводимых на странице лис- тинга. Поле "число_столбцов" может принимать значения от 59 до 255 и задает число столбцов на странице. Если вы опустите один из этих параметров, то текущая установка данного параметра остается без изменений. Чтобы изменить только число столбцов, укажите пе- ред этим параметром запятую, в противном случае вы измените число строк.

Если вы укажете после директивы PAGE символ плюса (+), то начинается новая страница, номер раздела увеличивается, а номер страницы снова начинается с 1. Если вы используете директиву PAGE без аргументов, то листинг возобновляется с новой страницы без изменения номера раздела.

Директива %PAGESIZE работает также, как директива PAGE, но она не начинает новую страницу и работает как в режиме Ideal, так и в режиме MASM. Директива %PAGESIZE имеет следующий синтаксис:

%PAGESIZE [число_строк] [,число_столбцов]

Директива %NEWPAGE работает как директива PAGE без аргумен- тов. Строки исходного текста после директивы %NEWPAGE будут начи- наться в файле листинга с новой страницы. Директива %PAGESIZE имеет следующий синтаксис:

%NEWPAGE

Директива %BIN устанавливает длину поля объектного кода в файле листинга. Директива %BIN имеет синтаксис:

%BIN размер

где "размер" является константой. Если вы не используете эту ди- рективу, то поле кода операции занимает в файле листинга до 20 позиций, например:

%BIN 12 ; устанавливает 12 позиций в листинге



Директива %DEPTH устанавливает размер поля глубины в файле листинга. Эта директива имеет следующий синтаксис:

%DEPTH размер

где "размер" задает, скольку столбцов нужно зарезервировать в по- ле глубины файла листинга. Это поле указывает уровень вложенности включаемых файлов (INCLUDE) и макрорасширений. Если в качестве размера вы укажете 0, то это поле в файле листинга не выводится. Обычно не требуется задавать "размер" > 2, поскольку при этом без усечения будет выводиться глубина до 99. По умолчанию это поле имеет значение 1.


Директива % LINENUM задает размер поля номеров строк в файле листинга. Данная директива имеет следующий синтаксис:
%LINENUM размер
Директива %LINENUM позволяет вам задать, сколько позиций должны занимать номера строк в файле листинга. В поле "размер" должна указываться константа. Если вы хотите минимизировать шири- ну листинга, то можете уменьшить размер поля номеров строк. Кроме того, если ваш файл содержит более 9999 строк, то размер этого поля может потребоваться увеличить, чтобы номера не усекались. По умолчанию номер строки занимает 4 столбца.
Директива %TRUNC усекает слишком длинные поля листинга. Она имеет следующий синтаксис:
%TRUNC
Поле объектного кода в файле листинга имеет достаточно мес- та для вывода кода, генерируемого большинством инструкций или ди- рективами выделения данных. Размер этого поля можно настроить с помощью директивы %BIN. Если отдельная строка исходного кода ге- нерирует больше кода, чем можно вывести на одной строке, то оста- ток автоматически усекается и таким образом будет невидимым. Если вы хотите видеть весь генерируемый код, то используйте директиву %NOTRUNC (слишком длинная строка при этом будет переноситься на следующую). В противном случае используйте директиву %TRUNC. Вы можете использовать эти инструкции для переключения режима усече- ния.
Директива %NOTRUNC имеет следующий синтаксис:
%NOTRUNC
Директива %PCNT задает размер поля "сегмент:смещение" в фай- ле листинга. Она имеет следующий синтаксис:
%PCNT размер
где "размер" - это число столбцов, которые вы хотите зарезервиро- вать для смещения в текущем ассемблируемом сегменте. Турбо Ас- семблер устанавливает размер, равный 4, для обычных 16-битовых сегментов и 8 для 32-битовых сегментов процессора 80386. Директи- ва %PCNT позволяет переопределить эти используемые по умолчанию значения.
Директива TITLE, которую вы можете использовать только в ре- жиме MASM, задает заголовок файла листинга. Эта директива имеет следующий синтаксис:
TITLE текст


Заголовок "текст" будет выводиться в верхней части каждой страницы после имени исходного файла и перед заголовком, заданным по директиве SUBTTL. Директиву TITLE можно использовать в прог- рамме только один раз.
Директива %TITLE работает также, как директива TITLE, но вы можете использовать ее как в режиме MASM, так и в режиме Ideal. Эта директива имеет следующий синтаксис:
%TITLE "текст"
Директива SUBTTL работает только в режиме MASM и задает под- заголовок файла листинга. Она имеет следующий синтаксис:
SUBTTL текст
Подзаголовок выводится в верхней части каждой страницы после имени исходного файла и после заголовка, заданного директивой TITLE.
Директиву SUBTTL можно указывать в программе столько раз, сколько требуется. Каждая директива изменяет подзаголовок, кото- рый будет выводиться на следующей странице листинга.
Директива %SUBTTL работает аналогично директиве SUBTTL, но ее можно указывать как в режиме Ideal, так и в режиме MASM. Эта директива имеет синтаксис:
%SUBTTL "текст"
Директива %TABSIZE задает позицию табуляции в файле листин- га. Данная директива имеет следующий синтаксис:
%TABSIZE размер
где "размер" - это число столбцов между двумя позициями табуляции в файле листинга. По умолчанию это 8 столбцов.
Для задания длины поля исходного текста в файле листинга можно использовать директиву %TEXT, которая имеет синтаксис:
%TEXT размер
где "размер" - это число столбцов, используемых для вывода в фай- ле листинга исходных строк. Если размер исходной строки превышает длину этого поля, то оно будет либо усекаться, либо переноситься на следующую строку, в зависимости от использования директивы %TRUNC или %NOTRUNC.
Чтобы сохранить все параметры управления листингом в 16-уровневом стеке, можно использовать директиву %PUSHCTL. Она сохраняет только те параметры управления листингом, которые можно разрешить или запретить (%INCL, %NOINCL и т.д.). Размеры полей листинга не сохраняются. Данная директива особенно полезна в мак- рокомандах, когда вы можете вызывать специальные режимы листинга, которые отменяются при завершении макрорасширения.
Директива %PUSHCTL имеет синтаксис:
%PUSHCTL
Директива %POPCTL восстанавливает из стека параметры управ- ления листингом и имеет следующий синтаксис:
%POPCTL
Эта директива восстанавливает параметры управления листингом в те значения, которые они имели перед последней директивой %PUSHCTL. Значения размеров полей листинга (%DEPTH, %PCNT и т.д.) не восстанавливаются.
Назад | Содержание | Вперед

Содержание раздела