Міністерство освіти та науки України
Кіровоградський Державний Технічний університет
Кафедра програмного забезпечення
Курсовий проект
з дисципліни
«Програмування на мові ASM-86»
на тему:
«Побудова дерева каталогів диску і реалізація можливості переходу у вибраний каталог»
Зміст
Завдання
Вступ
1. Постановка задачі
2. Обґрунтування вибору методів розв’язку задачі
3. Алгоритм програми
4. Реалізація програми
5. Системні вимоги
6. Інструкція для користувача
Висновки
Використана література
Лістинг програми
Вступ
Як відомо, дискова інформація в комп’ютерах записується у вигляді файлів. На дисках, крім файлів, існують також директорії. Завдяки цьому на диску можна групувати файли.
Структура інформації на диску нагадує дерево. Так, кореневий каталог – це «вершина» дерева, а нижче ідуть «гілки» піддиректорій.
Для перегляду дерева каталогів і «мандрів» по ньому можна використовувати засоби ДОС або програми-оболонки. Можна також створити спеціальні програми. У даній роботі розглянута програма побудови дерева каталогів диску, вона дає змогу вибрати і перейти в потрібний каталог.
1. Постановка задачі
Використовуючи мову асемблера, написати програму, яка б дозволяла відобразити на екрані дерево каталогів на диску і перейти в потрібний користувачеві каталог.
2. Обґрунтування вибору методів розв’язку задачі
Для пошуку каталогів на диску доцільно використовувати функції DOS переривання 21. Перша з них (4еh) шукає перший файл, який підходить до шаблону і атрибутів, і 4fh, яка шукає наступний файл. При знайденні каталогу відбувається перехід в нього і знову викликається (рекурсивно) функція аналізу каталога. Таким чином, у пам’яті створюється структура, яка зберігає імена директорій та рівень їх вкладеності.
Після сканування відбувається відображення першого кадру дерева. Керування клавіатурою здійснюється за допомогою переривання 16.
Виведення на екран здійснюється також з використанням функцій ДОС 21 переривання.
3. Алгоритм програми
1. Виділити пам’ять
2. Перейти в кореневий каталог
3. Знайти каталог на диску.
4. Перейти в нього і зберегти в пам’яті його ім’я
5. Рекурентно перейти на пункт 3.
6. Якщо каталог не знайдено, то припинити сканування.
7. Очистити екран.
8. Вивести на екран 24 рядки каталогів
9. При натисканні клавіш «вгору», «вниз» прокручувати дерево.
10. При натисненні «ENTER» сформувати шлях і перейти в заданий каталог.
11. Кінець
4. Реалізація програми
Після початку роботи програми виділяється пам’ять для зберігання дерева каталогів. Потім за наведеним алгоритмом відбувається рекурсивне сканування дерева каталогів. Для реалізації рекурсії використовується зменшення показника стеку і копіювання області DTA у стек. Після виходу з рекурсії – область DTA для конкретного каталогу відновлюється.
Після сканування екран очищується шляхом запису нулів у відеопам'ять. Після цього засобами 21 переривання у циклі з відступами виводяться назви каталогів в тому порядку, в якому вони записані в пам’яті. Виведення виводить процедура, починаючи з певної позиції. ............