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



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

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

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

Изучить описание и синтаксис оформления макроопределений, объединение их в библиотеку, способы подключения библиотек [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. Как использовать библиотеку макроопределений?


Лабораторная работа № 6

Организация дочерних процессов

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

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

 

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

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

 

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

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

 

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

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

2. Ответить на контрольные вопросы.

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

  Схема Передача параметров Местоположение файлов Выполняемые действия и исполнители
1 а) хвост команды все 4 файла в одном каталоге Д1 - ввод с клавиатуры (Int21h 01h), родительский - запись в файл
2 б) хвост команды все 4 в разных каталогах Д2 - ввод с клавиатуры (Int21h 06h), родительский - вывод на экран
3 а) системное окружение Д1 и рабочий - каталог1, Д2 и родительский - каталог2 Д2 - чтение из файла, родительский - вывод на экран
4 б) системное окружение Д2 и рабочий - каталог1 Д1 и родительский - каталог2 Д1 - ввод с клавиавтуры (Int21h 07h), родительский - вывод на экран
5 а) хвост команды Д1 и Д2 - каталог1, рабочий и родительский - каталог2 Д1 - чтение из файла, родительский - запись в файл
6 б) хвост команды Д1 и рабочий - каталог1, Д2 и родительский - каталог2 Д1 - ввод с клавиатуры (Int21h 08h), родительский – запись в файл
7 а) системное окружение Д2 и рабочий - каталог1, Д1 и родительский - каталог2 Д2 - ввод с клавиатуры (Int21h 0Аh), родительский - вывод на экран
8 б) системное окружение Д1 и Д2 - каталог1, рабочий и родительский - каталог2 Д1 - чтение из файла; родительский - вывод на экран; Д2 запись в файл
9 а) хвост команды все 4 файла в одном каталоге Д1 - ввод с клавиатуры; родительский – вывод на экран; Д2 запись в файл
10 б) хвост команды все 4 в разных каталогах Д1 - ввод с клавиатуры; родительский – запись в файл; Д2 - вывод на экран
11 а) системное окружение Д1, Д2, рабочий - каталог1, родительский - каталог2 Д1 - чтение из файла, родительский - запись в файл, Д2 - вывод на экран
12 б) системное окружение родительский, рабочий, Д1- каталог1; Д2 - каталог2 Д1 - ввод с клавиатуры; родительский – вывод на экран; Д2 - вывод на экран

 

Схемы взаимодействия процессов:

  

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

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

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

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

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

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

4. Тексты листинга трансляции.

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

 

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

1. Что такое иерархический программный комплекс?

2. Из каких компонент состоит программа, загруженная функцией Ехес в память?

3. Какие переменные содержит окружение для командного процессора?

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

5. Что включает в себя блок параметров?

6. Что такое "адрес окружения"?

7. Для чего используется хвост команды?

8. Как можно активизировать вторую копию командного процессора?


Лабораторная работа № 7

Файловая система

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

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


Дата добавления: 2018-04-04; просмотров: 420; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!