- •Системный отладчик debug
- •2.1. Общие сведения
- •2.2. Командный язык отладчика
- •Войти в режим ассемблирования командой
- •Перейдем в режим ассемблирования
- •Провести р-трассировку. Для этого сначала выполнить команду:
- •После этого провести обычную детальную т-трассировку
- •Команда
- •Команда
- •Команда
- •По команде
- •Предположим, необходимо заменить диагностические сообщения в воот-секторе на свои собственные. Для этого выполним последовательность действий.
- •2.3. Общий список команд программы debug
-
Системный отладчик debug
2.1. Общие сведения
Существуют разные типы программ-отладчиков для работы с памятью и внешними устройствами на самом нижнем (аппаратном) уровне, написанные под MS-DOS и работающие в реальном режиме РС. Все они предусматривают применение единого командного языка, работают с памятью в диапазоне 000000H - 10FFEFH и отличаются, в основном, видом интерфейса и сервисными функциями. Наиболее простым (всего один файл - debug.exe), а главное, всегда присутствующим в наборе утилит операционной системы, в том числе и Windows, является системный отладчик DEBUG. О нем и пойдет речь в настоящем разделе.
Отладчик DEBUG предназначен для решения широкого круга задач. К ним относятся, например, следующие задачи:
-
Изучение текущего содержимого оперативной памяти;
-
Редактирование отдельных секторов на флоппи-дисках и на винчестере;
-
Загрузка и дизассемблирование .сом и .ехе-файлов;
Разработка и отладка собственных программ на языке ассемблера (точнее на мнемокодах) ;
-
Загрузка, модификация, вывод на экран содержимого произвольного файла;
-
Тестирование периферийного оборудования, для работы с портами ввода/вывода напрямую (в диалоговом режиме);
-
Изучение системы команд процессора, прерываний BIOS и MS-DOS.
При изучении схемотехники PC/AT необходим инструмент, позволяющий напрямую работать с периферийными портами и оперативной памятью, а также создавать короткие тестовые программы для генерации нужных сигналов на системной плате и периферийных адаптерах. Отладчик наилучшим образом подходит для этих целей. Познакомимся только с общими принципами работы в DEBUG.
Запуск отладчика в среде MS-DOS осуществляется командой:
DEBUG [disk:][path][filename][.extension][parameter 1] [parameter 2]
Отладчик запускается указанной командой из любого места файловой системы.
Если команда DEBUG содержит имя файла (filename), то указанный файл загружается в память, и все последующие действия будут выполняться именно для этого файла.
Отсутствие имени файла в команде обозначает, что пользователь работает с файлом, находящимся в памяти, или файл будет загружен в дальнейшем с помощью команд Name и Load.
Parameter 1 и parameter 2 – это параметры загружаемого файла. Например,:
DEBUG diskcomp.com A: B:
В команде А: и В: - параметры, которые программа DEBUG передает программе diskcomp.
После запуска отладчик загружается в оперативную память, а состояние процессора следующее:
-
Содержимое сегментных регистров CS, DS, ES, SS устанавливается на первом свободном сегменте сразу после самого отладчика.
-
Регистр IP устанавливается равным 100.
-
После запуска программы DEBUG с именем файла регистр СХ (счетчик) содержит длину этого файла (в байтах). Если длина файла больше 64 К, этот параметр находится в двух регистрах ВХ и СХ (старшие байты в регистре ВХ).
-
Текущий адрес передачи из диска равен 80Н в кодовом сегменте (CS).
-
Вся доступная память распределена. Каждая попытка распределить память в загруженной программе завершается неудачей.
-
Начальное состояние флагов:
NV UP EI PL NZ NA PO NC.
-
Значения флагов определяются из таблицы 2.1.
Таблица 2.1
Имя флага |
1 |
0 |
флаг переноса (да/нет) |
CY |
NC |
флаг паритета (четность/нечетность) |
PE |
РО |
флаг дополнительного переноса (да/нет) |
АС |
NA |
флаг нуля-результата (да/нет) |
ZR |
NZ |
флаг знака (отрицат./положит.) |
NG |
PL |
флаг маскирования прерывания (допуск./запрещ.) |
EI |
DI |
флаг направления (возрастание/убывание) |
DN |
UP |
флаг переполнения (да/нет) |
OV |
NV |
Отладчик DEBUG имеет специальный указатель адреса данных, который используется по умолчанию во многих командах отладчика.
П осле запуска отладчика из любого места файловой системы слева на экране появляется черта [ - ] и рядом с ней мигающий курсор, которые указывают на то, что отладчик ждет ввод команды (Рис. 2.1).
Рис. 2.1. Пример запуска программы-отладчика DEBUG
Внимание! Все числа интерпретируются отладчиком в шестнадцатеричной системе счисления.
Рассмотрим команды отладчика DEBUG и работу с ними.