Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Основные команды отладчика AFD




Отладчик AFD является очень простым и удобным в использовании средством отладки программ. Он чрезвычайно компактен (размер файла afd.com порядка 65К), но при этом предоставляет достаточно большой спектр услуг и предназначен для решения широкого круга задач, включая следующие:

- разработка и отладка программ на языке ассемблера;

- дизассемблирование COM и EXE файлов;

- изучение работы программ и их модификация;

- изучение текущего содержимого оперативной памяти, регистров и т.д.

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

Команды отладчика выполняются после нажатия клавиши ENTER.

Рассмотрим основные команды отладчика:

А {addr (адрес)} - команда модифицирования ассемблерного кода. Позволяет редактировать команды программы, вводить программу с клавиатуры. Выход из режима ввода программы осуществляется нажатием клавиш перемещения курсора, F8, F7. Если адрес addr, модифицируемой команды не указан, изменения производятся в текущей (выделенной) строке. Если команда задана с параметром (адресом), текущей становится инструкция с данным адресом.

G {start ad.(старт. адр.)}{, break ad.(адрес останова)} - команда запуска программы. Выполняет программу, начиная с текущей точки (если в команде отсутствует первый операнд) или с адреса start ad. (“ старт. адр. ”. Дополнительно может быть установлена точка останова. Сегментом по умолчанию для адреса останова break ad. Является CS. Выполнение программы может быть остановлено нажатием CTRL-Esc.

QUIT { R {esident}} - команда выхода из отладчика и возврата в DOS. При выходе из отладчика рабочие файлы не сохраняются. Опция R делает программу AFD резидентной, при этом AFD может быть вызвана нажатием CTRL-Esc.

L fspec (имя файла) {param}{,addr} - команда загрузки файла в память. Если в команде указывается адрес addr, программа располагается в памяти с данного адреса, в противном случае адрес “назначения” определен по умолчанию (CS:0100). После завершения операции загрузки программы в память, число загруженных байт отображается в регистрах BX-CX.

M n addr | [reg] – команда отображения в окне памяти n сегмента памяти, где n может принимать значения 1 или 2 в зависимости от того, какое окно выбрано. Отладчик предоставляет в распоряжение пользователя два окна, в котором могут отображаться различные участки памяти. Оба эти окна располагаются на основном экране – одно справа, другое внизу экрана. Сегмент по умолчанию указывается в самом окне. Для изменения адреса отображаемого участка можно использовать содержимое регистра, например, SI, AX и т.п.. Так, можно записать команду M 1 [BX]. Если при этом в регистре BX содержится значение 13а5, то в правом окне отображения памяти будут выведены содержимое ячеек, начиная с указанного адреса. Ту же операцию можно выполнить командой M 1 13а5.

MO {DE} M{ONO} | C{OLOR} | A{LTERN} ON | OFF - команда обеспечения настройки экрана. Позволяет включить альтернативный (скрытый) экран для отображения данных, выдаваемых исполняющейся программой. После выполнения команды MO A ON переключение между основным и альтернативными экранами осуществляется с помощью клавиши F6. Если команда задается с параметром M, используется монохромный адаптер, параметр С позволяет использовать цветной адаптер. Если задать команду без параметров, будут выданы действующие установки экрана приложения.

W fspec, addr, length – команда записи данных из сегмента памяти в файл fspec. Адрес начала записываемого фрагмента памяти определяется параметром addr. Cегментный адрес по умолчанию находится в DS. Число записываемых байт, указывается в length, оно задается в шестнадцатеричном формате.

{ R } reg=value – команда установки значения регистра. Если необходимо установить все доступные биты флагового регистра FL, следует дать команду FL=value, например: FL=FE. Здесь флаговый регистр устанавливается шестнадцатиразрядным значением. Можно этой же командой устанавливать отдельные биты этого регистра, при этом следует обращаться к ним по именам: OF, DF, IF, SF, ZF, AF, PF, CF. Например, CF=1. Чтобы задать значение регистра AX нужно выполнить команду AX=12fd.

D addr – команда отображения кодов программы. Стартовый адрес дезассемблированных кодов указывается в параметре addr. Сегментный адрес по умолчанию содержится в регистре CS. CS:n – указывает последнюю выполненную инструкцию. Дезассемблированные коды отображаются в окне программы, которое располагается в центре основного экрана. В самой левой колонке приводятся адреса инструкций, далее, в следующей колонке, следуют машинные коды и затем - ассемблерные представления этих кодов.

CO s-addr, d-addr, length – команда копирования содержимого области памяти с начальным адресом s-addr в область с адресом d-addr, число копируемых байт определяется значением length. Сегментный адрес по умолчанию хранится в регистре DS.

I addr – команда ввода данных из порта ввода/вывода. В качестве адреса addr может быть указан любой 8-ми битный или 16-ти битный адрес или регистр.

O addr, value – команда вывода значения value в порт, адрес которого определяется параметром addr. В качестве значения value может быть слово или байт.

P addr, string – команда изменения содержимого памяти в кодовом сегменте (программной памяти). Изменения производятся с адреса addr, второй операнд string определяет сами изменения. Сегмент по умолчанию в CS.

F addr, repeater, string – команда заполнения фрагмента памяти строкой string, указаной в качестве третьего операнда. Строка дублируется repeater раз. Адрес сегмента по умолчанию в DS.

S {{addr}, string} - команда поиска данных в памяти. Если адрес addr в команде не указан, он берется как CS:0. В CS – адрес сегмента по умолчанию. Если данные найдены, они отображаются в окне памяти М2 отладчика. String – строка поиска. Если команда S задана без параметров, поиск повторяется с использованием прежних значений.

C addr1, addr2, length – команда сравнения двух областей памяти. Если сравниваемые области не совпадают, в окне памяти М1 отображается область, определяемая первым параметром addr1, а область, начинающаяся с адреса addr2,отображается в окне памяти М2.

BW fspec – команда записи точек останова в файл, определяемый параметром fspec.

BL fspec – команда загрузки точек останова из файла, определяемого параметром fspec.

PH addr, length {,fspec}- команда печати шестнадцатеричных и ASCII данных из памяти, начиная с адреса addr. Число распечатываемых ячеек определяется параметром length. Адрес сегмента памяти по умолчанию в DS. Если параметр fspec не определен, вывод будет осуществляться на принтер.

PD addr, length {,fspec}- команда печати дезассемблированных кодов из памяти, начиная с адреса addr. Число распечатываемых инструкций определяется параметром length. Адрес сегмента памяти по умолчанию в СS. Если параметр fspec не определен, вывод будет осуществляться на принтер.

 

- fspec определяет имя файла, наименованного в соответствии с соглашениями DOS. Для команды L расширением по умолчанию является “ exe ”;

- параметр addr задает адрес в формате seg:offset. Если сегмент seg не определен, используется значение по умолчанию. Offset может задаваться по разному: это может быть конкретное значение или результат вычисления выражения. Так, например, выражение может иметь вид: DS:SI+BX-123, или ” * ”, где “*” является указателем на следующую инструкцию;

- Reg – обозначение регистра размером в байт или слово;

- Value – может принимать значение некоторого регистра или байта/слова в шестнадцатеричном формате. Если value – “ * ”, то в качестве значения берется содержимое регистра IP. Десятичное значение записывается как %123, можно использовать арифметические выражения, например AX+BX*3/2. Порядок выполнения вычислений строго определен – слева-направо;

- String задает список значений или ASCII строк (строка заключена в кавычки) разделенных пробелами или запятой.

- Например: 1234 BX, ‘tromb’ FF.

Назначение функциональных клавиш:

F1 - пошаговое выполнение программы с входом в процедуру;

F2 - пошаговое выполнение программы без входа в процедуру;

F3 - повторный запуск программы;

F4 - HELP команд отладчика;

F5 - вход в поле меню установки точек прерывания;

F6 - переключение основного и альтернативного экранов (инициализируется после соответствующей установки);

F7, F8, F9, F10 - установка курсора в нужное поле экрана – up, down, left, right.

Лабораторная работа № 1





Поделиться с друзьями:


Дата добавления: 2016-11-02; Мы поможем в написании ваших работ!; просмотров: 3058 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лаской почти всегда добьешься больше, чем грубой силой. © Неизвестно
==> читать все изречения...

2354 - | 2220 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.