Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Командний процесор для реалізації функції DOS: dir

Тип: курсовая работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Алгоритм реалізації та функціонування програми, яка імітує команду DOS dir. Засоби мови Assembler, що використовуються в програмі: команди, директиви, переривання. Функціонування програми; інтерфейс, який застосовується при спілкуванні з користувачем.
Краткое сожержание материала:

Размещено на

Размещено на

ЗМІСТ

  • Вступ
  • Опис алгоритму
  • Опис програми
  • Програмна реалізація та тестування
  • Висновки
  • Література
  • Додаток А
  • Додаток Б
    • ВСТУП
      • В цій курсовій роботі я створив програму яка імітує виконання команди DOS «dir». Вся програма написана на мові низького рівня Assembler що дає найкращу швидкодію програмі. Програма не підтримує довгі імена файлів і тому вона їх скорочує по шаблону DOS. Щоб користуватися цією програмою потрібно добре ознайомитися з її можливостями. Для цього програма містить невеличку довіку в якій описані приклади завдання параметрів для роботи з програмою. Для того щоб вивести довідку просто необхідно запустити програму без будь-яких параметрів.
      • Курсовий проект містить такі розділи: опис алгоритму, опис програми, програмна реалізація та тестування.
      • В першому розділі чітко описується сам алгоритм реалізації та функціонування програми.
      • Другий розділ містить інформацію про засоби мови Assembler, які використовуються в програмі, тобто опис команд, директив, функцій, переривань і т.д.
      • В третьому розділі описується функціонування програми, тобто те як вона працює і який використовує інтерфейс при спілкуванні з користувачем.
      • В процесі розробки курсового проекту я користувався компілятором tasm.exe версія 3.1, лінкером tlink.exe версія 3.0. Використовував дуже часто для відладки програму turbo debuger версія 5.0.

ОПИС АЛГОРИТМУ

Алгоритм реалізації програми дуже легкий та зрозумілий. Спочатку програма обробляє данні які були введені тобто параметри з якими була запущена програма до таких параметрів відносяться повний шлях до каталогу вміст якого нам потрібно вивести на екран та маску за якою відбуваються пошук файлів. Потім програма заповнює область DTA за введеними параметрами і розпочинає пошук каталогів та файлів, при цьому спочатку виводяться всі знайдені каталоги а потім вже файли. Всі назви файлів переводяться у нижній регістр для більшої зручності. Крім того що програма виводить вміст каталогів на екран вона також виводить час створення каталогів і файлів. Сама програма виводить також розмір файлів, якщо файл менший 1024 байти то його розмір виводиться в байтах а якщо більший то в кілобайтах. Всі обрахунки розміру файлу, час його створення та вивід самого файлу чи каталогу на екран виконують в окремих процедурах що робить програмний код більш легшим для розуміння.

А тепер розглянемо те що робиться в середині програми при її запуску спочатку програма перевіряє наявність введених параметрі, якщо вони відсутні то на екран виводиться текст в якому чітко описано на прикладах як правильно вводити потрібні параметри і як саме користуватися програмою. Якщо параметри були введені неправильно то програма виводить на екран повідомлення про помилку. Коли програма отримує правильні параметри вона розпочинає пошук файлів за вказаною маскою. Після знаходження файлу програма викликає процедуру виводу на екран ім`я відповідного файлу чи каталогу. Сама ж процедура також викликає інші процедури які виводять на екран час створення файлу та його розмір в зручний для користувача спосіб. Закінчивши вивід всіх даних по знайденому файлу програма викликає процедуру яка виконує перехід на новий рядок . після чого починається пошук наступного файлу і все відбувається як і в попередньому разі доки не закінчаться файли. Тоді програма закінчує свою роботу і повертає керування DOS.

ОПИС ПРОГРАМИ

Як вже було сказано вище, програма написана на мові Assembler. Лістинг будь-якої програми досить важкий для розуміння. Тому текст програми містить багато коментарів, що полегшує її читання, а також можливість вдосконалити.

Програма містить 11 процедур на базі яких і працює сама програма: WrtTime, ClrName, WrtDir, WrtFile, WLabel, crlf, curdir, Div1024, DecWrt, Decimal, des.

WrtTime- процедура яка виводить час створення файлу чи каталогу вона використовує зміну TimeF яка заповнюється DTA і містить в собі час створення файлу. За допомогою побітового зміщення процедура витягує дані з змінної і викликає процедуру DecWrt що переводить двійкові значення в десяткові і виводить їх на екран.

ClrName- ця процедура забиваємо пробілами поле, в якому записується ім`я файлу (NameF) це потрібно для того щоб не було накладань імен файлів при виводі. Поле NameF складається з 13 символів цього цілком достатньо для того щоб вмістити в собі ім`я файлу та його розширення. Вільне місце в полі забивається пустим символом (0).

WrtDir- це процедура яка виводить ім`я каталогу на екран. Використовує змінну NameF в ній описано назву файлу з розширенням. Процедура використовує Функцію виводу цілої стрічки на екран і за раз виводить 13 символів. В процедурі викликаються такі інші процедури: ClrName, WrtTime, crlf.

WrtFile- процедура виводить ім`я файлу на екран разом з розширенням на відміну від попередньої процедури вона використовує по символьний вивід імені файлу на екран для того щоб перевести кожен символ в нижній регістр. Також використовує змінну NameF і викликає в собі такі процедури: ClrName, WrtTime, crlf, Decimal.

WLabel- процедура яка виводить мітку активного диску . вона шукає вайл з атрибутом 08h тобто мітку активного диску . використовує такі змінні: path , NameF. Викликає такі процедури: ClrName , crlf.

Crlf- процедура що виконує функцію переводу стрічки тобто виводить символи 10 і 13.

Curdir- дана процедура виодить на екран активний каталог. Використовує зміну path з якої і бере саму назву активного каталогу потім додає до не символи «:» «\» а також паску для пошуку «*.*» і виводить повний шлях на екран. Викликає таку процедуру crlf.

Div1024- процедура яка виконує операцію ділення числа що знаходиться в регістрі ax на 1024 це потрібно для того щоб перевести розмір файлу з байт в кілобайти.

DecWrt- процедура що перетворює час створення файлу з двійкового коду в десятковий і виводить його на екран.

Decimal- процедура що обраховує розмір якого файлу потрібно виводити в байтах а якого в кілобайтах. Викликає процедури: Div1024, des.

Des- процедура переводу двійкового числа в десяткове. Використовується для переведення розміру файлу в десятковий формат.

ПРОГРАМНА РЕАЛІЗАЦІЯ ТА ТЕСТУВАННЯ

Програма містить стандартний інтерфейс DOS . якщо наприклад запустити програму без будь яких параметрів то на екран виводиться довідка з прикладами користування програми.

C:\KYRSOV~1>kyrsova.com

KP v1.0, Copyright (c) 2011,

Pri zapuske bez parametrov vuvodit help

zapusk c parametrom doljen imet vid: kp drive:\folder\maska [/D]

gde maska (pri vukorustani /D) - ljubue simvolu i imena, vkljuthaja * i ?

/D - vuvod direktorii po maske

pruklad:kp C:\LANG\BP\*.* /D - vuvod vseh failof i katalogov iz

C:\LANG\BP

kp C:\* /D - vuvod katalogov tolko iz kornevogo diska C:

kp /D - vuvod vseh failov i katalogov po danomy pyti

Якщо параметр буде введений невірно то виводиться повідомлення пр помилку.

C:\KYRSOV~1>kyrsova.com /s

vu ne ykazali kljuch

vu ykazali nevernui kljuch

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

C:\KYRSOV~1>kyrsova.com /d

Tekyshi katalog C:\KYRSOV~1

Metka Diska: WIN

. <DIR> 17:57:46

.. <DIR> 17:57:46

kyrsova.asm 21:16:32 16/KB

kyrsova.com 21:00:50 1/KB

vc.com 12:05:38 63/KB

vc.ini 08:57:24 458/B

ВИСНОВКИ

Дана курсова робота реалізує програму, яка імітує команду DOS dir. Програму реалізовано на машино-орієнтованій мові програмування Assembler. Був розроблений алгоритм, який повністю імітує потрібну команду.

Для написання цієї програми потрібно було ознайомитися з великим обсягом матеріалу по можливостях даної мови програмування та роботи файлової системи комп'ютера. Дана програма не є аналогом команди DOS dir вона відрізняється від неї меншою кількістю можливостей , але вона в деяких випадках може бути використана як заміна їй.

ЛІТЕРАТУРА

1. Зубков для DOS, Windows и Unix. - М.: ДМК Пресс, 2000. - 608 с.: ил. (Серия «Для программистов»).

2. Абель П. Язык Ассемблера для IBM PC и программирования / Пер. с англ. Ю.В. Сальникова. - М.: Высш. Шк., 1992. - 447 с.: ил.

3. Бек Л. Введение в системное программирование

програма dosdir assembler інтерфейс

ДОДАТОК А

.MODEL TINY

Другие файлы:

Текстовий процесор Microsoft Word
Текстові процесори - складова частина програмних комплексів, їх основні можливості, мовна підтримка та сфери застосування. Текстовий процесор Microsof...

Проблеми реалізації норм права
Процедура реалізації права: поняття реалізації права, основні проблеми реалізації права та шляхи їх вирішення, класифікація форм реалізації права, змі...

Табличний процесор Excel
Microsoft Excel 2000 - табличний процесор, програма для створення і обробки електронних таблиць. Загальні відомості про таблиці Excel. Методика ознайо...

Текстовий потенціал українських прийменників
Дослідження первинної функції непохідних прийменників - реалізації просторових відношень, які постають ґрунтом для реалізації темпоральної семантики....

Сутність менеджменту та його функції
Поняття про менеджмент та його складові, внутрішня структура та закономірності реалізації на сучасному підприємстві. Історія розвитку та наукові школи...