Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2.doc
Скачиваний:
12
Добавлен:
19.11.2018
Размер:
280.06 Кб
Скачать

43

  1. Системный отладчик 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][parame­ter 1] [pa­rameter 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 и работу с ними.