
- •Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение
- •«Комсомольский-на-Амуре государственный технический университет»
- •1 Основные сведения
- •Пояснения. Выполнение программы начинается с начального адреса, причем предварительно регистры сs и ip устанавливаются на этот адрес.
- •Назначение: с диска загружается файл или указанные секторы.
- •2 Задание к лабораторной работе
- •2.1 Определение даты bios компьютера.
- •3 Контрольные вопросы
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Кафедра «Промышленная электроника»
ИЗУЧЕНИЕ ВОЗМОЖНОСТЕЙ ОТЛАДЧИКА
DEBUG
Методические указания к лабораторной работе по курсу
«Отладочные средства микропроцессорных систем» для студентов направления 210100 «Электроника и наноэлектроника»
Комсомольск-на-Амуре 2013
УДК 621.385
Изучение возможностей отладчика DEBUG: Методические указания к лабоpатоpной работе по курсу "Отладочные средства микропроцессорных систем" для студентов направления 210100 «Электроника и наноэлектроника» / Сост. С.М. Копытов. - Комсомольск-на-Амуpе: Комсомольский-на-Амуpе гос. техн. ун-т, 2013. - 16 с.
Описана работа с отладчиком DEBUG по его использованию для отладки программного и аппаратного обеспечения персонального компьютера.
Предлагаемые методические указания предназначены для студентов направления 210100.
Печатается по постановлению редакционно-издательского совета Комсомольского-на-Амуре государственного технического университета.
Согласовано с отделом стандартизации.
Рецензент В.А. Егоров
Цель работы: ознакомиться со средством исправления алгоритмических ошибок отладчиком DEBUG.
1 Основные сведения
1.1 Отладчик DEBUG
DEBUG.EXE - специальная программа-отладчик, разработанная для операционной системы MS-DOS персонального компьютера, когда широко использовался реальный режим работы микропроцессоров I8086. С тех пор эта утилита входит в состав всех операционных систем фирмы MICROSOFT, поэтому ее можно найти на диске C любого компьютера. Программу-отладчик DEBUG используют для тестирования и отладки исполняемых программ. Она показывает код и данные программы в шестнадцатеричном формате. DEBUG также реализует пошаговый режим исполнения, позволяющий выполнять инструкции программы по отдельности одну за другой и наблюдать результат выполнения каждой инструкции в памяти и регистрах.
При запуске отладчика из командной строки необходимо ввести:
DEBUG [[диск:][маршрут]имя_файла [параметры]].
В квадратных скобках указаны необязательные элементы командной строки.
«[Диск:][маршрут]имя_файла» задают расположение и имя отлаживаемого выполняемого файла. «[Параметры]» задают информацию командной строки, необходимую для запуска выполняемого файла. Можно запустить отладчик без загрузки отлаживаемого выполняемого файла, а затем указать его имя и загрузить отдельно.
Отладчик DEBUG имеет строковый командный интерфейс. Это значит, что при запуске и после выполнения очередной команды появляется символ приглашения "-", означающий, что программа ждет ввода очередной команды. После ввода команды нужно нажать символ Enter. Рассмотрим далее некоторые наиболее часто используемые команды DEBUG:
A <смещение> - ввод машинных команд в ассемблерном виде в сегмент кода. Первую команду программы следует начинать вводить со смещения 0100. Далее система ждет поочередного ввода команд Ассемблера. Для окончания ввода нужно нажать Enter после пустой строки;
C - сравнение содержимого памяти;
D - показать содержимое области памяти в шестнадцатеричном формате (дамп памяти);
E - ввод данных по адресу;
F - заполнение диапазона памяти значением;
G - начать выполнение программы в памяти;
H (Hexarithmetic) - шестнадцатиричная арифметика. Если после символа H набрать 2 числа (размером не более 4 цифр каждое) через пробел, то получим сумму и разность набранных чисел;
I - вывод на экран байтового значения из порта;
L - загрузка содержимого файла или секторов диска в оперативную память. Предварительно имя программы задается с помощью команды "N";
M - копирование содержимого блока памяти;
N <имя .сom-файла> - задает имя программы для последующей записи ее на диск либо считывания с диска. Перед записью предварительно нужно записать 0 в регистр BX, а размер программы (в байтах) - в регистр CX;
O - вывод байта в заданный порт;
P - выполнение цикла, строковой инструкции, программного прерывания или подпрограммы за один шаг;
Q - выход – завершение отладки;
R - показать содержимое одного или более регистров в шестнадцатеричном формате;
S - поиск в памяти заданных байтовых значений;
T – отследить выполнение одной инструкции (трассировка);
U – дизассемблирование;
W - запись программы на диск. После выполнения инструкции "W" на диске в текущей директории появится файл с расширением .COM - точная копия введенной Вами в оперативную память программы. Эту программу можно запустить непосредственно из DOS;
XA - выделение расширенной памяти;
XD - освобождение расширенной памяти;
XM - отображение страниц расширенной памяти;
XS - вывод состояния расширенной памяти.
Правила написания команд DEBUG.
• DEBUG не различает строчные и заглавные буквы. Вы можете использовать любые из них при вводе команд.
• DEBUG полагает, что все вводимые числа заданы в шестнадцатеричной форме.
• Пробелы используются в командах только для разделения параметров.
• Сегмент и смещение указываются с использованием символа двоеточия, т.е. в форме сегмент:смещение.
Для вывода списка команд отладки после запуска DEBUG введите символ (?). Все команды (кроме Q) воспринимают параметры, разделяемые запятыми или пробелами, например:
d cs:110 120. Адреса задаются сегментным регистром (по умолчанию CS для команд A, G, L, T, U и W и DS для других команд) или его адресом из 4 цифр и смещением.
1.2 Рассмотрим более подробно некоторые команды отладчика.
1.2.1 Команда ассемблирования А (assemble)
Назначение: позволяет транслировать прямо в память машинные коды инструкций языка ассемблера.
Формат: А[адр].
Пояснения. Последующие строки ввода рассматриваются как команды языка ассемблера и транслируются в память, начиная с адреса, указанного параметром «адр». Если параметр опущен, выбирается адрес байта, следующего за последним байтом, использованным в предыдущей команде А, а если такой команды не было, то адрес CS:100.
После ввода команды А этот адрес отображается в строке экрана, в которой можно вводить команду ассемблера.
Ввод команда ассемблера завершается нажатием клавиши Enter, после чего на экран выдается следующий адрес, являющийся подсказкой на ввод очередной команда ассемблера. Для выхода из режима ассемблирования в режим команд DEBUG нужно нажать Ctrl- Break. Если DEBUG обнаруживает ошибку во введенной инструкции, он выдает сообщение «^error» и повторяет адрес для ввода инструкции.
1.2.2 Команда отображения данных D (dump)
Назначение: выводит на экран содержимое указанной области памяти (дамп памяти).
Формат: D [нач_адр] [кон_адр].
Пояснения:
- начальный и конечный адреса области указываются шестнадцатеричными числами в форме сегмент:смещение;
- если адреса отсутствуют, команда показывает последовательные 128-байтные области.
Если отсутствует конечный адрес, команда D выводит 8 строк данных, в каждой из которых по 16 байт, всего - 128 байт, начиная с указанного адреса. В левой части каждой строки будет указан адрес первого слева показанного байта в форме сегмент:смещение. Основную часть строки, в центре, занимает шестнадцатеричное представление параграфа, начинающегося с указанного в начале строки байта. Справа на экран выводятся символы, соответствующие ASCII-кодам текущих данных для облегчения интерпретации шестнадцатеричной записи. Для кодов, не имеющих символьного представления, используется точка.
1.2.3 Команда выполнения программы G (go)
Назначение: запускает отлаживаемую программу с начального адреса и позволяет остановить ее выполнение при достижении одной из указанных точек прекращения выполнения программы.
Формат: G [=нач_адр] [адр_1].