Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Запускать программу отладчика можно из командной строки, в качестве параметров указывая имя отлаживаемой программы:
> td lab1.exe.
Возможен запуск td.exe без параметров, в этом случае для выбора отлаживаемого файла выбирается в главном меню программы пункт File -> Open и из открывшегося окна выбирается файл (например, lab1.exe). После загрузки на экране будет отображена наша программа (рис.1).
Рисунок 1 – Вид отладчика после загрузки программы.
В окне Watches можно просматривать значения переменных, однако для более детальной отладки программы нужно иметь возможность видеть регистры, флаги и память одновременно. Для такого просмотра программы выберем в меню View->CPU. Экран примет вид, показанный на рис. 2.
Рисунок 2 Вид отладчика в режиме просмотра СPU.
Как видно из рисунка, окно СPU разделено на 5 частей. Переключаться между частями можно либо мышкой, либо клавишей TAB. Самая большая часть – окно кода программы. Первая колонка в этом окне – логический адрес команды в виде сегмент: смещение (например, cs:0000). Вторая колонка – машинный код команды (например, 1Е). Третья колонка – мнемокод команды и ее операнды (например, push ds). Черный треугольник указывает на команду, которая сейчас будет выполняться (но еще не выполнилась!). Регистр IP содержит адрес этой ячейки памяти. В части, правее большого участка окна, показано содержимое регистров общего назначения (ax, bx, cx, dx, si, di, bp), сегментных регистров (cs, ds, es, ss) специальных регистров (ip, sp). В процессе отладки можно менять состояние регистров. Еще правее показан регистр флагов состояния процессора. В нижнем правом углу отображается стек программы. Черный треугольник указывает его вершину (регистр SP содержит адрес этой ячейки памяти). Адреса в окне стека возрастают снизу вверх. Просмотр состояний стека выполняется клавишами управления курсора. Разрешено изменять значения слов в стеке.
Остальную нижнюю область занимает область памяти (Dump). Первая колонка это логический адрес памяти. Далее 8 колонок это значения байт памяти в 16 с.с. Справа записаны строки, в которых символы отображают значения байт памяти в кодах ASCII. В этом окне можно просматривать память сегментов программы. Чаще всего здесь просматривают сегмент данных. Для этого, сделав это окно активным, нужно набрать комбинацию Ctrl-G и в появившемся окне ввести ds:0000 (рис.3). Но делать это нужно после того, как в программе будет выполнена загрузка сегментного регистра ds адресом начала сегмента данных, т.е. после команд
mov ax, data
mov ds,ax.
Рисунок 3 – Выбор начального адреса для просмотра памяти
После выбора начального адреса дамп памяти будет иметь вид, показанный на рис.4. Первый байт дампа 02 – значение переменной а, второй байт FB – значение переменной b=-5 (отрицательные числа хранятся в дополнительном коде), третий байт 11 – значение переменной с=17 (в 16 с.с). Переменная х не инициализирована и в дампе памяти равна нулю. Если выполнить программу до конца, то в этом поле памяти будет находиться окончательный ответ формулы.
Рисунок 4 – В дампе памяти отображен сегмент данных программы
Для переменных, описанных в сегменте данных типом word (dw), дамп памяти будет иметь вид, показанный на рис.5.
Рис. 5 – В дампе памяти отображен сегмент данных программы с переменными типа word
Как видно из рис.5, под каждую переменную отводится два байта, но байты располагаются в обратном порядке. Для удобства просмотра таких переменных можно командой Ctrl-D изменить порядок расположения байтов в словах (word), двойных словах (long), и т.д. (рис.6)
Рисунок 6 – Результат отработки команды изменения формата отображения данных
Пункт меню RUN определяет режимы выполнения (отладки) программы, которые представлены в таблице 1.
Таблица 1 – Режимы выполнения программы.
Дата публикования: 2015-04-10; Прочитано: 215 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!