1.         СОЗДАНИЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ.

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

В большинстве случаев рекомендуется следую­щий процесс разработки программы на ассемблере:

1.Этап постановки и формулировки задачи:

·        изучение предметной области и сбор материала в проблемно-ориентиро­ванном контексте;

·        определение назначения программы, выработка требований к ней и пред­ставление требований, если возможно, в формализованном виде;

·        формулирование требований к представлению исходных данных и вы­ходных результатов;

·        определение структур входных и выходных данных;

·        формирование ограничений и допущений на исходные и выходные дан­ные.

2.Этап проектирования:

·        формирование «ассемблерной» модели задачи;

·        выбор метода реализации задачи;

·        разработка алгоритма реализации задачи;

·        разработка структуры программы в соответствии с выбранной моделью памяти.

3. Этап кодирования:

·        уточнение структуры входных и выходных данных и определение ассемб­лерного формата их представления;

·        программирование задачи;

·        комментирование текста программы и составление предварительного описания программы.

4. Этап отладки и тестирования:

·        составление тестов для проверки правильности работы программы;

·        обнаружение, локализация и устранение ошибок в программе, выявлен­ных в тестах;

·        корректировка кода программы и ее описания.

5. Этап эксплуатации и сопровождения:

·        настройка программы на конкретные условия использования;

·        обучение пользователей работе с программой;

·        организация сбора сведений о сбоях в работе программы, ошибках в выходных данных, пожеланиях по улучшению интерфейса и удобства рабе ты с программой;

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

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

Традиционно у существующих реализаций ассемблера нет интегрированной среды, подобной интегрированным средам Turbo Pascal, Turbo С или Visual C++. Поэтому для выполнения всех функций по вводу кода программы, ее трансляции, редактированию и отладке необходимо использовать отдельные служебные программы. Большая часть их входит в состав специализированных пакетов ассемблера.

На рисунке один приведена общая схема процесса разработки программы на ассемблере. На схеме выделено четыре шага процесса. На первом шаге, когда вводится код программы, можно использовать любой текстовый редактор. Основным требованием к нему является то, чтобы он не вставлял посторонних символов (спецсимволов редактирова­нии). Файл должен иметь расширение . asm.


Рис. 1. «Процесс разработки программы на ассемблере».

Программы, реализующие остальные шаги схемы, входят в состав программного пакета ассемблера. После написания текста программы на ассемблере наступает следующий этап — трансляция программы. На этом шаге формируется объектный модуль, который включает в себя представление исходной програм­мы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями. Традиционно на рынке ассемблеров для микропроцессоров фирмы Intel имеется два пакета: «Макроассемблер» MASM фирмы Microsoft и Turbo Assembler TASM фирмы Borland.

У этих пакетов много общего. Пакет макроассемблера фирмы Microsoft (MASM) получил свое название потому, что он позволял программисту зада­вать макроопределения (или макросы), представляющие собой именованные группы команд. Они обладали тем свойством, что их можно было вставлять в программу в любом месте, указав только имя группы в месте вставки. Пакет Turbo Assembler (TASM) интересен тем, что имеет два режима работы. Один из этих режимов, называемый MASM, поддерживает все основные возможнос­ти макроассемблера MASM. Другой режим, называемый IDEAL, предоставляет более удобный синтаксис написания программ, более эффективное использова­ние памяти при трансляции программы и другие новшества, приближающие компилятор ассемблера к компиляторам языков высокого уровня.

В эти пакеты входят трансляторы, компоновщики, отладчики и другие утили­ты для повышения эффективности процесса разработки программ на ассембле­ре.

В данной курсовой работе для получения объектного модуля исходный файл подвергается трансляции при помощи про­граммы tasm.exe из пакета TASM.

После устранения ошибок можно приступать к следующему шагу — созданию исполняемого (загрузочного) модуля, или, как еще называют этот процесс, к компоновке программы. Главная цель этого шага — преобразовать код и данные в объектных файлах в их перемещаемое выполняемое отображение. Процесс создания исполняемого модуля разделяют на 2 шага — трансляцию и компоновку. Это сделано намеренно для того, чтобы можно было объединять вместе несколько модулей (написанных на одном или нескольких языках). Формат объектного файла позволяет, при определенных условиях, объединить несколько отдельно оттранслированных исходных модулей в один модуль. При этом в функции компоновщика входит разрешение внешних ссылок (ссылок на процедуры и переменные) в этих модулях. Резуль­татом работы компоновщика является создание загрузочного файла с расширением ехе. После этого операционная система может загрузить такой файл и выполнить его.

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

На этапе отладки, используя описание алгоритма, выполняется контроль правильности функционирования как отдельных участков кода, так и всей программы в целом. Но даже успешное окончание отладки еще не является гарантией того, что программа будет работать правильно со всеми возможными исходными данными. Поэтому нужно обязательно провести тестирование программы, то есть проверить ее работу на «пограничных» и заведомо некорректных исходных данных. Для этого составляются тесты.

Специфика программ на ассемблере состоит в том, что они интенсивно работают с аппаратными ресурсами компьютера. Это обстоятельство заставляет программиста постоянно отслеживать содержимое определенных регистров и областей памяти. Естественно, что человеку трудно следить за этой информацией с большой степенью детализации. Поэтому для локализации логических ошибок в программах используют специальный тип программного обеспечения - программные отладчики.

Отладчики бывают двух типов:

·        интегрированные — отладчик реализован в виде интегрированной среды типа среды для языков Turbo Pascal, Quick С и т.д.;

·        автономные — отладчик представляет собой отдельную программу.

Из-за того, что ассемблер не имеет своей интегрированной среды, для отладки написанных на нем программ используют автономные отладчики. К настоящему времени разработано большое количество таких отладчиков. В общем случае с помощью автономного отладчика можно исследовать работу любой программы, для которой создан исполняемый модуль, независимо от того, на каком языке был написан его исходный текст.



Информация о работе «Ассемблер»
Раздел: Информатика, программирование
Количество знаков с пробелами: 32352
Количество таблиц: 1
Количество изображений: 3

Похожие работы

Скачать
91958
12
0

... . В случае выбора пункта «выход», необходимо реализовать завершение работы программы и передачу управления операционной системе DOS. 1.3. Требования техническим и программным средствам Программа выполнена на языке ассемблера 8086 процессора, соответственно ей необходим IBM PC – совместимый компьютер с процессором не ниже 8086, также программа может выполняться на компьютерах с ...

Скачать
22437
1
1

... смещением. После обращения к _fillstring к указателю стека sp добавляются 8 байт, удаляя параметры из стека. Несмотря на то что в этом примере функция _fillstring в действительности написана на языке ассемблера, вызовы функций С и C++ ничем не отличаются. 4.2 Локальные переменные В дополнение к переменным, объявленным в сегменте данных либо общим с программой С и С++, можно использовать локальные ...

Скачать
15665
3
6

... xxxxxxxxxxxx Виконав ст. гр xxxxxx xxxxxxx “___” ________________2005 р. Перевірив xxxxxxxxxx. “___” ________________2005 р. Харків 2005 ЗАТВЕРДЖЕНО xxxxxxxxxxxx Робота з записами мови ассемблера Текст програми xxxxxxxxx – 12 00-01 Харків 2005 РАЗРАБОТКА ТЕКСТА ПРОГРАММЫ Главная программа: LOCALS include defs.inc .model ...

Скачать
37175
0
0

... разрядов масок в регистре I.  Неправильное использование разрядов разрешения прерываний в командах SIM. ВВЕДЕНИЕ В ПРОГРАММНЫЙ РАЗДЕЛ Программный раздел содержит наборы подпрограмм на языке ассемблера для микропроцессоров 8080 и 8085. Каждой подпрограмме предпосланы введение и комментарии; за каждой подпрограммой следует по крайней мере один пример ее использования. Введение содержит следующую ...

0 комментариев


Наверх