Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_системное программ.doc
Скачиваний:
32
Добавлен:
07.05.2019
Размер:
249 Кб
Скачать
☆

Лабораторная работа 5 "Ассемблирование и загрузка программ на языке ассемблера 8080". Цель работы

Изучение методов ассемблирования и загрузки программ, написанных на языке 8080. Приобретение навыков использования типовых ассемблеров на примере программы-ассемблера MAC.

Подготовка к работе

Повторить темы "Ассемблирование программ", "Загрузка программ для исполнения". Обратить внимание на псевдоманды ассемблера, направленные на работу с символическими именами..

Вопросы для самоконтроля

Какая псевдокоманда ассемблера задает начальный адрес размещения кода и данных?

Как задать метки и какие команды ассемблера могут их использовать?

Как завершается текст программы на языке ассемблера?

Программа работ

Получить у преподавателя исходные данные:

- количество байтов в операндах

- вид операции - сложение , вычитание, набор логических побитовых операций и т.п.

Продумать алгоритм выполнения программы. Набрать текст программы, используя встроенный редактор файлового менеджера NC (VC,FAR). Присвоить программе имя и расширение ".ASM".

Загрузить эмулятор

Ассемблировать программу с помощью макроассемблера MAC. Убедиться, что ассемблирование прошло без ошибок.

Загрузить результат ассемблирования, используя возможности отладчика.

Ввести подготовленный тестовый пример

Отметить в программе узловые точки и использовать их адреса как точки останова

Запустить программу на выполнение, останавливаясь в опорных точках и контролируя правильность выполнения

По завершении программы проверить результат сложения.

По достижении точки останова необходимо записывать содержимое регистров и контролируемых ячеек памяти для последующего отображения протокола отладки в отчете.

Отчет должен содержать:

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

- протокол отладки

- тестовый пример, демонстрирующий характерные особенности отлаживаемой программы.

Методические указания

Особое внимание следует обратить на выбор объектов для хранения счетчика циклов и указателей на операнды и результат. Входные данные и результат следует располагать в ячейках памяти. При этом возможно (хотя и не желательно), чтобы результат сохранялся на месте одного из операндов. Порядок следования байтов должен быть одинаков для операндов и результата. Все используемые ячейки памяти должны быть подробно описаны.

Опорные точки следует выбирать так, чтобы при запуске очередного программного фрагмента не могло произойти неконтролируемое выполнение кода. Это означает, в частности, что любая команда ветвления должна привести к точке останова по каждой из возможных траекторий выполнения.

Опорные точки в пределах линейных участков программы следует выбирать так, чтобы при останове можно было проанализировать правильность выполненного кода, контролируя содержимое регистров и обновляемых ячеек памяти.

Краткое описание макроассемблера имеется в приложении.

Контрольные вопросы

Какие файлы формируются макроассемблером MAC при трансляции?

Как определить наличие ошибок в тексте программы?

Какие ошибки макроассемблер способен идентифицировать, а какие нет?

Чем удобны псевдокоманды резервирования памяти и задания констант?

Какой из файлов - продукт работы ассемблера - может быть использован для загрузки кода отлаживаемой программы?

Какие шаги позволят получить исполнимый код программы?