
- •Таганрог 1997 Методическая разработка к лабораторным работам Программирование на языке ассемблера пэвм ibm pc
- •Введение
- •Структура описания лабораторной работы
- •Выполнение работы
- •Разработка и отладка программ на языке ассемблера
- •2.2. Обработка программ в dos
- •Трансляция программы
- •Компоновка программы
- •Запуск программы
- •2.3. Использование отладчика td
- •Как запустить программу под отладчиком
- •Что умеет и чего не умеет отладчик td
- •Меню View Окно Module
- •Окно cpu
- •Окно Watches
- •Окно Dump
- •Экран пользователя
- •Команда Instruction Trace
- •Команда Program Reset
- •3. Пример выполнения работы
- •4. Контрольные вопросы
- •2.2. Режимы адресации
- •3. Пример выполнения работы
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа
- •Циклические и разветвляющиеся программы1. Цель работы
- •2. Основные сведения
- •3. Пример выполнения работы
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа
- •Логические команды1. Цель работы
- •2. Основные сведения
- •2.1. Логические команды
- •2.2. Примеры использования логических команд
- •3. Пример выполнения работы
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа
- •Символьная обработка1. Цель работы
- •2. Основные сведения
- •2.1. Программные прерывания и системные вызовы
- •2.2. Функции dos для ввода с клавиатуры
- •2.3. Функции dos для вывода на экран
- •3. Пример выполнения работы
- •Inpstr db 80, ?, 82 dup( ? ) ; буфер ввода
- •Inc count[si] ;увеличиваем соответств. Счетчик
- •Xor si, si ;Счетчик цифр
- •Int 21h ; строки
- •Inc si ;Счетчик очередной цифры
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа
- •Десятичная арифметика
- •2.3. Команды десятичной коррекции неупакованных чисел
- •3. Пример выполнения работы
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа
- •Подпрограммы1. Цель работы
- •2. Основные сведения
- •2.1. Описание подпрограмм
- •2.2. Вызов подпрограмм
- •2.3. Передача параметров
- •2.4. Сохранение регистров
- •2.5. Локальные переменные
- •2.6. Директивы описания сегментов и модели памяти Модели памяти
- •Директивы определения сегментов
- •Макрокоманды начала и завершения программы
- •2.7. Расширенные директивы описания процедур
- •2.8. Область действия имен
- •2.9. Итоги
- •3. Пример выполнения работы
- •Int 21h ;Приглашение к вводу строки
- •Int 21h ;Ввод строки
- •Int 21h ; позиции удаления
- •Int 21h ;Ввод строки числа
- •Int 21h ; числа удаляемых
- •Int 21h ;Ввод строки числа удаляемых
- •Int 21h ;Заголовок вывода
- •Inc bx ;Сдвиг по строке
- •Int 21h ; Вывод результата
- •Inc bx ;Сдвиг по строке
- •4. Варианты заданий
- •5. Контрольные вопросы
- •Лабораторная работа 8 Использование подпрограмм на языке ассемблера в программах на языках c и pascal1. Цель работы
- •2. Основные сведения
- •2.1. Введение
- •2.2. ТерминЫ и сокращения
- •2.3. Соглашения о связях
- •Преобразование имен
- •Передача и возврат управления и данных
- •Сохранение регистров
- •Трансляция и компоновка
- •Преобразование данных
- •Трансляция и компоновка
- •3. Пример выполнения работы
- •3.1. Интерфейс Pascal
- •Inc si ;указатель на входную строку
- •Inc cx ;нет, увеличиваем счетчик символов
- •Inc dx ;да, увеличиваем счетчик строк
- •Inc dx ;нет, будем увеличивать счетчик строк
- •4. Варианты заданий
- •5. Контрольные вопросы
- •БиблиографИя
- •Содержание
- •Заметки
- •Дроздов Сергей Николаевич Калачев Дмитрий Петрович
2.3. Использование отладчика td
Не претендуя на полноту описания, приведем описание основных функций и возможностей отладчика TD.
Как запустить программу под отладчиком
Запуск программы под отладчиком выполняется путем набора командной строки
td <EXE-файл>
Например,
td primer.exe
Что умеет и чего не умеет отладчик td
Что умеет:
трассировка (пошаговое выполнение) – можно выполнять программу по одному оператору, пропуская (или не пропуская) при этом вызовы процедур и функций;
точки останова – выполнить программу до указанной в программе точке;
просмотр – можно создать окна для показа самых различных вещей – значений и адресов переменных, точек останова, содержимого стека, регистров процессора и т.п.;
изменение – можно изменить содержимое переменных;
прослеживание – можно выделить некоторые переменные и отслеживать изменение их значений в процессе работы программы.
Что не умеет:
не имеет встроенного редактора текстов для изменения исходного текста программы. Однако позволяет вызвать любой текстовый редактор;
не может перекомпилировать вашу программу. Для этого вам нужен компилятор или ассемблер (например, TASM);
и самое главное, отладчик не сможет заменить процесс обдумывания. Турбоотладчик является мощным средством, но при отсутствии мыслей он не экономит ни время, ни усилия.
Меню View Окно Module
В окне Module (Модуль) на экран выводится текст отлаживаемой программы. Вы можете перемещаться по тексту, выполнять строки программы и просматривать данные и код.
Окно cpu
Окно CPU (ЦП) показывает текущее состояние центрального процессора (ЦП). Это окно содержит пять панелей (областей), в которых показаны:
дамп памяти (как правило, сегмент данных);
содержимое стека;
содержимое регистров ЦП;
машинные инструкции;
содержимое флагов ЦП.
Окно CPU полезно использовать, когда вы хотите просмотреть точную последовательность инструкций, которую образует строка исходного кода программы, или структуру данных. Однако для отладки большинства программ данное окно вам не понадобится.
Окно Watches
В окне Watches (Просмотр) выводятся переменные и их изменяющиеся значения. Нажав клавиши Ctrl+F7 при позиционировании курсора на имени переменной в окне Module, вы можете добавить в окно Watches новую переменную.
Локальное меню окна Watch (Alt+F10 или Ctrl+F10) содержит пункты:
Watch (Просмотр) выводит подсказку для ввода имени переменной или выражения, чтобы добавить его к списку окна Watches (оно добавляется в конец списка);
Edit (Редактирование) позволяет редактировать выражение в окне Watches. Вы можете изменять то, что там находится или вводить новое значение;
Remove (Удаление) удаляет из окна Watches текущую выбранную запись;
Delete All (Удалить все) удаляет из окна Watches все записи;
Inspect (Проверка) открывает окно проверки (окно Inspector), в котором выводится содержимое подсвеченной в данный момент в окне Watches записи;
Change (Изменение) изменяет значение подсвеченной в данный момент записи в окне Watches на значение, которое вы вводите в ответ на подсказку.
Окно Dump
В окне Dump (Дамп) выводится в непосредственном виде содержимое области памяти. (Это окно эквивалентно области дампа окна CPU.) Вы можете выводить данные в виде символов, шестнадцатеричных байтов, слов, двойных слов, или в любом формате с плавающей точкой. Данное окно можно использовать для просмотра в непосредственном виде некоторых данных, когда вам не требуются остальные части окна CPU. В локальном меню этого окна имеются команды, позволяющие вам модифицировать выводимые данные, изменять формат их вывода, а также манипулировать блоками данных.
Локальное меню окна Dump (Alt+F10 или Ctrl+F10) содержит пункты:
Goto (Переход) – выводит на экран данные по новому адресу;
Change (Изменение) – изменяет байты данных по адресу курсора;
Display As (Режим вывода) – задает режим вывода дампа: байтами, словами и т.п.