Методические указания к выполнению курсовой работы
по дисциплине «Архитектура ВС и систем»
Задание: реализовать на языке низкого уровня (ассемблер) программу, выполняющую
действия в соответствии с выбранным вариантом задания. Программа, кроме выполнения
основных действий, должна обладать интерфейсом, подобным оконному интерфейсу Windows, но реализованном
в символьном режиме. Разработка интерфейсной части входит в курсовую работу наравне
с реализацией основной функции программы.
По желанию
студента и при согласовании с преподавателем вариант задания может быть выбран особо
(не из списка заданий, приведённого ниже).
Возможные варианты заданий на курсовую работу:
Из раздела «Файловые системы»:
1. Вывести атрибуты файла.
В диалоговой форме произвести переустановку атрибутов.
2. Составить программу
для удаления заданного каталога, содержащего файлы.
3. Создать
2 подкаталога, в каждый записать по 3
файла с сообщениями о дате их создания.
4. Вывести на экран информацию
о всех дисках системы (по функции 36h).
5. Создать файл в текущем
каталоге и записать в него имена всех файлов в этом каталоге.
6. Получить данные о свободном и занятом пространстве диска.
7. Организовать копирование
диска1 в дисководе А: на диск2 в том же дисководе.
8. Составить программу
для удаления из текущего каталога всех файлов, созданных за последний час.
9. Создать файл, содержащий
имена всех файлов текущей директории с их атрибутами.
10. Организовать просмотр содержимого
файла на экране порциями 10 строк по 16 символов, хранящихся в буфере такого
же размера. Управлять просмотром с помощью клавиш
PgUp и PgDn.
11. Создать новый подкаталог
и переписать в него все файлы из текущего, созданные за последний час.
12. Задать некоторый набор символов.
Сдвигом указателя в файле определить наличие и смещение заданной комбинации от начала файла.
13. Найти среди всех файлов
корневого каталога наиболее старый по времени создания файл.
14. Создать временный файл.
Переписать в него содержимое другого файла. Подсчитать длину записи, вывести на
экран и уничтожить временный файл.
15. Создать несколько текстовых
файлов с расширением .txt
и один с
расширением .doc. Дописать
во все файлы *.txt содержимое
файла .doc.
Из раздела
«Таймер и звук»:
1. В произвольной позиции
экрана, выводятся цифры 0,1,...,F с интервалом
4 секунды между выводом очередной цифры. При нажатии клавиши происходит
ускорение этого процесса в 2 раз путем
перепрограммирования канала 0 таймера. При следующем нажатии происходит еще одно
ускорение в 2 раза и т.д. После завершения
работы программа должна восстанавливать значение счетчика канала
0.
2. Написать программу,
которая читает символьную строку специального вида и проигрывает ее как мелодию.
Строка состоит из следующих элементов: буквы, обозначающие ноты,
">" (повышение) или "<"
(понижение) октавы, "1" и следующей
за ним цифрой (от 0 до 9)-задает длительность
ноты, "p"-пауза, аналогично длительности.
3. Написать программу,
генерирующую определенную частоту звучания, зависящую от нажатия клавиш на
клавиатуре. Клавиатура должна
содержать не менее двух октав
звуков.
4. Написать программу,
перепрограммирующую частоту регенерации памяти на
2-3 единицы в сторону увеличения и уменьшения, и вычислить скорость работы
процессора при каждом изменении.
5. Написать программу,
генерирующую звук путем программирования канала
2 таймера. Этот звук модулируется (смешивается с) сигналом, генерируемым
переключением бита 1 порта 61h (обычно имеющим более
низкую частоту). Уменьшение или увеличение частоты генераторов в
2 раза производится нажатием соответствующих клавиш.
6. Написать программу,
генерирующую звук переключением бита 1
порта с номером 61h так, чтобы звучало
трезвучие «до-ми-соль».
7. Написать программу,
определяющую скорость выполнения трех операций: сложение и вычитание двух слов,
находящихся в регистрах, и умножения двух слов. Скорость определить путем фиксации и чтения счетчика канала 0. Результаты вывести на экран.
8. Написать игровую программу, которая
перед началом игры произвольно устанавливает невидимую на экране метку и видимый
символ "*", который перемещается
по экрану с помощью стрелок. При движении символа генерируются звуковые колебания,
частота которых зависит от расстояния до невидимой метки. Если метка не найдена
за 4 секунды, метка перемещается в
другую точку.
9. Написать программу, которая, при нажатии
клавиши с буквой на клавиатуре, генерирует её звучание из азбуки Морзе.
10. Вывести на экран матрицу символов 15х15.
Организовать движение «волны» по этой матрице. Волна представляет собой строку чёрного
цвета на чёрном фоне. Предусмотреть повышение и понижение скорости движения волны
при нажатии клавиш + и - .
11. Реализовать секундомер с помощью одного
из каналов таймера, который считает время с точностью до сотых долей секунды. Предусмотреть
фиксацию 2 промежуточных результатов.
12. Реализовать программу «звёздное небо»: программа
случайным
образом определяет
позицию на экране, после чего проверяет, есть ли там «звезда». Если есть, то её необходимо «погасить».
Если нет — то необходимо её «зажечь». Брать случайное
число можно
из канала таймера.
13. Вывести на экран матрицу символов 9х9. Организовать
стирание символов по спирали от верхнего левого угла. Предусмотреть повышение и
понижение скорости стирания путём изменения частоты канала таймера при нажатии клавиш
+ и - .
14. Написать программу, сравнивающую скорость
поиска максимального и минимального элементов в массиве байт и в массиве слов. Оба
массива хранятся в памяти,
а программный код поиска максимума и минимума должен различаться только размерами
ячеек памяти и регистров. Значения времени брать из канала системного таймера.
15. Написать программу, позволяющую пользователю
задавать частоту звучания системного динамика, а также длительность звучания, с клавиатуры в виде двух чисел.
Из раздела
«Интерфейс RS-232»:
1. Передать, принять и
напечатать строку символов произвольной длины
(до
100 символов).
2. Передать, принять и
напечатать копию экрана с учетом цвета символов.
3. Организовать
пересылку сообщений между машинами ( форма диалога ).
4. Передать из одной машины
в другую файл произвольной длины.
5. Передать из одной машины
в другую директорию
и имя файла, хранящегося в принимающей машине, которая выдает сообщение о
результатах поиска файла.
6. Передать из одной машины
в другую файл
произвольной длины, которая по мере приема выводит
его
на экран.
7. Передать из одной машины
в другую копию экрана с атрибутами цвета, создать в принимающей машине файл, хранящий
копию переданного экрана.
8. Передать системное время, установить в
принимающей машине новое системное время, равное переданному.
|