Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по МО.doc
Скачиваний:
51
Добавлен:
01.06.2015
Размер:
354 Кб
Скачать
☆

Экран пользователя

Экран пользователя – это экран вывода вашей программы. Этот экран будет иметь точно такой же вид, какой он имел бы при вы­полнении вашей программы без отладчика (непосредственно под DOS).

Вы можете использовать данный экран для того, чтобы прове­рить, что выводит ваша программа, и соответствует ли это тому, что должно быть на экране. Для переключения в экран пользова­теля выберите пункт меню Window+User Screen (или нажмите Alt+F5).

Меню Run

Команда Run

Команда Run (Выполнение, F9) запускает вашу программу на выполнение. При наступлении одного из следующих событий управление передается отладчику:

  • ваша программа завершила выполнение;

  • обнаружена точка останова с действием прерывания;

  • вы прервали выполнение с помощью клавиш Ctrl+Break.

Команда Go to Cursor

Команда Go to Cursor (Перейти к курсору, F4) выполняет про­грамму до той строки, где находится курсор (в текущем окне Module или области Code окна CPU).

Команда Trace Into

Команда Trace Into (Трассировка вглубь, F7) выполняет одну строку исходного кода или машинную инструкцию. Если текущая строка содержит вызов процедуры или функции, то отладчик вы­полняет трассировку этой процедуры. Однако если текущим ок­ном является окно CPU, то выполняется одна машинная инструкция.

Команда Step Over

Команда Step Over (Шаг с пропуском, F8) выполняет одну строку исходного кода или машинную инструкцию, минуя трас­сировку вызываемой процедуры или функции. При этом обычно выполняется одна строка исходного текста программы. Однако если текущим окном является окно CPU, то выполняется только одна машинная инструкция.

Когда эта команда выполняется для одной машинной инст­рукции, Турбоотладчик интерпретирует некоторые инструкции, как одну, даже если они приводят к выполнению несколь­ких инструкций:

  • call – вызов подпрограммы;

  • int – вызов прерывания;

  • loop, loopz, loopnz – управление циклом;

  • rep, repnz или repz, за которыми следуют инструкции cmps, lods, movs, scas, stos.

Команда Instruction Trace

Команда Instruction Trace (Трассировка инструкций, Alt+F7) вы­полняет одну инструкцию. Ее можно использовать, когда вы хотите трассировать прерывание, или когда вы находитесь в окне Module и хотите выполнять трассировку процедуры или функции, которая находится в модуле без отладочной информации (например, в библиотечной подпрограмме).

Команда Program Reset

Команда Program Reset (Сброс программы, Ctrl+F2) перезагру­жает отлаживаемую вами программу с диска.

3. Пример выполнения работы

Дан массив из десяти слов, содержащих целые числа. Требу­ется найти максимальное значение.

Текст программы:

model SMALL

stack 100h

dataseg

MAX dw ?

MASS dw 10h,20h,30h,5h,40h,15h,20h,70h,35h,34h

codeseg

startupcode

lea BX, MASS ; Загрузить адрес массива

mov CX, 10 ; Установить счетчик

mov AX, [BX] ; Первый элемент массива в аккумулятор

BEG: cmp [BX], AX ; Сравнить текущий эл. массива с макс.

jle NO ; он меньше

mov AX, [BX] ; он больше

NO: add BX, 2 ; Следующий элемент массива

loop BEG ;

mov MAX, AX

QUIT: exitcode 0

end

Программа с помощью текстового редактора заносится в файл PRIMER.ASM. Затем выполняется трансляция и компоновка с помощью команд:

tasm primer /L /ZI

tlink primer /V

Запуск программы primer под отладчиком.

td primer.exe

Простейший пример использования отладчика: в окне Module или CPU установить курсор на строку с меткой QUIT и выполнить команду Go to Cursor. После останова посмотреть содержимое области данных.

Для того что бы просмотреть область данных, следует выпол­нить следующие действия:

  • открыть окно Dump или сделать активной одноименную панель окна CPU;

  • с помощью пункта GoTo локального меню окна (или панели) выполнить позиционирование по адресу DS:0. Перед позицио­нированием необходимо обеспечить правильное значение реги­стра DS, как правило, это означает выполнение первых двух строк программы по загрузке регистра DS адресом сегмента данных;

  • с помощью пункта DisplayAs локального меню окна (или па­нели) обеспечить просмотр данных в формате слов. Первое слово сегмента данных со смещением 0 – это переменная max, далее следует десять слов – числа массива, и далее – мусор.

Можно попробовать запустить программу в пошаговом режиме (команда Trace Into), следя за тем, как изменяются значения реги­стров AX, BX, CX.

Рекомендуется запустить программу заново (команда Program Reset), изменить данные (окно Dump, команда Change), предсказать результат для новых данных и, выполнив программу (команда Go to Cursor) до метки QUIT, сравнить ожидаемый резуль­тат с реальным.

Выход из отладчика в DOS – Alt+X.