Вивід вмісту каталогу y середовищі MS DOS
Вибір засобу виконання поставленої задачі. Функції переривання INT 21h MS DOS, що використані при роботі програм. Функції роботи із DTA та інші функції переривання INT 21h. Функція завершення програми. Розробка програми на Pascal. Допоміжні процедури.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 20.01.2009 |
Размер файла | 89,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
s : string;
Path : PChar;
i : byte;
Label 1;
{------Процедура виводу даних о файлі/директорії згідно із інформацією в DTA}
Procedure ShowEntry;
Begin
Write(DTAAddress^.Name:13,' '); {вивід імені файлу із розширенням}
for i: = 0 to 5 do
if (DTAAddress^.Attrib and (1 shl i)) <>0
then write(' * ') {вивід зірочок навпроти файлів }
else write(' '); {із відповідними атрибутами}
{------Вивід часу створення файлу}
Write(' ',((DTAAddress^.Time and $0f800)shr 11):2);
Write(':',((DTAAddress^.Time and $07e0)shr 5):2,':');
Write(((DTAAddress^.Time and $1f)shl 1):2);
{------Вивід дати створення файлу}
Write(' ',(DTAAddress^.Date and $1f):2,'/');
Write(((DTAAddress^.Date and $01e0)shr 5):2,'/');
Write((((DTAAddress^.Date and $0f800)shr 9)+$07bc):4);
Writeln(' ',DTAAddress^.Size:7); {вивід розміру файлу}
end;
BEGIN
ClrScr; {очистка екрану}
{------Вивід інформації о програмі}
Writeln('The DIRWUER wersion 1.0');
Writeln('Romanov Alexander Urievich. KIT-13A KHPI');
Writeln('Copyright (C) 2005 by Romanov Alexander');
DTAAddress := GetDTAAddress; {встановлення вказівника}
{на адресу DTA}
1:
Write('Input the mask (default: *.*; exit: q): '); {запит на введення маски}
Readln(s); {отримання відповіді}
if s='' then Path:='*.*' {якщо відповіді не має,}
{встановлення стандартної маски}
else if s='q' then halt {якщо відповідь 'q', завершення}
{роботи програми}
else Path:=Addr(s[1]); {встановлення заданої маски}
if FindFirst (Path) then {знаходження першого файлу}
begin
Write('Filename OnR Skr Sys Tom ');
Writeln('Kat Arh Time DataSize'); {вивід заголовка таблиці}
ShowEntry; {вивід на екран даних про файл}
while FindNext do ShowEntry; {доки знайдено наступний файл,}
{виводити дані про нього на екран}
end
else writeln('Failed');{інакше, при незнаходженні}
{жодного файлу, виводиться}
{повідомлення про їх відсутність}
goto 1; {перехід на початок}
END.
Схема алгоритму програми приведена в додатках (Додаток Б).
Програма реалізує запит на введення маски файлу і, згідно із реакцією користувача, встановлює стандартну маску, або введену користувачем. При відповіді q - програма завершується.
Після задання маски встановлюється вказівник на DTA-буфер, після чого програма реалізує пошук файлів, що відповідають масці і вивід даних на екран. Потім програма повертається до початкового кроку запиту нової маски файлів для наступних дій.
Результати роботи програми проілюструємо наступним чином:
The DIRWUER wersion 1.0
Romanov Alexander Urievich. KIT-13A KHPI
Copyright (C) 2005 by Romanov Alexander
Input the mask (default: *.*; exit: q):
Filename OnR Skr Sys Tom Kat Arh Time Data Razmer
. * 11:59:18 11/5 /2005 00
.. * 11:59:18 11/5 /2005 00
BLW32.DLL * 12:12:0 14/5 /1996 52020
DEBUG.EXE * * 22:22:0 5 /5 /1999 0518A
USA.BLL * 12:12:0 14/5 /1996 18DCD
MYREP.CBA * 18:48:42 25/1 /2002 01F
DIRECT * 12:27:54 11/5 /2005 00
CATALOG3.CAB * * 22:22:0 5 /5 /1999 425C3
SUHELPER.BIN * * 22:22:0 5 /5 /1999 05C0
SAVE32.COM * * 22:22:0 5 /5 /1999 0398
ASD.LOG * * 13:8 :20 11/8 /2004 0162
IO.SYS * * * 22:22:0 5 /5 /1999 364B6
MSDOS.SYS * * * * 18:30:28 16/7 /2004 0697
08-APRIL.MP3 * 11:42:44 7 /12/2003 B11100
DR.EXE * 12:14:28 11/5 /2005 05A1
DR.BAT * 12:54:34 4 /5 /2005 09B
DIRWUER.EXE * 13:48:38 13/ 5/2005 6256
Input the mask (default: *.*; exit: q): *.b??
Filename OnR Skr Sys Tom Kat Arh Time Data Razmer
USA.BLL * 12:12: 0 14/ 5/1996 101837
SUHELPER.BIN * * 22:22: 0 5/ 5/1999 1472
DR.BAT * 12:54:34 4/ 5/2005 155
Input the mask (default: *.*; exit: q): direct/*.*
Filename OnR Skr Sys Tom Kat Arh Time Data Razmer
. * 12:27:54 11/ 5/2005 0
.. * 12:27:54 11/ 5/2005 0
BINASC.ASM * 11: 3:40 8/ 5/2005 768
PARAMS.ASM * 13:31:20 6/ 5/2005 1252
TD.EXE * 14:39:40 24/12/2002 492784
Input the mask (default: *.*; exit: q): q
Аналізуючи отримані результати, зазначимо, що за умовчанням (перший приклад) програма DIRWUER.exe виводить увесь вміст директорії, в якій вона розташована. Інші приклади демонструють різноманітні засоби задання масок файлів із використанням символів "*" і "?", а також задання шляху до директорії, вміст якої необхідно вивести. Відповідь "q" завершує програму.
Таким чином DIRWUER.exe є повноцінною програмою, яка реалізує вивід інформації о файлах, що відповідають заданій масці. Відмінність програми DIRWUER.exe від DR.exe полягає в покращеному інтерфейсі і більш ефективній роботі із буфером DTA, що стало можливим при використанні мови високого рівня Pascal, як оболонки при написанні програми.
Висновки
За результатами дослідження виводу вмісту каталогу у середовищі MS DOS було проаналізовано деякі аспекти його роботи із файлами і консоллю і створено дві повноцінні програми мовами асемблер і Pascal, які дозволяють реалізувати перегляд дерева каталогів і отримувати всю інформацію про файли, що в них містяться.
Слід зазначити, що у тому разі, коли програма, написана мовою асемблер, має розмір лише 1441 байт, то програма, створена за допомогою мови Pascal, займає вже 6256 байт, тобто більше, ніж у чотири рази. Однак витрати на написання цих програм співвідносяться приблизно у тій же пропорції, але в інший бік, оскільки ті задачі, які мовою Pascal були вирішені вбудованими методами, мовою асемблер треба було виконувати власноруч.
Таким чином, мета даного курсового проекту вважається виконаною: було досліджено особливості програмування мовами різного рівня, а також на конкретному прикладі виводу вмісту каталогу у середовищі MS DOS продемонстровані переваги та недоліки, котрі при цьому виникають.
Список використаних джерел
1. Методические указания к лабораторным работам № 10-№ 18 по курсу "Архитектура вычислительных систем" / Составит. А.И. Поворознюк, И.С. Зыков. - Харьков: ХПИ. - 88 с.
2. Поворознюк А.И. Архитектура компьютеров. Архитектура микропроцессорного ядра и системных устройств: Учеб. пособие. Ч.2. - Харьков: Торнадо, 2004. - 355 с.
3. Пустоваров В.И. Язык Ассемблера в программировании информационных и управляющих систем. - М.: ЭНТРОП, 1997. - 304 с.
4. Сван Т. Освоение Turbo Assembler. - К.: Диалектика, 1996. - 544 с.
5. Белецкий Я. Турбо Ассемблер: Версия 2.0: Учеб. пособие для студентов вузов / Пер. с польск. В.В. Яценко. М.: Машиностроение, 1994. - 160 с.
6. Rollins D. TECH Help. Электронный справочник. Версия 1.2. / Адапт. С.М. Абель. - Flambeaux Software. -© 1985-1987.
7. Norton P. Peter Norton's DOS Guide. - New Delhi: Prentice Hall of India Private Limited, 1996. - 744 p.
Додатки
Додаток А
Схема алгоритму DR.asm
Додаток Б
Схема алгоритму DIRWUER.pas
Схема алгоритму DIRWUER.pas (продовження)
Подобные документы
Загальні відомості про процедури та функції. Характеристика, особливості і можливості мови Pascal, її використання для розробки наочних, компактних, структурованих програм, створення умов для систематичного і цілеспрямованого процесу програмування.
реферат [30,0 K], добавлен 13.11.2010Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.
курсовая работа [1,3 M], добавлен 23.06.2010Ведення протоколу роботи комп’ютера. Розробка програми для створення списку розширень файлів і занесення часу і дати доступу до них на мові програмування Асемблер. Виклик переривання 21h код-функції та занесення до регістрів. Алгоритм та лістинг програми.
курсовая работа [14,1 K], добавлен 08.08.2009Розробка програми реєстрації автомобілів для збереження та перегляду інформації про модель машини, рік її випуску, об'єм двигуна і витрати палива. Складання алгоритмів розв'язання поставленої задачі та написання тексту програми в середовищі Turbo Pascal.
курсовая работа [29,7 K], добавлен 13.10.2010Мінімізація функції за методом карт Карно; розробка програм на мові асемблеру для Intel 8051: сортування масиву однобайтних даних у зовнішній пам’яті; формування послідовності прямокутних імпульсів; підрахунок кількості натискань на клавішу переривання.
курсовая работа [196,2 K], добавлен 14.04.2012Постановка задачі інтерполяції. Аналітичне визначення коефіцієнтів інтерполяційного многочлена. Метод Лагранжа, задача зворотної інтерполяції. Інтерполяційна формула Бесселя. Вибір оптимального алгоритму. Приклад програми обчислення значення функції.
курсовая работа [502,8 K], добавлен 16.03.2011Програма, що контролює програми, які запускаються на комп’ютері на мові ASM-86. Алгоритм програми: перевірка параметрів, які задані в командному рядку, та функції обробника переривання 21h. Компілювання Turbo Assembler, зв’язування за допомогою TLINK.
курсовая работа [21,7 K], добавлен 08.08.2009Дослідження основних завдань та алгоритму роботи програм копіювання файлів: "COPY1.С" (функції роботи з file handles) та "COPY2.С" (функції потокового вводу-виводу). Повний розбір роботи обох кодів програм, їх тестування, модифікація та оптимізація.
лабораторная работа [23,4 K], добавлен 04.04.2011Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.
курсовая работа [1,8 M], добавлен 24.02.2014Теоретичні відомості. Блок-схема. Текст програми. Результати роботи програми. Процедури і функції. Координати, вікна, сторінки. Багатокутники. Дуги, кола, еліпси. Фарби, палітри, заповнення. Збереження і видача зображень. Виведення тексту. Включення драйв
курсовая работа [345,2 K], добавлен 17.12.2005