Четвертый Borland C++ и его окружение

       

Область кода


В левой части области кода выводятся адреса дизассемблированных инструкций. Для 16-разрядного кода они имеют вид "сегмент:смещение", а для 32-разрядного это 32-разрядные адреса. Стрелка (>) справа от адреса памяти указывает текущий адрес программы (следующую выполняемую инструкцию). Справа выводится шестнадцатиричный машинный код с соответствующей дизассемблированной

инструкцией. Глобальные идентификаторы выводятся в виде имени,

статические - в виде имени модуля с символов # и именем идентификатора, а номера строк представлены как имя модуля, # и номер

строки. Клавиша F2 позволяет устанавливать/отменять точки останова.

Меню SpeedMenu области кода содержит команды, позволяющие

перемещаться по ней и ассемблировать вводимые инструкции. TDW

имеет дополнительную команду ввода-вывода, а TD32 - команды Threads и OS Exceptions.



Goto

Вам выводит окно Enter Address to Position To для ввода нового адреса, на который вы хотите перейти. Вы можете ввести адрес, выходящий за пределы программы, что позволяет проверить базовую систему ввода-вывода (BIOS), внутренние области DOS и Windows.
Origin

Позиционирует вас на текущий адрес программы. Используется

для перемещения.

Follow

Позиционирует область кода по целевому адресу текущей подсвеченной инструкции. Используется в сочетании с инструкциями передачи управления (CALL, JMP, INT) и условного перехода (JZ, JNE, LOOP и др.).
Caller

Позиционирует вас на инструкцию, вызвавшую текущее прерывание или подпрограмму. Если текущая подпрограмма прерывания занесла данные в стек, то Turbo Debugger может не иметь возможности

определить, откуда она вызвана.

Previous

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

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

хотите найти. Будьте внимательны при поиске инструкций. Следует

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

в которые они ассемблируются, в зависимости от того, где в памяти

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

не представляет:

PUSH DX

POP [DI+4]

ADD AX,100

<

а попытка поиска следующих инструкций может привести к непредсказуемым результатам: JE 123 CALL MYFUNC LOOP $-10 Вместо инструкции можно вводить также список байт.
View Source Для вывода исходного кода, соответствующего текущей дизассемблированной инструкции открывает окно Module. Если соответствующего исходного кода нет (например, вы находитесь в коде Windows, или отсутствует отладочная информация), вы просто остаетесь в области кода.
Mixed Позволяет выбрать один из трех способов вывода на экран дизассемблированных инструкций и исходного кода:
No (Нет) Исходный код не выводится, выводятся только дизассемблрованные инструкции.
Yes (Да) Перед первой дизассемблированной инструкцией, со ответствующей данной строке, выводится строка исходного кода. Область устанавливается в данный режим, если исходный модуль написан на языке высокого уровня.
Both (Оба) Для тех строк, которым соответствует исходный код, дизассемблированные строки заменяются строками исходного текста. В противном случае выводятся дизассемблированные инструкции. Используйте этот режим, когда вы отлаживаете модуль на ассемблере и хотите видеть строку исходного текста, а не соответствующую дизассемблированную инструкцию. Область устанавливается в данный режим вывода, если текущим модулем является исходный модуль ассемблера.
Thread Позволяет выбрать нить, выполнение которой вы хотите отладить. Открывает диалоговое окно Pick a Thread, из которого вы можете выбрать конкретную нить программы.
OS Exceptions Позволяет выбрать исключительные ситуации операционной системы, которые вы хотите обрабатывать. Подробнее об этом рассказывается ниже.
New EIP Изменяет текущий адрес программы, подсвеченный в области кода (в TDW команда называется New CS:IP). При возобновлении выполнения программы оно начинается по этому адресу. Эта команда полезна, когда нужно пропустить некоторые машинные инструкции, но использовать ее нужно аккуратно, так как она может вызвать нестабильность системы.
Assemble



Ассемблирует инструкцию, заменяя инструкцию по текущему адресу. Используется для внесения в программу минимальных изменений. Команда выводит диалоговое окно Enter Instruction to Assemble, где вы можете ввести выражение для ассемблирования. Если вы начнете набор в области кода, данная команда вызывается автоматически.
I/O Эта команда TDW считывает или записывает значения в пространство адресов ввода-вывода ЦП и позволяет вам проверить содержимое регистров ввода-вывода и записать в них значения. При этом выводится меню, показанное ниже:
In byte Ввести байт из порта
Out byte Вывести байт в порт
Read byte Прочитать байт из порта
Write byte Записать байт в порт Учтите, что эти команды могут нарушить нормальную работу устройств.
Содержание раздела