Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Побудова дерева каталогів диску і реалізація можливості переходу у вибраний каталог

Тип Реферат
Предмет Информатика и программирование
Просмотров
1426
Размер файла
25 б
Поделиться

Ознакомительный фрагмент работы:

Побудова дерева каталогів диску і реалізація можливості переходу у вибраний каталог

Міністерство освіти та науки України

Кіровоградський Державний Технічний університет

Кафедра програмного забезпечення

Курсовийпроект

з дисципліни

«Програмування на мові 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.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

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


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
157252
рейтинг
icon
6081
работ сдано
icon
2741
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
67 669 оценок star star star star star
среднее 4.9 из 5
РГГУ институт психологии им. Л.С. Выготского
Работа выполнена раньше срока, в полном объеме, с учетом всех требований! Алексею огромное...
star star star star star
СФУ
Спасибо огромное, всё на высшем уровне. Тема раскрыта, думаю, полностью.
star star star star star
ВГАФК
Работа была отлично выполнена, без каких либо замечаний. Большое спасибо, обращусь еще)
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Сокращение введения

Курсовая, Экономика

Срок сдачи к 23 окт.

2 минуты назад

Выполнить

Курсовая, проектирование зданий и сооружений

Срок сдачи к 16 нояб.

2 минуты назад
3 минуты назад

Написать научно-исследовательскую статью и оформить её по требованиям

НИР, Электротехника и электроника

Срок сдачи к 13 нояб.

3 минуты назад

выполнить сборочный чертеж

3D-модель, Основы автоматизированного проектирования

Срок сдачи к 20 дек.

3 минуты назад

Уход сестринский

Курсовая, Сестринский уход

Срок сдачи к 25 окт.

5 минут назад
7 минут назад
8 минут назад

Сделать конспект урока, анализ урока.

Контрольная, Окружающий мир

Срок сдачи к 31 окт.

9 минут назад

Договор строительного подряда как вид договора...

Курсовая, Гражданское право

Срок сдачи к 23 окт.

11 минут назад

Решить задачи

Решение задач, Основы международных стандартов финансовой отчетности

Срок сдачи к 23 окт.

11 минут назад

Контрольная работа.

Контрольная, Методика обучения русскому языку в начальной школе

Срок сдачи к 30 окт.

11 минут назад

Необходимо ответить на вопросы он-лайн на обучающем сайте образовательного заведения (курсы)

Ответы на вопросы, Судебная, строительно-техническая и стоимостная экспертиза объектов недвижимости

Срок сдачи к 29 окт.

11 минут назад

Решить лабораторную работу

Лабораторная, Управление информационными системами

Срок сдачи к 28 окт.

11 минут назад
11 минут назад

Привод галтовочного барабана

Курсовая, Авиационная промышленность

Срок сдачи к 31 окт.

11 минут назад

Экзаменационный билет

Онлайн-помощь, ПМ. 04 Выполнение работ по одной или нескольким профессиям рабочих

Срок сдачи к 24 окт.

11 минут назад

Написать доклад 10-12 стр.

Доклад, нанотехнологи в нефтегазовом деле

Срок сдачи к 26 окт.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно