Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_LR_SPO.doc
Скачиваний:
3
Добавлен:
13.08.2019
Размер:
389.12 Кб
Скачать

Содержание отчета

Отчет должен включать:

1. Название лабораторной работы.

2. Цель ее выполнения.

3. Варианты заданий.

4. Тексты листинга трансляции (полностью) обоих файлов.

5. Действительные адреса кодовых сегментов для подпрограмм.

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

1. Какая директива в программе указывает ассемблеру, что имя подпрограммы определено вне ее собственного кода?

2. Какая директива в подпрограмме необходима для того, чтобы имя точки входа было доступно в основной программе?

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

4. Каким образом подпрограмма указывает ассемблеру, что переменные определены в другом модуле?

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

Лабораторная работа № 5 Препроцессоры

Оборудование

.IBM совместимые ЭВМ, операционная система Windows, Linux, программа DOSBox, оболочка Volcov Commander, программы Tasm, TLink, Debug, программа на языке Ассемблера.

А. Использование библиотеки макроопределений

Цель лабораторной работы

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

Теоретические сведения

Изучить описание и синтаксис оформления макроопределений, объединение их в библиотеку, способы подключения библиотек [4, 5].

Порядок выполнения работы

1. Внимательно ознакомиться с теоретическими положениями лабораторной работы, ответить на контрольные вопросы.

2. Определить, какие операторы необходимо объединить в макроопределения (в соответствии с заданием к лабораторной работе № 4).

3. Написать тексты макроопределений.

4. Написать и отладить программу с использованием написанных макроопределений (без библиотеки).

5. Оформить макроопределения в библиотеку.

6. Написать и отладить программу с использованием библиотеки.

Б. Создание препроцессора Цель лабораторной работы

Цель и задачи работы - научиться самостоятельно обрабатывать макроопределения

Теоретические сведения

Макроопределения и макрокоманды нашли применение не только в языках ассемблера, но и во многих языках высокого уровня и интегрированных пакетах (автозамена). Там их обрабатывает специальный модуль, называемый препроцессором. Так, например, хорошо известен препроцессор языка С. Принцип обработки остается тем же самым, что и для программ на языке ассемблера – препроцессор выполняет текстовые подстановки непосредственно над строками самой исходной программы.

Порядок выполнения работы

1. Создать библиотеку макроопределений, выполняющих следующие действия:

- ввод строки текста;

- выполнение арифметических действий: сложение, вычитание, умножение, деление;

- перевод введенных символов в число;

- перевод полученного числового значения в символы;

- вывод результата.

2. Написать программу на Ассемблере, близкую по синтаксису к языку высокого уровня, для вычисления в соответствии с вариантом. Например, сложение трех чисел можно организовать следующей последовательностью строк:

read a

read b

sum a, b

read b

sum a, b

write a

(при условии, что результат будет храниться в переменной a). Следовательно, в библиотеке должны присутствовать макроопределения read, sum и write, выполняющие соответствующие действия. Не забудьте, что вводить с клавиатуры можно только символы, после чего их необходимо преобразовать в числа с помощью таблицы ASCII кодов. Обратное действие нужно проделать при выводе.

ВНИМАНИЕ! Вводить однозначные числа.

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

Привет!

Должно быть выведено сообщение: «Это не арифметическое выражение». А при вводе

=x+y*z1

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

ВНИМАНИЕ! Вводить однозначные числа.

4. Проверить правильность работы программы на контрольном примере.

5. Оформить отчет.

Содержание отчета

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

1. Название лабораторной работы

2. Цель ее выполнения,

3. Тексты макроопределений (для разделов А и Б соответственно).

4. Тексты программ (для разделов А и Б соответственно).

5. Листинги трансляций (для разделов А и Б соответственно).

6. Результаты работы.

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

1. Что такое макрокоманда, макрогенерация, макрорасширение, макроподстановка, макроопределение?

2. Из каких частей состоит макроопределение?

3. Каковы преимущества и недостатки использования макроопределений?

4. Какие псевдооператоры Макроассемблера вы знаете?

5. Как создать библиотеку макроопределений?

6. Как использовать библиотеку макроопределений?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]