Этапы разработки программы на языке ассемблера
В большинстве случаев, независимо от выбранного языка программирования, предлагается следующая методика разработки программ (с учетом специфики языка ассемблер):
1. Этап постановки и формулировки задачи:
- изучение предметной области и сбор материала в проблемно-ориентированном контексте;
- определение назначения программы, выработка требований к ней представление требований в формализованном виде;
- формулирование требований к представлению исходных данных и выходных результатов;
- определение структуры входных и выходных данных;
- формирование ограничений и допущений на исходные и выходные данные.
2. Этап проектирования:
- формирование «ассемблерной» модели задачи;
- выбор метода реализации задачи;
- разработка алгоритма реализации задачи;
- разработка структуры программы в соответствии с выбранной моделью памяти.
3. Этап кодирования:
- уточнение структуры входных и выходных данных и определение ассемблерного формата их представления;
- программирование задачи;
- комментирование текста программы и составление предваритель-ного описания программы.
4. Этап отладки и тестирования:
- составление тестов для проверки правильности работы программы;
- обнаружение, локализация и устранение ошибок в программе, выявленных в тестах;
- корректировка кода программы и ее описания.
5. Этап эксплуатации и сопровождения.
Традиционно у существующих реализаций ассемблера нет интегрированной среды, подобной интегрированным средам Turbo Pascal, Turbo С или Visual C++, поэтому для выполнения всех функций по вводу кода программы, ее трансляции, редактированию и отладке необходимо использовать отдельные служебные программы. Большая часть их входит в состав специализированных пакетов ассемблера.
Общая схема процесса разработки программы на ассемблере приведена на рис. 4.10.
|
|
|
|
Рис. 4.10. Процесс разработки программы на ассемблере
На первом шаге с использованием любого текстового редактора вводится код программы, т.е. создается исходный файл. Основным требованием к текстовому редактору является то, чтобы он не вставлял посторонних символов (спецсимволов редактирования). Файлу целесообразно задавать расширение asm. (В программной оболочке Norton Commander текстовый файл создается при нажатии клавиш Shift+F4).
Второй шаг - трансляция программы. На этом шаге формируется, объектный модуль, который включает в себя представление исходной программы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями.
Третий шаг разработки программы - создание исполняемого (загрузочного) модуля или компоновка программы. Главная цель этого шага - преобразовать код и данные в одном или нескольких объектных файлах (исходные модули могут быть написаны на одном или нескольких языках) в их перемещаемое выполняемое изображение. Результатом работы компоновщика является создание загрузочного файла с расширением ехе. После этого операционная система может загрузить такой файл в память и выполнит его.
Получение исполняемого модуля, т.е. фактическое устранение синтаксических ошибок, еще не гарантирует того, что программа будет хотя бы запускаться, не говоря уже о правильности работы. Поэтому обязательным этапом процесса разработки является отладка. На этом этапе выполняется контроль правильности функционирования как отдельных участков кода, так и всей программы в целом.
Вопросы и задания для самопроверки
1. Центральный процессор: назначение и структура.
2. Принципы работы центрального процессора.
3. Виды памяти ЭВМ.
4. ОЗУ, ПЗУ, CMOS, специальная память.
5. Кэш-память.
6. Внешние устройства хранения информации.
7. Структура команды на языке ассемблер.
8. Способы адресации в команде ассемблера.
9. Структура программы на языке ассемблер.
10. Команды микропроцессора. Приведите пример.
11. Исходная и объектная программы.
12. Этапы разработки программы на языке ассемблер.
13. Написать команды на ассемблере, позволяющие выполнить следующие действия:
а) Поместить число из регистра H в аккумулятор.
б) Записать в регистры H и L адрес ячейки памяти 201016.
в) Число в аккумуляторе сложить с числом, адрес которого записан в регистрах H и L.
г) Сложить содержимое аккумулятора с числом 1816 (число взять из команды).