Міністерство освіти та науки України
Кіровоградський Державний Технічний університетКафедра програмного забезпечення
Курсов ий проект
з дисципліни
«Програмування на мові 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 переривання у циклі з відступами виводяться назви каталогів в тому порядку, в якому вони записані в пам’яті. Виведення виводить процедура, починаючи з певної позиції. При натисканні клавіш відбувається зміна позиції і перемалювання екрану. Для переходу в заданий каталог використовується функція 3bh21 переривання.
5. Системні вимоги
Програма працює на IBM-PC-сумісних комп’ютерах з мікропроцесором INTEL 8086 або старшим. Необхідно 640 КБайт пам’яті, монітор CGA або старший, а також накопичувач на жорстких чи гнучких магнітних дисках. Необхідна також операційна система MS-DOS або сумісна з нею (Windows).
Для роботи треба запустити програму tree.com. Після цього на екрані після деякої паузи (відбувається сканування дерева) виводиться дерево каталогів. По ньому можна переміщуватися клавішами «вгору» та «вниз». Верхній каталог виділено кольором. Якщо натиснути Enter, відбудеться перехід в заданий каталог. Вихід з програми здійснюється за допомогою клавіші ESC.
Отже, створена програма, яка дозволяє працювати з деревом каталогів диску. Вона є прикладом для роботи на асемблері з функціями пошуку файлів в каталозі, а також роботи з пам’яттю.
Використана література
1. Роберт Журден. Справочник программиста на персональном компьютере фирмы IBM
2. П. Абель. Ассемблер для IBMPC
Лістинг програми
modeltiny
386
code
org 100h
start:
jmp begin
mem_er db 'memory fault! $'
scan_msg db 'Scanning…$'
all_dir db '*.*', 0
up_dir db '..', 0
r_dir db '', 0
recurse_level db 0
names_offset dw 0
dirnum dw 0
dirpos dw 0
path db '', 100 dup(0); path
change_dir proc
mov si, word ptr [dirpos]
mov al, byte ptr fs: [si]; level
inc al
xor ah, ah; counter
mov di, offset path+1
next_level:
cmp ah, al
je stop_path
; шукаємо каталог позаду з рiвнем ah
push si
find_level:
cmp byte ptr fs: [si], ah
je found_level
sub si, 14
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.