- •Оглавление
- •ВВЕДЕНИЕ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 2 ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 3 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 4 ЦИКЛЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 6 ОБРАБОТКА МАТРИЦ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 7 ДИНАМИЧЕСКИЕ МАССИВЫ
- •ЛАБОРАТОРНАЯ РАБОТА № 8 ТЕКСТОВЫЕ ФАЙЛЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 9 СТРУКТУРЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 10 ДВОИЧНЫЕ ФАЙЛЫ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 11 ФУНКЦИИ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 12 РЕКУРСИВНЫЕ ФУНКЦИИ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 13 ОДНОСВЯЗНЫЕ СПИСКИ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 14 ДВУСВЯЗНЫЕ ЛИНЕЙНЫЕ СПИСКИ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 15 АЛГОРИТМЫ НА ГРАФАХ
- •Задания
- •ЛАБОРАТОРНАЯ РАБОТА № 16 БИНАРНЫЕ ДЕРЕВЬЯ
- •Задания
- •Задание
- •ЛАБОРАТОРНАЯ РАБОТА № 18 РЕШЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ НА АССЕМБЛЕРЕ
- •ЛАБОРАТОРНАЯ РАБОТА № 19 ОБРАБОТКА ФАЙЛОВ
- •ЛАБОРАТОРНАЯ РАБОТА № 20 РАБОТА С ДИНАМИЧЕСКОЙ ПАМЯТЬЮ
- •ЛАБОРАТОРНАЯ РАБОТА № 21 РАБОТА С ПРЕРЫВАНИЯМИ
- •ЛАБОРАТОРНАЯ РАБОТА № 22 ПЕРЕМЕЩЕНИЕ ПРОГРАММ ПО ПАМЯТИ
- •ЛАБОРАТОРНАЯ РАБОТА № 23 МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
- •ЛАБОРАТОРНАЯ РАБОТА № 24 КОНСОЛЬНОЕ WINDOWS-ПРИЛОЖЕНИЕ
- •ЛАБОРАТОРНАЯ РАБОТА № 25 ОКОННЫЕ WINDOWS-ПРИЛОЖЕНИЯ
- •ЛАБОРАТОРНАЯ РАБОТА № 26 ПРОГРАММИРОВАНИЕ СОПРОЦЕССОРА
- •Задания
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •Основной
- •Дополнительный
ЛАБОРАТОРНАЯ РАБОТА № 21 РАБОТА С ПРЕРЫВАНИЯМИ
Цель – закрепление знаний и навыков разработки программ, использующих собственные обработчики прерываний.
Задача – написание программы обработки файлов с заданной скоростью.
Для выполнения лабораторной работы необходимо изучить следующие вопросы:
1.Понятие прерывания. Классификация прерываний.
2.Аппаратная поддержка системы прерываний: векторы прерываний, команды программных прерываний, I-флаг и статус процессора, назначение
иработа контроллера прерываний.
3.Программное обеспечение системы прерываний: состав и размещение обработчиков прерываний, основные требования к обработчикам прерываний и правила их разработки.
Для выполнения лабораторной работы задание из лабораторной работы № 19 выполнить при условии, что обработка файла будет осуществляться с заданной скоростью.
Требования к выполнению данной лабораторной работы те же, что и к лабораторной работе № 18, только необходимо использовать собственный обработчик прерываний с вектором 1С. Необходимо воспользоваться функцией 25h – установить вектор прерывания и функцией 35h – взять вектор прерывания.
Языки программирования. Метод. указания по лаб. работам |
-98- |
ЛАБОРАТОРНАЯ РАБОТА № 22 ПЕРЕМЕЩЕНИЕ ПРОГРАММ ПО ПАМЯТИ
Цель – закрепление знаний разработки программ с использованием принципов позиционно-независимого программирования.
Задача – разработка программы, изменяющей в процессе работы свое местоположение в оперативной памяти.
Для выполнения лабораторной работы необходимо изучить следующие вопросы:
1.Подходы к разработке программ, способных перемещаться в оперативной памяти:
а) использование таблицы перемещений; б) использование аппаратуры переадресации;
в) позиционно-независимое программирование.
2.Основные принципы разработки позиционно-независимых про-
грамм.
3.Правила работы с адресами в позиционно-независимых программах.
Заданием является задание из предыдущей лабораторной работы (лабораторной работы № 21).
Работа программы организуется следующим образом: после запуска программа запрашивает блок памяти под буфер для обрабатываемых данных. Далее в цикле, пока не будет обнаружен конец файла, программа:
1)запрашивает блок памяти под свою копию;
2)перемещает себя в этот блок;
3)освобождает блок, откуда себя скопировала;
4)считывает, обрабатывает и записывает очередную порцию данных из
файла.
Блок памяти, в который программа изначально загружается, освобождать не надо.
Языки программирования. Метод. указания по лаб. работам |
-99- |
ЛАБОРАТОРНАЯ РАБОТА № 23 МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ
Цель – закрепление знаний и навыков разработки программ, состоящих из модулей, написанных на разных языках программирования.
Задача – разработка программы, использующей модули, написанные на языке высокого уровня (С, Паскаль) и на ассемблере.
Для выполнения этой лабораторной работы необходимо изучить следующие вопросы:
1.Понятие о модульном программировании.
2.Способы передачи данных между модулями.
3.Связь разноязыковых модулей.
4.Стили вызова процедур и функций.
5.Ассемблерные средства модульного программирования: а) средства работы с подпрограммами (процедурами);
б) модели памяти; в) понятия пролога и эпилога в подпрограммах;
г) директивы ассемблера Arg, Local, Uses; д) команды процессора Enter и Leave.
В качестве задания на выполнение этой лабораторной работы необходимо использовать задание 3 излабораторной работы №6 (обработка матриц).
Требуется: разделить программу на основную часть и подпрограммы (не менее двух). Как минимум, одна из подпрограмм обязательно должна возвращать результат как функция и обе должны иметь не менее двух параметров: один – передаваемый по ссылке, второй – по значению.
Языки программирования. Метод. указания по лаб. работам |
-100- |
ЛАБОРАТОРНАЯ РАБОТА № 24 КОНСОЛЬНОЕ WINDOWS-ПРИЛОЖЕНИЕ
Цель – закрепление знаний и навыков разработки 32-разрядных консольных приложений.
Задача – разработка программы обработки текстовых файлов, использующей динамически запрашиваемую память под буфер для обрабатываемых данных, организующей обработку данных с заданной скоростью, оформленной в виде консольного Windows-приложения.
Для выполнения этой лабораторной работы необходимо изучить следующие вопросы:
1.Понятие консоли и консольного Windows-приложения.
2.Набор API-функций для работы с консолью.
3.Набор API-функций для работы с файлами.
4.Набор API-функций для работы с памятью.
5.Набор API-функций для работы с таймером.
В качестве задания на выполнение лабораторной работы необходимо использовать задание лабораторной работы №21 (обработка прерываний).
Данную программу необходимо реализовать в виде 32-разрядного консольного Windows-приложения.
Для организации обработки с заданной скоростью необходимо воспользоваться соответствующими API-функциями работы с таймером.
Языки программирования. Метод. указания по лаб. работам |
-101- |