- •Курский государственный технический университет Кафедра конструирования и технологии эвс
- •Програмирование на языке ассемблера Методические указания
- •Введение
- •Эмулятор ос cp/m
- •Методические указания Контрольные вопросы
- •Лабораторная работа 2 "Исследование отладчика sid. Программирование в кодах 8080".
- •Лабораторная работа 3 "Линейное сложение и вычитание многобайтовых чисел ".
- •Цель работы
- •Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы
- •Лабораторная работа 6 "Вывод информации на экран дисплея с использованием системных вызовов ос cp/m".
- •Лабораторная работа 7 "Ввод информации с клавиатуры с использованием системных вызовов ос cp/m".
- •Лабораторная работа 8 "Исследование программ. Дизассемблирование".
- •Приложение 1 Кодировка команд ассемблера 8080 коды команд микропроцессоров i8080/i8085
- •Приложение 3 Ассемблер asm и макроассемблер mac. Справочные данные
- •Приложение 4 Сведения об ос cp/m
- •1.Резидентные команды
- •2. Характеристики dos
- •3. Обращение к dos. Входная и выходная информация.
- •Функции dos для управления консолью.
- •Приложение 5 Кодировки символов кодировка символов
Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы
Изучение методов ассемблирования и загрузки программ, написанных на языке 8080. Приобретение навыков использования типовых ассемблеров на примере программы-ассемблера MAC.
Подготовка к работе
Повторить темы "Ассемблирование программ", "Загрузка программ для исполнения". Обратить внимание на псевдоманды ассемблера, направленные на работу с символическими именами..
Вопросы для самоконтроля
Какая псевдокоманда ассемблера задает начальный адрес размещения кода и данных?
Как задать метки и какие команды ассемблера могут их использовать?
Как завершается текст программы на языке ассемблера?
Программа работ
Получить у преподавателя исходные данные:
- количество байтов в операндах
- вид операции - сложение , вычитание, набор логических побитовых операций и т.п.
Продумать алгоритм выполнения программы. Набрать текст программы, используя встроенный редактор файлового менеджера NC (VC,FAR). Присвоить программе имя и расширение ".ASM".
Загрузить эмулятор
Ассемблировать программу с помощью макроассемблера MAC. Убедиться, что ассемблирование прошло без ошибок.
Загрузить результат ассемблирования, используя возможности отладчика.
Ввести подготовленный тестовый пример
Отметить в программе узловые точки и использовать их адреса как точки останова
Запустить программу на выполнение, останавливаясь в опорных точках и контролируя правильность выполнения
По завершении программы проверить результат сложения.
По достижении точки останова необходимо записывать содержимое регистров и контролируемых ячеек памяти для последующего отображения протокола отладки в отчете.
Отчет должен содержать:
- листинг текста программы с комментариями
- протокол отладки
- тестовый пример, демонстрирующий характерные особенности отлаживаемой программы.
Методические указания
Особое внимание следует обратить на выбор объектов для хранения счетчика циклов и указателей на операнды и результат. Входные данные и результат следует располагать в ячейках памяти. При этом возможно (хотя и не желательно), чтобы результат сохранялся на месте одного из операндов. Порядок следования байтов должен быть одинаков для операндов и результата. Все используемые ячейки памяти должны быть подробно описаны.
Опорные точки следует выбирать так, чтобы при запуске очередного программного фрагмента не могло произойти неконтролируемое выполнение кода. Это означает, в частности, что любая команда ветвления должна привести к точке останова по каждой из возможных траекторий выполнения.
Опорные точки в пределах линейных участков программы следует выбирать так, чтобы при останове можно было проанализировать правильность выполненного кода, контролируя содержимое регистров и обновляемых ячеек памяти.
Краткое описание макроассемблера имеется в приложении.
Контрольные вопросы
Какие файлы формируются макроассемблером MAC при трансляции?
Как определить наличие ошибок в тексте программы?
Какие ошибки макроассемблер способен идентифицировать, а какие нет?
Чем удобны псевдокоманды резервирования памяти и задания констант?
Какой из файлов - продукт работы ассемблера - может быть использован для загрузки кода отлаживаемой программы?
Какие шаги позволят получить исполнимый код программы?
