Директивы вывода блоков условного ассемблирования
Когда в исходном коде у вас содержатся блоки условного ассемблирования, может оказаться желательным включение в листинг всей информации. Вывод блоков условного ассемблирования может помочь в тех случаях, когда вы хотите точно видеть поведение исходного кода. В Турбо Ассемблере предусмотрены следующие директивы вывода блоков условного ассемблирования:
.LFCOND ; только для режима MASM
.SFCOND ; только для режима MASM
,TFCOND ; только для режима MASM
%CONDS
%NOCONDS
Обычно Турбо Ассемблер не включает в листинг блоки условного ассемблирования.
Директива %CONDS выводит в файл листинга все операторы условного блока. При этом в файл листинга выводятся также все блоки с условием false. Директива .LFCOND работает аналогично директиве .LFCOND. Директива %NOCONDS предотвращает вывода в файл листинга блоков условного ассемблирования с условием false. Директива .SFCONDS работает аналогично директиве %NOCOND. Если вы хотите переключить режим вывода блоков условного ассемблирования, используйте директиву .TFCOND.
Первая директива .TFCOND, которую обнаруживает Турбо Ассемблер, разрешает вывод в листинг всех блоков условного ассемблирования. Если вы используете параметр командной строки /X, блоки условного ассемблирования будут сначала выводиться в листинг, а первая директива .TFCOND запретит их вывод. При каждом обнаружении в исходном файле директивы .TFCOND состояние вывода блоков условного ассемблирования изменяется на обратное.
Для указания любой из этих директив поместите директиву на отдельной строке исходного кода. Она будут влиять на непосредственно следующие за данной директивой блоки условного ассемблирования.
Директивы вывода в файл листинга макрокоманд
Обычно макрорасширения включаются в файлы листинга. Наличие такой информации в файле листинга может оказаться очень полезной, когда вы хотите видеть, что делается в исходном коде. В Турбо Ассемблере предусмотрено несколько директив, которые позволяют включать и выключать данное средство. Это следующие директивы:
.LALL ; только для режима MASM
.SALL ; только для режима MASM
.XALL ; только для режима MASM
%MACS
%NOMACS
Директива %MACS разрешает листинг всех макрорасширений. Тоже самое делает директива .LALL, но она работает только в режиме MASM. Вы можете использовать эти директивы для включения макрорасширений в файл листинга.
Директива %MACS имеет следующий синтаксис:
%MACS
Директиву .LALL вы можете задать следующим образом:
.LALL
Если вы хотите подавить вывод всех операторов макрорасширения, используйте директивы %NOMACS или .SALL. Заметим, что эти директивы можно использовать для выключения вывода макрорасширения в файл листинга.
Директива %NOMACS имеет следующий синтаксис:
%NOMACS
Директива .SALL задается следующим образом:
.SALL
Доступная в режиме MASM директива .XALL позволяет вам выводить в листинг только те макрорасширения, которые генерируют код или данные. Она имеет следующий синтаксис:
.XALL
Директивы вывода листинга перекрестных ссылок
В таблице идентификаторов листинга ссылок обычно выводится большой объем информации о метках, группах и сегментах, но там не сообщается, где определены сегменты, группы и метки и где они используются. Информация, выводимая в таблице перекрестных ссылок, позволяет вам легко находить метки и следить за ходом выполнения программы при ее отладке.
Существует несколько способов разрешения включения информации о перекрестных ссылках в файл листинга. Для получения информации о перекрестных ссылках для всего файла вы можете использовать параметр командной строки /c (подробности можно найти в этом разделе), либо включить в исходный код директивы, позволяющие вам разрешать и запрещать вывод перекрестных ссылок для отдельных частей исходного кода. Это следующие директивы:
Директивы %CREF и .CREF позволяют вам собрать информацию о перекрестных ссылках для всех идентификаторах в исходном файле, начиная с данной точки. Директивы %CREF и .CREF отменяют действие директив %NOCREF или .XCREF, которые запрещают сбор информации о перекрестных ссылках.
Директивы %CREF и .CREF имеют следующий синтаксис:
%CREF или .CREF
Директивы %NOCREF и .XCREF имеют синтаксис:
%NOCREF [идентификатор, .] или .XCREF [идентификатор, .]
Если вы используете директивы %NOCREF и .XCREF без указания идентификатора, то вывод перекрестных ссылок запрещается полностью. Если вы указываете одно или более имен идентификаторов, то вывод перекрестных ссылок запрещается только для данных идентификаторов.
Директива %CREFALL выводит в листинг перекрестные ссылки для всех идентификаторов. Директива %CREFALL изменяет действие предыдущей директивы %CREFREF (запрещающей вывод в таблицу перекрестных ссылок тех идентификаторов, на которые ссылки отсутствуют) на обратное. После указания директивы %CREFALL все встречающиеся далее в исходном файле идентификаторы будут включаться в листинг перекрестных ссылок. Турбо Ассемблер использует это режим по умолчанию а начале ассемблирования исходного файла.
Директивы %CREFALL, %CREFREF и %CREFUREF имеют следующий синтаксис:
%CREFALL %CREFREF %CREFUREF
1 2 3 4
8 8 8
| |