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

Провести р-трассировку. Для этого сначала выполнить команду:

Р=100

и далее последовательные

Р

После этого провести обычную детальную т-трассировку

Т=100

Т

Q – (Quit) команда выхода из отладчика. Коман­да Q приводит к выходу из отладчика на сле­дующий верхний программный уровень. При этом рабочие файлы не сохраняются. Поэтому перед выполнением команды Q необходимо командой Write записать этот файл на диск.

R – (Register) команда дампа/коррекции регистров. Эта команда позволяет:

  • просматривать со­держимое всех регистров сразу, содержимое флагов и очередную команду, на которую указывает CS:IP;

  • просматривать значения отдельных регистров с возможностью их изменения;

  • просматривать регистр флагов с возможностью его изменения.

Команда

R

дает распечатку всех регистров, а также команды, на которую указывает CS:IP (рис. 2.11).

Команда

R <имя регистра>

дает распечатку содержимого указанного регистра, и затем печатает двоеточие на следующей строке. После этого пользователь может нажать клавишу <Enter> и выйти обратно на монитор команд отладчика, либо за­дать новое значение регистра перед нажатием клавиши <Enter>. В последнем случае старое значение регистра заменится на новое.

Перечислим возможные имена регистров:

AX, BX, CX, DX, SP, ВР, SI, DI, DS, ES, SS, CS, IP, PC,

F (регистр флагов).

При использовании команды

R F

надо учитывать, что кодирование значений флагов производится весьма специфическим образом (в мнемонической кодировке - см. п. 2.1, табл. 2.1). В таблице кодировки разные символьные пары соответствуют значению "1" соответствующего флага (флаг поднят) либо значению, равному "0" (флаг сброшен).

При исполнении команды

R F

значения флагов печатаются в строку в порядке, обрат­ном к порядку в таблице. Сразу же за этим в строке печатается знак черты [ - ], отладчик переходит в состо­яние ожидания ввода с клавиатуры. Если пользователь нажмет только клавишу <Enter>, то значения флагов не изменятся и произойдет возврат на монитор команд отладчика. Однако, перед этим пользователь может на­брать новые значения некоторых флагов согласно кодировочной таблицы. Порядок следования при этом не существенен, запись может быть с пробелами и без них.

Пример.

По команде:

R F

выводится состояние флагов, а при введении , например, после черты NGCYPEDN

NV UP EI PL NZ NA PO NC – NGCYPEDN

будут изменены 2, 4, 7 и 8 флаги (рис. 2.11).

S – (Search) команда поиска упорядоченного набо­ра байтов. Эта команда позволяет провести поиск указанной цепочки байт в заданном диапазоне оперативной памяти и имеет синтаксис:

S <диапазон памяти> <цепочка байтов>

Ответ выдается в виде списка адресов, начиная с которых располагается указанная цепочка байтов.

Пример 1.

Предположим, что необходимо определить встречается ли цепочка "DOS" в первых 32 К оперативной памяти.

Для этого необходимо ввести команду:

S 0:0L8000 44 4F 53

На экран выводятся адреса всех мест, в которых была обнаружена данная последовательность. Появление подсказки [ - ] без адреса говорит о том, что указанная последова­тельность не была обнаружена.

Замечание. Если в качестве начального адреса диапазона выступает только относительный адрес в сегменте, то команда S использует сегмент, указанный в регистре DS.

Пример 2.

Пусть необходимо найти значение 41H (символ "A") в диапазоне CS:100 – CS:110.

Для этого необходима команда

S CS:100 110 41.

Т – (Trace) команда трассировки. Эта команда позволяет исполнить одну или несколько инструкций в режиме трассировки с печатью содержимого всех регистров и мнемоники следующей декодированной исполняемой инструкции. После трассировки текущей инструкции указатель IP сдвигается так, что он указывает на следующую инструкцию.

Формат команды:

T [=<адрес>] [<число инструкций>]

Команда Т производит трассировку одной текущей инструкции, на которую указывает CS:IP, с соответствующим изме­нением IP.

Команда

Т <число>

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

При этом выполнение команды сопровождается выдачей на экран содержимого регистров до момента, когда число выполненных команд превысит значение, указанное в команде. Нажатие клавиш <Ctrl> + <NumLock> останав­ливает вывод данных на экран при отслеживании выполнения команд. Возобновление передвижения данных на экране наступит после нажатия любой клавиши.

Замечания:

  1. Команда Trace блокирует аппаратные прерывания до выполнения команды пользователя, затем они разрешаются после завершения прерывания отслеживания, которое выполняется после команды отслеживаемой программы.

  2. Команду Trace нельзя применять, если отслеживаемый фрагментпрограммы меняет содержание маски прерываний в контроллере 8259 (порт 20Н и 21Н).

  3. Если отслеживается команда INT3, то точка останова устанавливается по адресу команды INT3.