adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Файл листинга полезно использовать, когда вы хотите точно
видеть, что генерирует Турбо Ассемблер при ассемблировании каждой
инструкции или директивы. Основу этого файла составляет исходный
файл, в который включен большой объем сопровождающей информации о
результатах ассемблирования. Турбо Ассемблер выводит для каждой
инструкции полученный машинный код, а также смещение в текущем
сегменте (на каждой строке с машинным кодом). Кроме того, Турбо
Ассемблер выводит в таблицах информацию о метках и сегментах, ис-
пользуемых в программе, включая значение и тип каждой метки и ат-
рибуты каждого сегмента.
Примечание: См. в Главе 2 описание параметров команд-
ной строки /l и /la.
Турбо Ассемблер может также по запросу генерировать таблицу
перекрестных ссылок для всех меток, используемых в исходном фай-
ле, в которой показано, где определяется каждая метка, и где на
нее имеется ссылка.
Примечание: См. в Главе 2 описание параметра командной
строки /c.
Формат листинга
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В верхней части каждой страницы листинга выводится заголо-
вок, содержащий версию Турбо Ассемблера, с помощью которой выпол-
нено ассемблирование файла, дату и время ассемблирования и номер
страницы в листинге.
Файл листинга содержит две части: аннотированный листинг ис-
ходного кода и таблицу идентификаторов. Сначала выводится исход-
ный ассемблируемый код с заголовком, содержащим имя файла, в ко-
тором находится исходный код. Вывод исходного кода Ассемблера
сопровождается информацией о машинном коде, который ассемблирует
Турбо Ассемблер. Все ошибки или предупреждения, обнаруженные в
процессе ассемблирования, включаются в листинг непосредственно за
содержащей ошибку строкой.
Строки кода в файле листинга имеет следующий формат:
<глубина> <номер_строки> <смещение> <машинный_код> <исходный_код>
где <глубина> показывает уровень вложенности включаемых файлов
или макрокоманд в файле листинга.
Поле <номер_строки> содержит номер строки в файле листинга
(не включая заголовки). Номера строк особенно полезны при исполь-
зовании перекрестных ссылок Турбо Ассемблера, в которых указыва-
ются номер строк. Учтите, что поле <номер_строки> не соответству-
Турбо Ассемблер 3.0/tasm/#2-2 = 64 =
ет номерам строк исходного модуля. Например, если в файл
включается другой файл или выполняется макрорасширение, то значе-
ние поля <номер_строки> продолжает увеличиваться, хотя текущая
строка в исходном файле остается той же. Чтобы преобразовать но-
мер строки обратно в строку исходного кода, вы должны найти стро-
ку в файле листинга, и найти такую же строку в исходном коде (по
ее внешнему виду, а не по номеру).
Поле <смещение> представляет смещение в текущем сегменте на-
чала машинного кода, сгенерированного из соответствующей исходной
строки Турбо Ассемблером.
Поле <машинный_код> показывает фактическую последователь-
ность шестнадцатиричных значений размером в байт или слово, кото-
рые ассемблированы из соответствующей исходной строки на Ассемб-
лере.
Поле <исходный_код> - это просто исходная строка Ассемблера,
с комментариями и всем, что в ней содержится. Некоторые исходные
строки (например те, которые содержат только комментарии) не ге-
нерируют никакого машинного кода. Эти строки не содержат полей
<смещение> и <машинный_код>, но имеют номер строки.
Общие директивы управления листингом
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Имеется ряд директив, которые позволяют вам управлять видом
файла листинга. Общие директивы управления листингом включают в
себя следующие директивы:
- .LIST ; только режим MASM
- .XLEST ; только режим MASM
- %LIST
- %NOLIST
- %CTLS
- %NOCTLS
- %SYMS
- %NOSYMS
Директива %LIST выводит в файл листинга все строки исходного
кода. Эта директива назначается по умолчанию при создании файла
листинга. Чтобы запретить вывод в листинг всех строк исходного
кода, используйте директиву %NOLIST. Приведем пример:
%NOLIST ; запретить листинг
INCLUDE MORE .INC
Турбо Ассемблер 3.0/tasm/#2-2 = 65 =
%LIST ; разрешить листинг
Директивы .LIST и .XLIST работают также, как директивы %LIST
и %NOLIST. Приведем пример:
.LIST
jmp xyz ; эта строка всегда выводится
.XLIST
add dx,ByteVar ; не содержится в листинге
Для управления включением в листинг директив управления лис-
тингом вы можете использовать директивы %CTL и %NOCTL. Директива
%CTLS приводит к включению в листинг директив управления листин-
гом (таких как %LIST, %INCL и т.д.). Обычно они в листинг не вы-
водятся. Эта директива действует для всех последующих строк, поэ-
тому сама директива %CTLS в листинг не выводится. Директива
%NOCTLS изменяет действие директивы %CTLS на обратное. После за-
дания директивы %NOCTLS все последующие директивы управления лис-
тингом в листинг включаться не будут (этот режим используется
Турбо Ассемблером по умолчанию, когда начинается ассемблирование
исходного файла). Например:
%CTLS
%NOLIST ; эта директива не будет включена в
; исходный файл
%NOCTLS
%LIST ; это не будет включаться в листинг
Для задания включения или не включения в файл листинга таб-
лицы идентификаторов вы можете использовать директивы %SYMS и
%NOSYMS (по умолчанию таблица идентификаторов выводится). Таблица
будет выводиться в конце файла листинга.
Приведем синтаксис директивы %SYMS:
%SYMS
Директива %NOSYMS имеет следующий синтаксис:
%NOSYMS
Директивы листинга включаемых файлов
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В том случае, когда вы хотите вывести в файл листинга вклю-
чаемые файлы, вы можете разрешить или запретить эту возможность с
помощью директив %INCL и %NOINCL. По умолчанию включаемые файлы
обычно включаются в файл листинга. Директива %NOINCL приостанав-
ливает вывод в файл листинга всех последующих включаемых файлов,
пока он снова не будет разрешен директивой %INCL. Это полезно ис-
пользовать при наличии больших включаемых файлов, которые содер-
жат, например, много определений EQU, которые никогда не изменя-
ются.
Турбо Ассемблер 3.0/tasm/#2-2 = 66 =
Приведем пример:
%INCL
INCLUSE DEFS.INC ; содержимое выводится в листинг
%NOINCL
INCLUSE DEF1.INC ; содержимое не выводится в листинг
Директивы вывода блоков условного ассемблирования
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Когда в исходном коде у вас содержатся блоки условного
ассемблирования, может оказаться желательным включение в листинг
всей информации. Вывод блоков условного ассемблирования может по-
мочь в тех случаях, когда вы хотите точно видеть поведение исход-
ного кода. В Турбо Ассемблере предусмотрены следующие директивы
вывода блоков условного ассемблирования:
- .LFCOND ; только для режима MASM
- .SFCOND ; только для режима MASM
- ,TFCOND ; только для режима MASM
- %CONDS
- %NOCONDS
Обычно Турбо Ассемблер не включает в листинг блоки условного
ассемблирования.
Директива %CONDS выводит в файл листинга все операторы ус-
ловного блока. При этом в файл листинга выводятся также все блоки
с условием false. Директива .LFCOND работает аналогично директиве
.LFCOND. Директива %NOCONDS предотвращает вывода в файл листинга
|
adfun.ru
|
|
|
|