- •Отладчик программ afd
- •Содержание
- •Введение
- •1. Рабочая среда отладчика.
- •1.1. Запуск отладчика и выход из среды.
- •1.2. Навигация по экрану.
- •1.3. Окно регистров.
- •1.4. Окна памяти.
- •1.5. Окно командной строки.
- •1.6. Окно ассемблера.
- •1.6.1.Просмотр программы.
- •1.6.2. Пошаговое исполнение.
- •1.6.3.Ассемблирование.
- •2. Система команд.
- •2.1. Загрузка файлов.
- •2.2. Управление программами.
- •2.3. Управление регистрами.
- •2.4. Управление памятью.
- •2.5. Управление портами.
- •2.6. Управление режимами.
- •2.7. Трассировка
- •2.8. Протоколирование.
- •2.9. Завершение работы.
- •3. Контрольные точки
- •3.1. Формат экрана контрольных точек
- •3.2. Окно контрольных точек
- •3.3. Управление окном
- •3.4. Вспомогательные функции
- •Приложение п1. Горячие клавиши Рабочий экран
- •Экран контрольных точек
- •Приложение п2 Основные сообщения отладчика
- •Invalid BreakPoint number.
- •Invalid operand type or size.
- •Invalid register.
- •Value missing.
- •Литература
2.2. Управление программами.
G {start ad.}{,break ad.} |
Запуск программы с текущего или заданного (start ad.) адреса. Допускается установка одной точки останова (break ad.). По умолчанию используется сегмент CS.
Для остановки запущенной программы используйте "горячую клавишу" CTRL-ESC.
В случае необходимости пользователь имеет возможность дополнительно установить 8 контрольных точек. Более подробно об этом сказано в разделе 3 данного документа.
Примеры.
G - Запуск программы с текущего адреса
G 100 - Запуск программы с адреса CS:0100
G,500 - Запуск программы с текущего адреса и останов по адресу CS:0500
G 100,500 - Запуск программы с адреса CS:0100 и останов по адресу CS:0500
A {addr} |
Включения режима ассемблирования с текущего или заданного адреса. По умолчанию используется сегмент CS. В режиме ассемблирования становится активным окно ассемблера. При этом допускается редактирование программы путем занесения в память новых команд ассемблера. Текст каждой новой команды вводится в строку, отмеченную маркером, и ассемблируется по нажатию клавиши ENTER.
Выход из режима ассемблирования реализуется посредством "горячей клавиши" CTRL-HOME.
Примеры.
А - включить режим ассемблирования с текущего адреса.
А 100 - включить режим ассемблирования с адреса CS:0100.
D addr |
Отображение дизассемблированного кода программы с заданного адреса addr. Дизассемблированый код отображается в окне ассемблера. По умолчанию используется сегмент CS.
Примеры.
D CS:100 - Поместить в окно ассемблера дизассемблированный код, начиная с адреса CS:100.
D 100 - То же самое, что и предыдущая команда.
PD addr, length {, fspec} |
Печать дизассемблированного кода, начиная с адреса addr. По умолчанию используется сегмент CS. Параметр length задает количество дизассемблированных команд. При необходимости результат дизассемблирования может быть помещен в файл fspec.
Примеры.
PD 100,10 - Напечатать на принтере 10 дизассемблированных команд, расположенных с адреса CS: 0100.
PD 100,10,pr.das - То же самое, но результат не печатать, а поместить в файл pr.das
2.3. Управление регистрами.
{R} reg = value |
Установка регистров и флагов.
Примеры.
R AX=0000 - Очистка регистра AX.
AX=0 - То же самое, что и предыдущая команда.
BL=3C - Установка регистра BL.
CF=1 - Установка флага CF.
FL=0000 - Очистка всех флагов.
2.4. Управление памятью.
M n addr [reg] |
Отображение содержимого памяти в окне n (n=1 или n=2). Начальный адрес отображаемой области памяти задается явно параметром addr, либо косвенно содержимым регистра [reg]. По умолчанию используется сегмент DS.
Примеры.
M 1 DS:1000 - Отобразить в окне 1 содержимое сегмента DS, начиная со смещения 1000.
M 1 1000 - То же самое, что и предыдущая команда.
М 1 [SI] - Отобразить в окне 1 содержимое сегмента DS, начиная со смещения, хранящегося в регистре SI.
W fspec, addr, length |
Запись области данных в файл fspec. Здесь addr - начальный адрес области в памяти, length - длина области в байтах (<=64К).
По умолчанию используется сегмент DS.
Примеры.
W x.dat,DS:0200,5000 - Записать в файл x.dat область данных, начинающуюся с адреса DS:0200 и содержащую 5000 байт.
W x.dat,0200,5000 - То же самое, что и предыдущая команда.
PH addr, length {, fspec} |
Печать содержимого области памяти в HEX и ASCII форматах (каждый байт отображается шестнадцатиричным и символьным кодом).
Здесь addr - начальный адрес области памяти. По умолчанию используется сегмент DS. length - количество байт. fspec- имя создаваемого файла.
Примеры.
PH 100,10 - Напечатать на принтере содержимое области памяти длиной 10 байт. Начальный адрес области - DS:0100.
PH 100,10,mem.txt - То же самое, что и предыдущая команда, но содержимое области не печатается, а заносится в файл mem.txt.
P addr, string |
Запись в память по адресу addr кода string. По умолчанию используется сегмент CS.
Примеры.
P DS:100,FF - Записать в сотую ячейку памяти сегмента DS код FF.
P 100,'Hello!'- Записать в память строку 'Hello!'. Строку разместить с сотого адреса сегмента CS.
F addr, repeater, string |
Заполнение памяти кодом string. По умолчанию используется сегмент DS. Параметр repeater задает количество кодов, передаваемых в память.
Примеры.
F 100,5,'HELLO!' - поместить в память, начиная с адреса DS:0100, пять строк 'HELLO!'.
F CS:0,1000,0 - очистить 1000 начальных ячеек сегмента CS путем записи в них кода 00.
S {{addr} , string |
Поиск кода string в памяти с указанного адреса. По умолчанию используется сегмент CS (адрес CS:0000). Найденный код отражается в окне 2 данных. При этом сегментный адрес найденного кода находится в сегментном регистре отладчика HS.
Продолжение поиска - команда S без параметров.
Примеры.
S,0000 - найти в памяти код 0000, начиная с адреса CS:0000.
S DS:100,'Hello!' - найти в памяти строку 'Hello!', начиная с адреса DS:0100.
S - продолжить поиск, назначенный предыдущей командой S.
С addr, addr, length |
Сравнение двух областей памяти длиной length байт. По умолчанию используется сегмент DS.
Если области не совпадают, их содержимое отображается в окнах 1 и 2.
Пример.
C CS:100,DS:100,100 - Сравнить области памяти сегмента CS (начальный адрес 0100) и сегмента DS (начальный адрес 0100). Длина сравниваемых областей - 100 байт.
CO s-addr, d-addr, length |
Копирование данных из одной области памяти в другую.
Здесь
s-addr - начальный адрес области-источника информации;
d-addr - начальный адрес области-приемника информации;
length - длина копируемой области в байтах.
По умолчанию используется сегмент DS.
Примеры.
CO DS:100,DS:200,50 - Скопировать область данных длиной 50 байт с адреса DS:0100 на адрес DS:0200.
СO 100,200,50 - То же самое, что и предыдущая команда.