- •Таганрог 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.2. Обработка программ в dos
Обработка программ на языке ассемблера в DOS состоит из нескольких этапов:
создание с помощью текстового редактора файла с текстом программы на языке ассемблера;
трансляция программы с помощью ассемблера TASM;
компоновка программы с помощью компоновщика (редактора связей) TLINK;
запуск и отладка программы.
Трансляция программы
Для трансляции исходного файла необходимо ввести командную строку следующего вида:
tasm <ASM-файл>[,[<OBJ-файл>][,[<LST-файл>] [,[<CRF-файл>]]]] [<ключи>]
Замечание. Имя файла NUL означает, что соответствующий файл не формируется.
Для входных и выходных файлов TASM использует следующие умолчания:
исходный файл: расширение – ASM ;
объектный файл: имя совпадает с именем исходного файла, расширение – OBJ;
файл листинга: имя – NUL, если задан ключ /L или /LA – имя файла листинга совпадает с именем исходного файла, если имя указано или задан ключ /L или /LA, то расширение по умолчанию – LST;
файл перекрестных ссылок: имя – NUL, если задан ключ /C – имя файла перекрестных ссылок совпадает с именем исходного файла, если имя указано или задан ключ /C, то расширение по умолчанию – CRF.
Ассемблер имеет различные режимы трансляции, задаваемые с помощью ключей, наиболее часто используемыми можно считать следующие:
/L и /LA – формировать файл листинга или расширенного листинга;
/C – формировать файл с таблицей перекрестных ссылок: список идентификаторов исходного модуля с указанием номеров строк программы, в которых упоминается данный идентификатор;
/ZI – поместить в объектный модуль полную информацию для отладчика: идентификаторы данных и меток, номера строк, и т.п.
Например:
tasm primer /L /ZI
Транслируется файл PRIMER.ASM, создаются файл листинга PRIMER.LST и, если нет ошибок, объектный файл PRIMER.OBJ. В объектный файл включается полная информация для отладчика.
Компоновка программы
Для компоновки объектного файла необходимо ввести командную строку следующего вида:
tlink <OBJ-файл>[,[<EXE-файл>][,[<MAP-файл>] [,[<библиотеки>]]]] [<ключи>]
Для входных и выходных файлов TLINK использует следующие умолчания:
объектный файл: расширение – OBJ;
исполняемый файл: имя совпадает с именем объектного файла, расширение – EXE;
файл плана модуля: имя – NUL, если задан ключ /M – имя файла плана модуля совпадает с именем объектного файла, если имя указано или задан ключ /M, то расширение по умолчанию – MAP.
Компоновщик имеет различные режимы трансляции, задаваемые с помощью ключей, наиболее часто используемыми можно считать следующие:
/M – формировать файл плана модуля: список всех глобальных идентификаторов, сегментов с указанием их типов, атрибутов, адресов;
/V – поместить в исполняемый модуль полную информацию для отладчика: идентификаторы данных и меток, номера строк, и т.п.
Например:
tlink primer /M /V
Выполнить компоновку объектного файла PRIMER.OBJ. Исполняемый файл будет иметь имя – PRIMER.EXE, в него будет включена информация для отладчика. Будет создан файл плана модуля с именем PRIMER.MAP.
Запуск программы
Запуск программы на выполнение можно осуществить, набрав в командной строке имя файла программы (расширение EXE указывать необязательно):
primer
Для запуска под отладчиком необходимо запустить отладчик с указанием имени файла вашей программы:
td primer.exe