Міністерство освіти та науки України
Кіровоградський Державний Технічний університет
Кафедра програмного забезпечення
Курсов
ий
проект
з дисципліни
«Програмування на мові 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).
6. Інструкція для користувача
Для роботи треба запустити програму tree. Після цього на екрані після деякої паузи (відбувається сканування дерева) виводиться дерево каталогів. По ньому можна переміщуватися клавішами «вгору» та «вниз». Верхній каталог виділено кольором. Якщо натиснути 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
jmp find_level
found_level:
inc si
mov dl, byte ptr fs: [si]
cmp dl, 0
je stop_dir
mov byte ptr [di], dl
inc di
jmp found_level
stop_dir:
mov byte ptr [di], ''
inc di
pop si
inc ah
jmp next_level
stop_path:
mov byte ptr [di-1], 0
; chdir
mov ah, 3bh
mov dx, offset path
int 21h
ret
change_dir endp
scan_dir proc
mov ah, 2fh
int 21h
; findfirst
mov ah, 4eh
mov cx, 10h
mov dx, offset all_dir
int 21h
findnext:
jc stop_find
cmp byte ptr [bx+15h], 10h
jne skip_nodir
cmp byte ptr [bx+1eh], '.'
je skip_nodir
mov di, word ptr cs: [names_offset]
mov al, byte ptr cs: [recurse_level]
mov byte ptr fs: [di], al
inc di
mov si, bx
add si, 1eh
cld
mov cx, 13
push es
push fs
pop es
rep movsb
pop es
; chdir
mov ah, 3bh
mov dx, bx
add dx, 1eh
int 21h
jc skip_nodir; error
add word ptr cs: [names_offset], 14
add word ptr cs: [recurse_level], 1
add word ptr cs: [dirnum], 1
; save dta
sub sp, 2bh
mov di, sp
mov si, bx
mov cx, 2bh
rep movsb
call scan_dir
mov si, sp
mov di, bx
mov cx, 2bh
rep movsb
add sp, 2bh
; restore dta
sub word ptr cs: [recurse_level], 1
; chdir.
mov ah, 3bh
mov dx, offset up_dir
int 21h
skip_nodir:
mov ah, 4fh
int 21h
jmp findnext
stop_find:
ret
scan_dir endp
show_dirs proc
; clrscr
draw_screen:
push es
mov ax, 0b800h
mov es, ax
xor di, di
mov ax, 1c00h
mov cx, 80
rep stosw
mov di, 80
mov cx, 2000–80
mov ax, 0700h
rep stosw
pop es
mov ah, 2
xor dx, dx
xor bh, bh
int 10h
mov cx, 24
mov di, word ptr cs: [dirpos]
draw_name:
mov si, di
push cx
xor cx, cx
mov cl, byte ptr fs: [si]
inc cx
mov ah, 2
mov dl, ' '
set_spac:
int 21h
int 21h
int 21h
loop set_spac
pop cx
inc si
next_let:
mov dl, byte ptr fs: [si]
cmp dl, 0
je next_name
mov ah, 2
int 21h
inc si
jmp next_let
next_name:
mov ah, 2
mov dl, 10
int 21h
mov dl, 13
int 21h
add di, 14
loop draw_name
xor ah, ah
int 16h
cmp ah, 50h
jne no_50h
; down
mov ax, word ptr cs: [dirpos]
add ax, 14
mov word ptr cs: [dirpos], ax
jmp draw_screen
no_50h:
cmp ah, 48h
jne no_48h
; up
mov ax, word ptr cs: [dirpos]
cmp ax, 0
je draw_screen
sub ax, 14
mov word ptr cs: [dirpos], ax
jmp draw_screen
no_48h:
cmp ah, 1
je stop_s
cmp ah, 1ch
jne draw_screen
; chdir
call change_dir
jmp stop_s
jmp draw_screen
stop_s:
ret
show_dirs endp
begin:
mov bx, 4096
mov ah, 4ah
int 21h
mov ax, bx
shl ax, 4
mov sp, ax
mov ah, 48h
mov bx, 1000h
int 21h
jc mem_errr
mov fs, ax
push es
push fs
pop es
xor di, di
mov cx, 0ffffh
xor ax, ax
rep stosb
pop es
mov dx, offset scan_msg
mov ah, 9
int 21h
mov ah, 3bh
mov dx, offset r_dir
int 21h
call scan_dir
call show_dirs
push fs
pop es
mov ah, 49h
int 21h
mov ah, 4ch
int 21h
mem_errr:
mov ah, 9
mov dx, offset mem_Er
int 21h
en db?
end start
Другие работы по теме:
Комплексний аналіз часових рядів
ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» МІНІСТЕРСТВА ОСВІТИ І НАУКИ УКРАЇНИ Лабораторна робота № 6 Тема : «Комплексний аналіз часових рядів»
Цінова політика туристичних підприємств
МІНІСТЕРСТВО НАУКИ ТА ОСВІТИ УКРАЇНИ По ценовой политике На тему: «Цінова політика туристичних підприємств» м. Одеса 2011 р. ЗМІСТ Введення 1. Ціна в комплексі маркетингу туристичного підприємства. …1-2
Побудова скінченних множин
Множина як визначена сукупність елементів чи об’єктів. Списковий спосіб подання множини. Множина, кількість елементів якої скінченна (скінченна множина). Виведення декартового добутку з кожної заданої комбінації. Алгоритм рішення та реалізація програми.
Теорії лінійних одноконтурних автоматичних систем регулювання
Визначення перехідної функції об’єкта керування. Побудова кривої розгону об’єкта. Обчислення і побудова комплексно-частотної характеристики (КЧХ) об’єкта. Побудова КЧХ розімкнутої автоматичної системи регулювання. Запас сталості за модулем і фазою.
Заметки по еврейской истории
— сетевой портал, в рамках которого издаются ежемесячные издания: журнал «Заметки по еврейской истории» (с 2001 года) и альманах «Еврейская старина» (с 2002 года).
Операційні системи та робота з ними
Складові частини операційної системи та їх призначення. Вказівки для роботи з каталогами. Команди MS DOS для роботи з файлами. Текстовий редактор MS-DOS Editor. Перенаправлення операцій вводу-виводу. Створення командних файлів та інсталяційних пакетів.
Операційна система LINUX. Команди
Багатозадачна операційна система Linux. Поняття операційної системи і дистрибутиву. Команди операційної системи та файлова система Linux. Розгляд структури каталогів та основні команди. Інформація про поточний каталог, створення, зміна та знищення.
Работа с файлами (лабораторная работа)
Лабораторная работа №2 Т е м а: Р а б о т а с ф а й л а м и. Задание: 1)Создание каталога 1-го уровня; провести проверку. 2)Создание каталога 2-го уровня в каталоге 1-го уровня; установка этого каталога.
Работа с каталогами (лабораторная работа)
Лабораторная работа №1 Т е м а : Р а б о т а с к а т а л о г а м и Задание: 1)Просмотр корневых каталогов и подкаталогов дисков командами DIR,DIR/W,DIR/P. В отчете представить 3-4 характерные строки отображения содержимого каталогов при выполнении команд DIR(DIR/p) и DIR/W, т.е. показать форму отображения имен файлов и каталогов.
Архіватори
заняття № 30 лекція Курс 1 ТЕМА: Загальна характеристика програм архіваторів Викладач: Єреміца В.Д. При експлуатації комп'ютера з різних причин можливе пошкодження або втрата інформації на магнітних дисках.
Робота з командним рядком Linux
Основні команди операційної системи Linux. Інтерфейс та робота в режимі командного рядка. Системи управління програмою на основі меню. Посилання в текстовому режимі. Список файлів і каталогів, зупинених і фонових завдань. Права доступу до файлів.
Структура та правила конфігурування http-серверу Apache
Робота з програмами FTP та Mail, їх порівняльна характеристика, оцінка переваг та недоліків, функції та можливості. Конфігурування http-серверу Apache, їхнє настроювання. Редагування файлу httpd.conf, файлу srm.conf, та access.conf, сервера inetd.
Дослідження файлової структури
Перегляд секторів диску за допомогою програми Disk Editor. Характеристика завантажувального запису BR, FAT-таблиці та кореневого каталогу як основних зон системної області файлової структури операційної системи для дискети стандартного формату 3.5'.
Діагностичні програми (Sysinfo, Speedisk)
Загальна характеристика та принцип дії діагностичних програм. Запуск програми Sysinfo, виписка інформації про систему ПК. Виклик меню Benchmark та порядок проведення тестування процесора на швидкодію, системної плати. Оптимізація жорсткого диску С:.
Діагностичні програми
Програма автотестування (POST). Призначення діагностичного програмного забезпечення, категорії програм діагностики. Використання утилітів пошуку несправностей, неполадок і оптимізації. Проведення тестування комп’ютера за допомогою програми CHECKІT.
Знакомство с MS-DOS
Понятия файлов и каталогов. Область внешней памяти, группа файлов на одном носителе. Древовидная структура файлов на диске. Имя и местонахождение файла. Маршрут или путь по файловой системе. Запись имени файла в DOSе. Шаблоны. Структура каталога.
Програми – аналоги DOS-програм ren, xcopy
Написання програми, яка дозволяє перейменувати файл і скопіювати задані файли та каталоги. Використання рекурсивної функції для перегляду дерева підкаталогів при вході в них. Використання системного сервісу файлу, який зосереджено в перериванні 21h.
Сортування даних - пірамідальне сортування
Схема алгоритму програми. Алгоритм процедури введення даних, виведення результатів сортування, побудови дерева, перестановки елементів, "вирішення сімейного конфлікту". Приклад для масиву з 20 елементів. Користувацьке вікно та побудова піраміди.
Файли config.sys та autoexec.bat
Типова структура та зміст файлів config.sys та autoexes.bat, команди, що можуть включатися до них. Призначення драйверів keycode.exe і mouse.sys. Необхідність та умови створювання віртуального диску, його основна перевага перед жорстким і гнучким диском.
Особливості використання САПР технолога–програміста
Характеристика "Турбо САП" - універсальної системи автоматизованого проектування керуючих програм для верстатів з ЧПК. Загальне призначення, програмне забезпечення, експлуатаційні можливості. Специфіка роботи з інтерактивною графічною оболонкою системи.
Работа с файлами лабораторная работа
Лабораторная работа №2 Т е м а: Р а б о т а с ф а й л а м и. Задание: 1)Создание каталога 1-го уровня; провести проверку. 2)Создание каталога 2-го уровня в каталоге 1-го уровня; установка этого каталога.
Операційна система OS 2 Warp
Реферат на тему: OS/2 – сімейство операційних систем компанії IBM. Вперше OS/2 була розроблена як 16-розрядна операційна система для мікропроцесора i80286. За нею були розроблені 32-розрядна версія, а також останнє покоління цього сімейства – OS/2 Warp.
Конституція її місце і значення
Конституція – це основний закон, і разом з іншими законами вона відноситься до права і законодавства, яким присвячені наступні частини книги. Будучи Основним Законом, Конституція являє собою в той же час центральний інститут держави, покликана звести в єдину структуру, у целостною систему всі інші його інститути – і політичний режим, і побудова апарата держави, і його форми (як форму правління, так і форму державного устрою).
Файлова система VS DOS
Поняття файла впорядкована послідовність записів. Файл – це (названа цілісна сукупність даних) на зовнішньому носії іфнорм. (від англ.. слова file – підшиті папери, картотека)
Linux Робота з каталогами Посилання
Реферат на тему: Команди chown і chgrp Ці команди служать для зміни власника файлу і групи файлу. Виконувати зміну власника може тільки суперкористувач, зміну групи може виконати сам власник файлу чи суперкористувач. Для того, щоб мати право перемінити групу, власник повинен додатково бути членом тієї групи, якій він хоче дати права на даний файл.
Реферат з інформатиткии Програма Провідник
Призначення програми Файлова система ОС Windows 98 має деревоподібну ієрархічну структуру. Під час переміщення, наприклад, файла з папки, розташованої на диску, в іншу, розміщену на іншому диску, необхідно послідовно відкрити папки на першому диску, щоб досягти вихідної папки, а потім — на другому, щоб на екрані з’явилася цільова папка.
Дефрагментація диску
Реферат на тему: Дефрагментація диску Зовнішня пам'ять комп'ютера призначена для довготривалого зберігання програм та даних. Організовується на дисках та магнітних стрічках. Магнітні диски бувають гнучкі та жорсткі, гнучкі називають ще флоппі-дисками (дискетами). Зараз використовують дискети розміром 3,5 І (89 мм), ємність яких складає 1,44 Мб.
Робота в ОС Ms-Dos Загрузка основні файли внитрішні та зовнішні команди ос Ms-Dos
Завантаження MS-DOS починається відразу після «микання комп'ютера.. Є три основні файли операційної системи. Завантажувач заносить з диска до оперативної пам'яті системи: програми IO.SYS (модуль уведення/виведення) та MSDO&SYS (основний модуль). Після цього до оперативної пам'яті заноситься файл командного процесора COMMAND.COM, який забезпечує виконання так званих внутрішніх команд операційної системи.
Програми архіватори антивірусні програми
РЕФЕРАТ на тему: “Програми архіватори, антивірусні програми” В процесі роботи на ПК перед користувачем часто виникає проблема нестача дискового простору. Доводиться або знищувати менш важливу інформацію, або записувати на CD-RW, стримери чи інші носії. Та існує ще один вихід із цього становища. Це процес так званого архівування інформації.
Програми архіватори winzip winrar
РЕФЕРАТ на тему: ПРОГРАМИ АРХІВАТОРИ WinZIP, WinRAR. Для отримання копій файлів, використовують команди копіювання MS DOS. Але в цьому випадку копії будуть займати багато місця, що змушує мати велику кількість дискет. Більш доцільно використовувати для створення архівних копій спеціально розроблені програми.
Операційні системі в школі
МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ ВОЛИНСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ ІМЕНІ ЛЕСІ УКРАЇНКИ Кафедра прикладної математики КУРСОВА РОБОТА З МЕТОДИКИ ВИКЛАДАННЯ ІНФОРМАТИКИ
Програми - архіватори
Реферат з інформатики Програми - архіватори Зміст Програма ARJ 5 Програма PKZIP 8 Програма PKUNZIP 10 Програма PKZIPFIX 11 Програма LHA 12 Програма PKLITE 15