- •Системный отладчик debug
- •2.1. Общие сведения
- •2.2. Командный язык отладчика
- •Войти в режим ассемблирования командой
- •Перейдем в режим ассемблирования
- •Провести р-трассировку. Для этого сначала выполнить команду:
- •После этого провести обычную детальную т-трассировку
- •Команда
- •Команда
- •Команда
- •По команде
- •Предположим, необходимо заменить диагностические сообщения в воот-секторе на свои собственные. Для этого выполним последовательность действий.
- •2.3. Общий список команд программы debug
Предположим, необходимо заменить диагностические сообщения в воот-секторе на свои собственные. Для этого выполним последовательность действий.
Загрузка ВООТ-сектора:
L 100 80 0 1
Затем, используя команду Е, проведем редактирование диагностических сообщений. И наконец, запомним отредактированный загрузчик на диске:
W 100 80 0 1
Внимание! Изменять саму программу в BOOT-секторе категорически запрещается! Изменять можно только текстовые сообщения.
Запись в файл на диске производится командой W без аргументов (или только с параметром <адрес>). В этом случае команда W переписывает на диск файл, определение которого находится в контрольном блоке FCB по адресу CS:80. Для такой установки предварительно необходимо командой N указать имя файла, куда будет производиться запись, либо запустить DEBUG с указанием имени файла. В пару регистров ВХ:СХ при этом необходимо занести длину записываемого файла с помощью команды L (Load).
Внимание.
-
Команды Go и Trace изменяют содержимое регистров BX и CX. Перед употреблением команды W необходимо убедиться, что эти регистры содержат правильные данные.
-
Командой W нельзя переписывать файлы типа .EXE и .HEX. Эти файлы записываются в специальном формате, недоступном DEBUG.
Начало области памяти, откуда будет производиться запись, всегда по умолчанию является байтом с адресом CS:0100.
Если же используется команда
W <адрес>
для записи в файл, то параметр <адрес> указывает начало области памяти, копируемой в файл.
Пример 3.
Скопировать в файл на диске содержимое BIOS-области оперативной памяти.
Предполагая наличие PC AT со стандартным BIOS размером 64К, обнулим сначала регистр ВХ, а затем занесем в регистр СХ значение 2000Н. Далее зададим имя файла, куда будем копировать старшую половину BIOS, командой:
N BIOS.COM
И наконец,команда
W F000:E000
занесет в файл BIOS.COM содержимое BIOS.
Пример 4.
Запомнить загрузчик BOOT диска А: как файл BOOT.COM на диске А:.
Для этого выполним команды:
L 100 0 0 1
N A:\BOOT.COM
W
2.3. Общий список команд программы debug
Для быстрого использования программы DEBUG все приведенные выше команды сведены в таблицу 2.2.
Таблица 2.2
Команда |
Функция |
Формат |
Assemble
Compare
Dump
Enter Fill
Go
Hexarithmetic
Input
Load
Move
Name
|
Транслирует выражение Сравнивает память
Выводит на экран содержимое памяти Изменяет память Меняет блоки памяти
Выполняет программу
Шестнадцатеричное сложение и вычитание Считывает байт из порта и выводит его на экран Загружает файл или сектор с диска
Копирует блок памяти Определяет файлы и параметры |
A [<адрес>]
C <адрес1> L<длина> <адрес2> D [<адрес блока>] [L<длина блока>] E <адрес> [<список>] F <диапазон памяти> <цепочка байтов> G[=<адрес>] [<адрес1>] [<адрес n…>] H <число1> <число2>
I <адрес порта>
L [<адрес> <номер диска> <начальный сектор> <число секторов>] M <диапазон> <начальный адрес> N [<путь>] <имя файла> |
Продолжение таблицы 2.2
Команда |
Функция |
Формат |
Output
Proceed
Quit Register
Search
Trace
Unassembler
Write |
Передает выходной байт в порт Переход к следующему оператору Выход из DEBUG Выводит на экран регистры и флаги, дает доступ к ним Ищет символы
Отслеживание программы Дизассемблирование программы
Записывает файл или сектор на диск |
O <адрес порта> <байт> P[=<адрес> [<число инструкций>]] Q R [<имя регистра>]
S <диапазон памяти> <цепочка байтов> T[=<адрес>] [<число инструкций>] U [<начальный адрес> [<длина>]] или U <начальный адрес> <конечный адрес> W [<адрес> <номер диска> <начальный сектор> <число секторов>] |
Для углубления знаний по системному отладчику DEBUG в следующем разделе предложен цикл лабораторных работ, вместе с тем позволяющих самостоятельно освоить некоторый дополнительный материал.