Программа 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 [выход] |
Завершение работы с отладчиком. |