результат
помещается в регистр dl.
data
para public "data"
данных
db "Введите две
ends
stk segment stack
db 256
;сегмент стека
stk ends
code segment para public "code"
сегмента кода
main
процедуры main
сегмента данных в регистр ах
mou
в ds
mou
mou
message
int
регистр ах
mou
в регистр ah
Рис. 6.2. Окно Module отладчика TD
Процесс разработки программы
вначале могут идти описания процедур, макрокоманд, и в этом случае без такого
явного указания на первую исполняемую команду просто не обойтись.
Основную часть главного окна отладчика обычно занимают одно или несколь-
ко дополнительных окон. В каждый момент времени активным может быть толь-
ко одно из них. Активизация любого окна производится щелчком мышью в любой
его видимой точке.
Управление работой отладчика ведется с помощью системы меню. Имеются
два типа таких меню:
т главное меню — находится в верхней части экрана и доступно постоянно (вызов
меню осуществляется нажатием клавиши F10, после чего следует выбрать нуж-
ный пункт меню);
контекстное меню — для каждого окна отладчика можно вызвать его собствен-
ное меню, которое учитывает особенности этого окна, щелкнув в окне правой
кнопкой мыши (либо активизировав окно и нажав клавиши
Теперь можно проверить правильность функционирования нашей программы.
Специфика программ на ассемблере состоит в том, что делать выводы о пра-
вильности их функционирования можно, только отслеживая работу на уровне про-
цессора. При этом нас будет интересовать прежде всего то, как программа исполь-
зует процессор и изменяет состояние его ресурсов и компьютера в целом.
Запустить программу в отладчике можно в одном из четырех режимов:
• безусловного выполнения;
выполнения по шагам;
ii выполнения до текущего положения курсора;
выполнения с установкой точек прерывания.
Рассмотрим эти режимы подробнее.
Режим безусловного выполнения программы целесообразно применять, когда
требуется посмотреть на общее поведение программы. Для запуска программы
в этом режиме необходимо нажать клавишу F9. В точках, где необходимо ввести
данные, отладчик, в соответствии с логикой работы применяемого средства ввода,
будет осуществлять определенные действия. Аналогичные действия отладчик вы-
полнит при выводе данных. Для просмотра или ввода этой информации можно
открыть окно
(выбрав в меню команду Window User screen или на-
жав клавиши Alt+F5). Если программа работает правильно, то
этом отладку можно
и закончить. В случае, если возникают какие-то проблемы или нужно более де-
тально изучить работу программы, применяются три следующих режима отладки.
Режим выполнения программы до текущего положения курсора целесообразно
использовать в том случае, если интерес представляет только правильность функ-
ционирования некоторого участка программы. Для активизации этого режима не-
обходимо установить курсор на
строку программы и нажать
F4.
Программа запустится и остановится на отмеченной команде, не выполнив ее. Далее
при необходимости вы можете перейти в пошаговый режим.
В режиме выполнения программы с установкой точек прерывания программа
после запуска будет останавливаться в строго определенных точках прерывания
(breakpoints). Перед выполнением программы необходимо установить эти точки
Глава 6. Первая программа
в программе, для чего следует перейти к нужной строке и нажать клавишу F2. Вы-
бранные строки подсвечиваются. Установленные ранее точки прерывания можно
убрать — для этого нужно повторно перейти к нужной строке и нажать клавишу F2.
После установки точек прерывания программа запускается клавишей F9 (см. ра-
нее режим безусловного выполнения). На первой точке прерывания программа
остановится. После этого можно посмотреть состояние процессора и памяти, а за-
тем продолжить выполнение программы. Сделать это можно в пошаговом режиме
или до следующей точки прерывания.
Режим выполнения программы по шагам применяется для детального изучения
ее работы. В этом режиме выполнение программы прерывается на каждой машин-
ной (ассемблерной) команде. При этом становится возможным наблюдение за ре-
зультатом исполнения команд. Для активизации этого режима нужно нажать
клавишу F7 (Run Trace into) или F8 (Run Step over). Обе эти клавиши активизиру-
ют пошаговый режим; различие их проявляется в том случае, когда в потоке ко-
манд встречаются команды перехода в процедуру или на прерывание. При нажа-
тии клавиши F7 отладчик осуществит переход к процедуре или прерыванию
и остановится. Если же нажимается клавиша F8, то вызов процедуры или преры-
вания отрабатывается как одна команда, и управление передается следующей ко-
манде программы. Здесь нужно отметить, что кроме окна Module при работе в этом
режиме полезно использовать окно CPU, вызвать которое можно через главное меню
командой View CPU.
Окно CPU отражает состояние процессора и состоит из пяти подчиненных окон.
В окне с исходной программой в
виде представлена та
же самая программа, что и в окне Module, но уже в машинных кодах. Пошаговую
отладку можно производить прямо в этом окне; строка с текущей командой
подсвечивается.
В окне регистров процессора (Registers) отражается текущее содержимое реги-
стров (по умолчанию — только регистров процессора
Чтобы увидеть
регистры i486 или Pentium, нужно задать режим их отображения. Для этого
щелкните правой кнопкой мыши в области окна регистров и выберите в кон-
текстном меню команду Registers 32-bit — Yes.
В окне флагов (Flags) отражается текущее состояние флагов процессора в соот-
ветствии с их мнемоническими названиями.
9 В окне стека (Stack) отражается содержимое памяти, выделенной для стека.
Адрес области стека определяется содержимым регистров SS и SP.
Окно дампа оперативной памяти (Dump) отражает содержимое области памяти
по адресу, который формируется из компонентов, указанных в левой части окна.
В окне можно увидеть содержимое произвольной области памяти. Для этого
нужно в контекстном меню выбрать нужную команду.
Заметим, что окно CPU, по сути, отражает видимую часть программной модели
процессора. Некоторые из подчиненных окон окна CPU можно вывести на экран
отдельно. Хотя удобнее работать с исходным текстом в окне Module, чем с его ди-
вариантом в окне CPU, часто есть необходимость отслеживать
состояние процессора с помощью подчиненных окон окна CPU. Совместить воз-
Процесс разработки программы
можности окон Module и CPU можно, выбрав в меню View имена нужных подчинен-
ных окон окна CPU.
Прервать выполнение программы в любом из режимов можно, нажав клавиши
Ctrl+F2.
Do'stlaringiz bilan baham: |