Команда выдачи исходной линии
Синтаксис:
V <адрес>
КомандаV выдает исходные линии программы, соответствующие инструкциям, расположенным, начиная с указанного адреса.
При этом загруженный символьный план должен содержать информацию о линиях исходной программы.
Исходные линии выдаются независимо от режима, установленного командой S.
Команда записи на диск
Синтаксис:
W [<адрес> [<драйв> <запись> <счетчик>]]
Команда W обеспечивает запись участка памяти в определенное место на диске.
Если опущены все параметры команды, запись производится в файл с именем, ранее определенным командой N.
Пара регистров BX:CX должна содержать число записываемых байтов.
В памяти записываемые данные должны размещаться, начиная с указанного адреса или, если он опущен, с адреса CS:100.
Если специфицированы все 4 параметра команды W, на указанный драйв записывается определяемое счетчиком количество логических записей, содержимое которых расположено по указанному адресу. <Запись> определяет первую записываемую на диск запись и может представляться 16-ричным числом, содержащим от 1 до 4 16-ричных цифр.<Счетчик> представляется аналогично. <Драйв>может быть задан числом 0, 1, 2 или 3, определяющим логический адрес драйва A, B, C или D соответственно.
Не рекомендуется записывать данные по абсолютному адресу сектора диска, даже если имеется уверенность, что сектор свободен. Запись на зарезервированный или занятый сектор может испортить содержимое файла или даже диска.
Если имя отлаживаемого файла имеет расширение COM или BIN, можно при помощи SYMDEB внести изменения в программу и затем записать ее обратно в файл. При загрузке файла его длина, начальный адрес и имя будут установлены правильно с точки зрения последующей записи. Однако, если в процессе отладки использовались команды G, P илиT или изменялось содержимое пары регистров BX:CX, утраченные значения следует восстановить до записи.
Команду W нельзя использовать для записи в EXE- или HEX-файл. Для модификации таких файлов может служить следующая процедура:
1. Запустить SYMDEB с исполнительным файлом и запомнить несколько первых инструкций программы.
2. Выйти из SYMDEB и переименовать исполнительный файл так, чтобы расширение его имени отличалось от EXE и HEX.
3. Запустить SYMDEB с переименованным исполнительным файлом. При этом заголовок файла будет рассматриваться как часть кода программы (очевидно, что в этом случае нет смысла в загрузке символьных файлов, так как все символы в них будут иметь некорректные адреса).
4. Использовать команду поиска S для нахождения действительного начала программы по запомненным инструкциям. Для этого может понадобиться несколько попыток, так как начальный адрес может меняться в зависимости от порядка сегментов и других факторов.
5. Имея адрес начала программы, отыскать инструкции, в которые нужно внести изменения, и проделать эти изменения.
6. Установить параметры команды W и записать весь файл, включая его заголовок, на диск. Длина заголовка должна входить в общую длину записываемого файла в паре регистров BX:CX.
7. Выйти из SYMDEB и произвести обратное переименование исполнительного файла.
CREF: утилита перекрестных ссылок
Утилита перекрестных ссылок CREF предназначена для создания листинга перекрестных ссылок всех символов в ассемблерной программе. Для каждого символа указываются номера строк исходной программы, содержащих ссылки на этот символ.
Листинг перекрестных ссылок вместе с создаваемой Ассемблером таблицей символов упрощает отладку программы.
Листинг перекрестных ссылок создается на основе формируемого Ассемблером CRF-файла.
Запуск CREF
Утилита CREF может быть запущена двумя способами:
u С использованием подсказок.
u При помощи командной строки.
Для запуска CREF с использованием подсказок необходимо ввести командную строку, содержащую только имя файла CREF и спецификацию его пути поиска, если это необходимо. CREF перейдет в диалоговый режим и серией подсказок запросит у пользователя информацию о следующих файлах (ответ заключается в наборе требуемых символов и нажатии клавиши ENTER):
1. Имя файла перекрестных ссылок, сформированного Ассемблером. Если при ответе не указано расширение, предполагается CRF.
2. Имя файла создаваемого файла листинга перекрестных ссылок. Если при ответе не указано расширение, предполагается REF.
Для запуска CREF при помощи командной строки необходимо ввести командную строку следующего вида:
CREF <имя файла перекрестных ссылок>
[,<имя файла листинга перекрестных ссылок>][;]
Умалчиваемые расширения имен файлов совпадают со случаем запуска CREF с использованием подсказок.
Если после имени файла перекрестных ссылок специфицировано;, базовое имя файла листинга по умолчанию устанавливается таким же, как и у файла перекрестных ссылок.
Имена файлов при обоих способах запуска могут содержать спецификации путей поиска в подоглавлениях. Если указание пути отсутствует, файл ищется или создается в текущем подоглавлении.