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

4.Приложения

А. Структура отчета по курсовой работе

  1. Задание.

В соответствии с вариантом формулируется задание по курсовой

работе.

  1. Цель работы.

  2. Постановка задачи.

В этом разделе требуется формализовать задачу, указать возможные

ограничения на ее решение и т.п.

  1. Анализ и разработка алгоритма.

Основной раздел отчета. Должен отражать результаты анализа

возможных вариантов решения задачи и выбора среди них наиболее

рационального. Обосновывается выбор структур данных и основных

операций над ними. Приводятся результаты моделирования

программ-прототипов (если они использовались для разработки

алгоритма). Определяются источники и форматы исходных данных и

содержание вывода программы.(8-10 стр.)

  1. Алгоритм программы.

В этом разделе приводится блок-схема алгоритма программы.

  1. Текст программы для ГМ.

Здесь обосновывается выбор команд и директив для описания данных ГМ. Приводится текст программы для ГМ с комментариями.

  1. Разработка алгоритмов макросов.

Приводится обоснование выбора и описание алгоритмов макросов (макроопределений) и их листинг.

  1. Результаты моделирования программы на реальной ЭВМ.

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

  1. Выводы.

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

  1. Литература.

В. МАКРОСРЕДСТВА

1. Макроязык

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

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

Как видно, трансляция программы, написанной на макроязыке, занимает больше времени, чем трансляция программы на "чистом" языке ассемблера. Но зато макро­язык предоставляет больше возможностей, чем просто язык ассемблера, и потому писать программы, особенно большие, на макроязыке проще.

Макрогенератор и ассемблер могут взаимодействовать двояко. Во-первых, они могут действовать независимо друг от друга: сначала текст программы обрабаты­вает макрогенератор и только затем начинает работать ассемблер. Такой способ взаимодействия достаточно прост для понимания и для реализации и используется довольно часто, однако у него есть серьезный недостаток: макрогенератор, рабо­тая до ассемблера, не может воспользоваться информацией, извлекаемой из тек­ста программы ассемблером. Например, в макросредствах нельзя использовать то, что после директивы

n EQU 10

имя N обозначает число 10, т. к. эта директива относится к "чистому" языку ассемблера и потому будет обработана только ассемблером. Из-за подобного рода ограничений приходится усложнять макроязык.

Во-вторых, макрогенератор и ассемблер могут действовать совместно, чередуя свою работу: первым каждое предложение программы просматривает макро­генератор; если это конструкция собственно макроязыка, то макрогенератор соответствующим образом преобразует ее в группу предложений "чистого" языка ассемблера и тут же передает их на обработку ассемблеру, а если это обычное предложение "чистого" языка ассемблера, то макрогенератор сразу передает его ассемблеру. В таких условиях в конструкциях макроязыка уже можно ссылаться на объекты (например, константы) "чистого" языка ассемблера.

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

Именно такой макроассемблер используется в рассматриваемой нами системе МАSМ. Этим и объясняется полное название ее входного языка - язык макроассемблера (macroassembler language, МАSМ). Однако в дальнейшем мы по-прежнему будем называть его языком ассемблера (сокращенно - ЯА), используя термин "макроязык" для обозначения только набора макросредств, а термин "макрогенератор" для обозначения той части макроассемблера, что занимается обработкой этих макросредств. Кроме того, термином "окончательная программа" мы будем называть ту программу, которая получается после работы макрогенератора, которая затем переводится (собственно) ассемблером на машинный язык и выполняется.