Общие сведения об отладчике Debug


Программа Debug (отладчик) предназначена для отладки программ, написанных на языке Ассемблера или на машинном языке. Отладчик позволяет вводить в оперативную память целые программы или отдельные команды, выполнять их в автоматическом или пошаговом режиме, а также анализировать результаты их выполнения путем просмотра содержимого ячеек оперативной памяти и регистров процессора. Перечень основных инструкций (команд) отладчика и их функции приведены в таблице 1.1.


Таблица 1.1

Инструкция

Функция

A [адрес]

[адрес] = [смещение] или

[сегмент:смещение]

Ассемблировать набор команд. Нажать “Enter” на пустой строке для окончания ввода.

U [адрес] или

U [диапазон]

Дизассемблировать. Отображает мнемонику кода операции, записанного по указанному адресу или 128 байтов, начиная с последнего адреса после предыдущего ассемблирования.

D [диапазон]

[диапазон]=[адрес, адрес] или

[адрес, L количество байт]

Выдать на экран содержимое памяти из заданного диапазона в шестнадцатеричном (и символьном) виде. Cодержимое каждого байта выдается на экран в виде двух шестнадцатеричных цифр.

Например: D 400,407 или D 400 L8 или D 1000:400,407 - выдать на экран содержимое восьми ячеек памяти, начиная с адреса 400.

E адрес [байты]


Вводит байты или строки в оперативную память.

Например: E 400 12 34 56 78 9A (ввести цифровые данные) или E 400 “ABCDEF” (ввести символьные данные)

F диапазон [байты]

Заполняет память по заданному «образцу байтов».

Например: F 400,407 12 34 (заполнить байты 400...407 данными 1 2 3 4), или F 400,407 “XYZ”, или F 400 L8 “XYZ” (заполнить 8 байтов, начиная с адреса 400, символами XYZ)

G [=адрес] [[адрес]...]

Выполняет команду, адрес которой указан в CS:IP, с возможными контрольными точками в указанных адресах. Например: G 1005 - выполнить с текущего адреса до IP = 1005. При написании инструкции не забудьте знак «равно».

Т [=адрес] [число шагов]

Трассировка. Пошаговое выполнение программы, начиная с адреса, указанного в команде Т или в CS:IP. На каждом шаге выполняется одна команда с выдачей на экран содержимого регистров. Например: T 5 - выполнить пять команд в пошаговом режиме. Т=1000 5

P [=адрес] [число шагов]

Трассировка. Исключить пошаговое выполнение вызова процедур и т.п.

I [порт]

Ввод. Отображает значение, считанное из указанного порта (при вводе).

O [порт]

Вывод байта в указанный порт.

N [диск:] путь [параметры]

Имя. Устанавливает имя файла и параметры командной строки.

L [адрес]

Загрузка. Загружает файл по указанному адресу или в CS:100H

W [адрес]

Запись фрагмента оперативной памяти в виде файла с именем, введенным в команде N. Размер записываемого фрагмента содержится в BX:CX.

R [регистр]

Ввод или отображение значений в регистрах.

Например: R- отобразить содержимое регистра;

R AX - отобразить содержимое регистра АХ или R IP - отобразить содержимое регистра IP.

После отображения содержимого можно ввести новое значение, нажав перевод каретки (после вывода символа “ : ”).

S [диапазон]

Поиск в памяти. Указывает адрес, по которому содержатся указанные байты или строка.

Например: S 1000 L4F “AGA” - найти адрес, по которому содержится строка “AGA”; поиск вести, начиная с адреса 1000 и до адреса 1000 + 4F = 104F.

Q [выход]

Завершение работы с отладчиком.