Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kratkie_otvety_ekzamen_CP_2011-12.docx
Скачиваний:
19
Добавлен:
14.04.2019
Размер:
132.13 Кб
Скачать

12. Отладка ассемблерных программ. Выполнение ассемблерных программ.

Отладчики (CodeView, Debug, Turbo Debugger) - специальные программы, входящие в состав пакетов, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера

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

td <имя программы>

На экране появится кадр отладчика, в котором видны два окна - окно Module с исходным текстом отлаживаемой программы и окно Watches для наблюдения за ходом изменения заданных переменных в процессе выполнения программы.

Для нормальной работы с Turbo Debugger .exe файл должен содержать отладочную информацию. Для этого при трансляции исходного файла транслятором TASM нужно задать ключ /zi, а при компоновке компоновщиком TLINK задать ключ /v. Это необходимо чтобы компоновщик создавал таблицу соответсвия адресов (смещений) и имен (меток). Это позволит при работе с Turbo Debugger видеть не адреса, а вами заданные имена. Если этого не сделать, то при запуске Turbo Debugger выдаст сообщение "Program has no symbol table" (но это не помешает работать с отладчиком). В начале работы Turbo Debugger открывает окно "CPU" (если в той же директории будет и файл с исходным текстом программы то Turbo Debugger откроет его, поэтому чтобы переключится в окно "CPU" необходимо выбрать меню VIEW-CPU), в котором можно просмотреть код программы, его ассемблерный мнемокод (а при работе с дополнительными возможностями - имена, определенные в исходном тексте программы и другую полезную информацию), состояние всех 16-разрядных регистров, стек программы, а также один из сегментов программы (выбираемый по желанию, по умолчанию устанавливается указываемый DS). Для просмотра другой области памяти можно из меню "View" открыть окно "Dump". По умолчанию данные показываются в 16-ричном и текстовом форматах, другой формат можно выбрать после нажатия CTRL+D. Для перехода к новому адресу (и к другому сегменту) используется команда "GO" при помощи нажатия CTRL+G. Для просмотра 32-разрядных регистров нужно из меню "VIEW" открыть окно "REGISTERS", а затем, нажав ALT+F10, выбрать из меню пункт "Registers 32-bit ON". Команда "RUN" (F9) выполняет программу вплоть до ее завершения, команда "TRACE" (F7) обеспечивает пошаговое исполнение, при этом осуществляется вход во все подпрограммы по командам CALL и INT, а команда "STEP OVER" (F8) не входит в подпрограммы. Команда "HERE" (F4) выполняет программу до команды, на которую указывает курсор. В коде программы можно расставить контрольные точки останова для команд "RUN" и "HERE". Они устанавливаются и удаляются в строке, на которую указывает курсор, по команде "TOGGLE/DELETE BREAKPOINT" (F2). Тогда Отладчик будет останавливать выполнение программы при попадании на контрольную точку.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]