- •Отладчик программ 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.
- •Литература
1.2. Навигация по экрану.
После открытия основного экрана (см. рис. 1) AFD готов к взаимодействию с пользователем. Пользователь же имеет возможность воздействовать на AFD двояко :
1) путем формирования командных строк AFD;
2) путем реализации экранных функций с применением средств навигации курсора и редактирования.
О командных строках мы поговорим позже (см. п.2), а пока обсудим основные экранные функции - они наиболее простые.
Для изучения этих функций рассмотрим формат экрана. Рабочий экран отладчика (см. рис. 2) разбит горизонтальными и вертикальными линиями на ряд областей - окон. Нижняя строка экрана является строкой-подсказкой, раскрывающей назначение "горячих клавиш" F1 - F10.
В каждый момент времени одно из окон является активным. Признаком активности того или иного окна является наличие в нем мигающего курсора. Сначала активным является окно командной строки CMD. Для перемещения курсора между окнами и, следовательно, смены активного окна необходимо воспользоваться "горячими клавишами" (см. строку - подсказку):
F7 (up) - вверх;
F8 (dn) - вниз;
F9 (le) - влево;
F10 (ri) - вправо.
Таким образом, пользователь может сделать активным практически любое окно экрана.
Помимо этого пользователь имеет возможность перемещать курсор внутри активного окна. Этой цели служат клавиши навигации (стрелки: → ← ↓ ↑). Установив курсор на некоторый элемент активного окна, пользователь может изменить этот элемент, вводя с клавиатуры его новое значение.
Получив общее представление о возможностях навигации по окнам, рассмотрим содержимое окон.
1.3. Окно регистров.
Самое верхнее окно (назовем его окном регистров) показывает текущее состояние регистров процессора I8086/88 [2]. Левая колонка окна отображает содержимое спаренных регистров АХ, ВХ, СХ, DХ и, соответственно, составляющих их (но не поименнованных на экране) пар АН и АL, ВН и ВL, СН и СL, DH и DL.
Например, если АХ = 1234, то однозначно АН = 12(старшая часть регистра АХ) и AL = 34(младшая часть регистра АХ).
Следующие две колонки показывают содержимое индексных регистров SI и DI, базового регистра ВР, указателя стека SP, а также сегментных регистров CS, DS, ES и SS. В верхней строке четвертой колонки отображается текущее состояние программного счетчика IP.
В правой части окна показано содержимое флагов процессора OF, DF, IF, SF, ZF, AF, PF и CF. При этом каждый флаг представлен двояко: индивидуально и в составе регистра FLAGS.
Таким образом, в окне регистров пользователь может наблюдать и редактировать состояние всех регистров и флагов процессора.
Помимо рассмотренных в окно регистров введены дополнительные элементы, не входящие в состав процессора, но упрощающие работу в среде отладчика AFD. К таким элементам относятся колонка Stack, показывающая текущее состояние верхушки стека программы (4 слова, размещенные по адресу SS:SP) и два дополнительных сегментных регистра HS и FS. Последние регистры используются для фиксации значения сегментных адресов вне зависимости от хода программы (ведь значения сегментных регистров процессора CS, DS, ES и SS по ходу программы могут изменяться).