Работа с отладчиком программ turbo debugger
Отладчик TURBO DEBUGGER позволяет по шагам проследить процесс выполнения программы на уровне регистров процессора и ячеек памяти. Внешний вид окна отладчика представлен на рисунке 5.1.
Нижнее меню в отладчике - меню функциональных клавиш.
Значения некоторых функциональных клавиш:
1) F7 – трассировка программы.
2) F8 – выполнение программы по шагам т.е. по программе перемещается полоса выбора (синяя), и будет выполнена та команда, на которой эта полоса размещена.
Примечание.Трассировка по F7 отличается от пошагового выполнения по F8 тем, то при наличии подпрограмм при трассировке будет по шагам выполняться не только основная программа, но и каждая подпрограмма, которая вызывается из основной программы. А при пошаговом выполнении по F8 по шагам выполняется только основная программа, а каждая подпрограмма выполняется как единый оператор.
Рисунок 5.1 – Окно отладчика
После выполнения команды на экране появляется содержимое регистров, флагов и адрес следующей на очереди команды (соответствующие регистры подсвечиваются белым цветом).
3) F10 - выход в главное, верхнее меню.
Запускаются команды или с помощью мыши или с помощью клавиш перемещения курсора на клавиатуре. Курсором выбирается нужная команда и нажимается клавиша ENTER или нажимается левая кнопка мыши, если выбор выполнялся с помощью мыши. Выбор группы верхнего меню также может выполняться с помощью мыши или с клавиатуры (ALT+ горячая клавиши соответствующей группы).
В верхнем меню по команде FILE можно открыть любой файл, если он не был указан в команде TD при запуске отладчика.
По команде VIEW появляется еще меню, в котором DUMP - команда получения содержимого памяти по соответствующему адресу заданному в регистре DS, т.е. содержимое данных определенных в нашей программе. Данные начинаются с нулевого относительного адреса. Эти данные можно изменять.
REGISTERS - после запуска этой команды появляется окно с регистрами, и данные, находящиеся в этих регистрах, можно изменять. Курсором или мышкой выбрать изменяемый регистр и перевести курсор на изменяемое данное, на клавиатуре в появившемся окне набрать новое данное и нажать ENTER.
Выход из отладчика по нажатию ALT+X.
Выход из любой команды по нажатию клавиши ESC.
Закрыть появившееся окно можно или нажать ALT+F3 или надо перевести мышкой курсор в левый угол окна на зеленый квадрат и нажать левую кнопку мыши.
Верхнее и нижнее меню обрамляют отдельные окна, содержащие следующую информацию.
1) О сегменте кода текущей программы. В этом окне отражается смещение команды относительно начала сегмента кода (регистра CS), код команды, мнемоника команды и операнды в шестнадцатеричной системе счисления.
2) О сегменте данных текущей программы. В этом окне отражается смещение данных относительно начала сегмента (регистра DS), их представление в шестнадцатеричном виде и в виде символа таблицы ASCII.
3) О сегменте стека текущей программы. В этом окне отражается смещение вершины стека (регистра SP) относительно начала сегмента стека (регистра SS) и элементы стека в шестнадцатеричном виде.
4) О регистре флагов процессора. В этом окне перечислены все флаги (кроме TF) и в процессе выполнения команд программы отображается их реакция на выполненную команду.
5) О регистрах микропроцессора. В этом окне перечислены регистры процессора и в процессе выполнения команд программы отображается их содержимое после очередной выполненной команды.
Анализируя информацию из этих окон, можно делать вывод о правильности выполнения текущей программы.
Далее рассмотрим, что представляет собой программа на языке ассемблера.